libp2p 0.42.2 → 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. package/README.md +4 -4
  2. package/dist/index.min.js +29 -29
  3. package/dist/src/address-manager/index.d.ts +1 -10
  4. package/dist/src/address-manager/index.d.ts.map +1 -1
  5. package/dist/src/address-manager/index.js +46 -29
  6. package/dist/src/address-manager/index.js.map +1 -1
  7. package/dist/src/autonat/constants.d.ts +4 -0
  8. package/dist/src/autonat/constants.d.ts.map +1 -0
  9. package/dist/src/autonat/constants.js +4 -0
  10. package/dist/src/autonat/constants.js.map +1 -0
  11. package/dist/src/autonat/index.d.ts +64 -0
  12. package/dist/src/autonat/index.d.ts.map +1 -0
  13. package/dist/src/autonat/index.js +417 -0
  14. package/dist/src/autonat/index.js.map +1 -0
  15. package/dist/src/autonat/pb/index.d.ts +57 -0
  16. package/dist/src/autonat/pb/index.d.ts.map +1 -0
  17. package/dist/src/autonat/pb/index.js +250 -0
  18. package/dist/src/autonat/pb/index.js.map +1 -0
  19. package/dist/src/circuit/constants.d.ts +31 -6
  20. package/dist/src/circuit/constants.d.ts.map +1 -1
  21. package/dist/src/circuit/constants.js +37 -7
  22. package/dist/src/circuit/constants.js.map +1 -1
  23. package/dist/src/circuit/index.d.ts +16 -61
  24. package/dist/src/circuit/index.d.ts.map +1 -1
  25. package/dist/src/circuit/index.js +2 -68
  26. package/dist/src/circuit/index.js.map +1 -1
  27. package/dist/src/circuit/pb/index.d.ts +83 -43
  28. package/dist/src/circuit/pb/index.d.ts.map +1 -1
  29. package/dist/src/circuit/pb/index.js +363 -127
  30. package/dist/src/circuit/pb/index.js.map +1 -1
  31. package/dist/src/circuit/server/advert-service.d.ts +43 -0
  32. package/dist/src/circuit/server/advert-service.d.ts.map +1 -0
  33. package/dist/src/circuit/server/advert-service.js +69 -0
  34. package/dist/src/circuit/server/advert-service.js.map +1 -0
  35. package/dist/src/circuit/server/index.d.ts +60 -0
  36. package/dist/src/circuit/server/index.d.ts.map +1 -0
  37. package/dist/src/circuit/server/index.js +287 -0
  38. package/dist/src/circuit/server/index.js.map +1 -0
  39. package/dist/src/circuit/server/reservation-store.d.ts +49 -0
  40. package/dist/src/circuit/server/reservation-store.d.ts.map +1 -0
  41. package/dist/src/circuit/server/reservation-store.js +57 -0
  42. package/dist/src/circuit/server/reservation-store.js.map +1 -0
  43. package/dist/src/circuit/server/reservation-voucher.d.ts +18 -0
  44. package/dist/src/circuit/server/reservation-voucher.d.ts.map +1 -0
  45. package/dist/src/circuit/server/reservation-voucher.js +33 -0
  46. package/dist/src/circuit/server/reservation-voucher.js.map +1 -0
  47. package/dist/src/circuit/transport/discovery.d.ts +45 -0
  48. package/dist/src/circuit/transport/discovery.d.ts.map +1 -0
  49. package/dist/src/circuit/transport/discovery.js +82 -0
  50. package/dist/src/circuit/transport/discovery.js.map +1 -0
  51. package/dist/src/circuit/transport/index.d.ts +33 -0
  52. package/dist/src/circuit/transport/index.d.ts.map +1 -0
  53. package/dist/src/circuit/transport/index.js +225 -0
  54. package/dist/src/circuit/transport/index.js.map +1 -0
  55. package/dist/src/circuit/transport/listener.d.ts +9 -0
  56. package/dist/src/circuit/transport/listener.d.ts.map +1 -0
  57. package/dist/src/circuit/transport/listener.js +76 -0
  58. package/dist/src/circuit/transport/listener.js.map +1 -0
  59. package/dist/src/circuit/transport/reservation-store.d.ts +60 -0
  60. package/dist/src/circuit/transport/reservation-store.d.ts.map +1 -0
  61. package/dist/src/circuit/transport/reservation-store.js +165 -0
  62. package/dist/src/circuit/transport/reservation-store.js.map +1 -0
  63. package/dist/src/circuit/utils.d.ts +7 -0
  64. package/dist/src/circuit/utils.d.ts.map +1 -1
  65. package/dist/src/circuit/utils.js +87 -0
  66. package/dist/src/circuit/utils.js.map +1 -1
  67. package/dist/src/components.d.ts +2 -1
  68. package/dist/src/components.d.ts.map +1 -1
  69. package/dist/src/components.js +13 -13
  70. package/dist/src/components.js.map +1 -1
  71. package/dist/src/config.d.ts.map +1 -1
  72. package/dist/src/config.js +21 -25
  73. package/dist/src/config.js.map +1 -1
  74. package/dist/src/connection/index.d.ts +2 -2
  75. package/dist/src/connection/index.d.ts.map +1 -1
  76. package/dist/src/connection/index.js +4 -4
  77. package/dist/src/connection/index.js.map +1 -1
  78. package/dist/src/connection-manager/auto-dialler.d.ts +0 -4
  79. package/dist/src/connection-manager/auto-dialler.d.ts.map +1 -1
  80. package/dist/src/connection-manager/auto-dialler.js +18 -18
  81. package/dist/src/connection-manager/auto-dialler.js.map +1 -1
  82. package/dist/src/connection-manager/dialer/dial-request.d.ts.map +1 -1
  83. package/dist/src/connection-manager/dialer/dial-request.js +13 -6
  84. package/dist/src/connection-manager/dialer/dial-request.js.map +1 -1
  85. package/dist/src/connection-manager/dialer/index.d.ts +10 -1
  86. package/dist/src/connection-manager/dialer/index.d.ts.map +1 -1
  87. package/dist/src/connection-manager/dialer/index.js +24 -9
  88. package/dist/src/connection-manager/dialer/index.js.map +1 -1
  89. package/dist/src/connection-manager/index.d.ts +1 -4
  90. package/dist/src/connection-manager/index.d.ts.map +1 -1
  91. package/dist/src/connection-manager/index.js +8 -5
  92. package/dist/src/connection-manager/index.js.map +1 -1
  93. package/dist/src/connection-manager/latency-monitor.d.ts.map +1 -1
  94. package/dist/src/connection-manager/latency-monitor.js +1 -1
  95. package/dist/src/connection-manager/latency-monitor.js.map +1 -1
  96. package/dist/src/connection-manager/visibility-change-emitter.d.ts.map +1 -1
  97. package/dist/src/content-routing/index.d.ts +6 -4
  98. package/dist/src/content-routing/index.d.ts.map +1 -1
  99. package/dist/src/content-routing/index.js +9 -9
  100. package/dist/src/content-routing/index.js.map +1 -1
  101. package/dist/src/content-routing/utils.d.ts +3 -3
  102. package/dist/src/content-routing/utils.d.ts.map +1 -1
  103. package/dist/src/content-routing/utils.js +2 -2
  104. package/dist/src/content-routing/utils.js.map +1 -1
  105. package/dist/src/dht/dht-content-routing.d.ts +2 -1
  106. package/dist/src/dht/dht-content-routing.d.ts.map +1 -1
  107. package/dist/src/dht/dht-content-routing.js +2 -2
  108. package/dist/src/dht/dht-content-routing.js.map +1 -1
  109. package/dist/src/dht/dht-peer-routing.d.ts +3 -2
  110. package/dist/src/dht/dht-peer-routing.d.ts.map +1 -1
  111. package/dist/src/dht/dht-peer-routing.js +2 -2
  112. package/dist/src/dht/dht-peer-routing.js.map +1 -1
  113. package/dist/src/dht/dummy-dht.d.ts +1 -1
  114. package/dist/src/dht/dummy-dht.d.ts.map +1 -1
  115. package/dist/src/dht/dummy-dht.js +12 -12
  116. package/dist/src/dht/dummy-dht.js.map +1 -1
  117. package/dist/src/errors.d.ts +2 -1
  118. package/dist/src/errors.d.ts.map +1 -1
  119. package/dist/src/errors.js +1 -0
  120. package/dist/src/errors.js.map +1 -1
  121. package/dist/src/fetch/index.d.ts.map +1 -1
  122. package/dist/src/fetch/index.js +6 -6
  123. package/dist/src/fetch/index.js.map +1 -1
  124. package/dist/src/fetch/pb/proto.d.ts +3 -3
  125. package/dist/src/fetch/pb/proto.d.ts.map +1 -1
  126. package/dist/src/fetch/pb/proto.js +4 -3
  127. package/dist/src/fetch/pb/proto.js.map +1 -1
  128. package/dist/src/get-peer.js +2 -2
  129. package/dist/src/get-peer.js.map +1 -1
  130. package/dist/src/identify/index.d.ts +3 -1
  131. package/dist/src/identify/index.d.ts.map +1 -1
  132. package/dist/src/identify/index.js +19 -14
  133. package/dist/src/identify/index.js.map +1 -1
  134. package/dist/src/identify/pb/message.d.ts +2 -2
  135. package/dist/src/identify/pb/message.d.ts.map +1 -1
  136. package/dist/src/identify/pb/message.js +1 -0
  137. package/dist/src/identify/pb/message.js.map +1 -1
  138. package/dist/src/index.d.ts +14 -8
  139. package/dist/src/index.d.ts.map +1 -1
  140. package/dist/src/index.js.map +1 -1
  141. package/dist/src/insecure/index.d.ts.map +1 -1
  142. package/dist/src/insecure/index.js.map +1 -1
  143. package/dist/src/insecure/pb/proto.d.ts +3 -3
  144. package/dist/src/insecure/pb/proto.d.ts.map +1 -1
  145. package/dist/src/insecure/pb/proto.js +4 -5
  146. package/dist/src/insecure/pb/proto.js.map +1 -1
  147. package/dist/src/libp2p.d.ts +7 -3
  148. package/dist/src/libp2p.d.ts.map +1 -1
  149. package/dist/src/libp2p.js +35 -35
  150. package/dist/src/libp2p.js.map +1 -1
  151. package/dist/src/nat-manager.d.ts.map +1 -1
  152. package/dist/src/nat-manager.js +5 -3
  153. package/dist/src/nat-manager.js.map +1 -1
  154. package/dist/src/peer-record-updater.d.ts.map +1 -1
  155. package/dist/src/peer-routing.d.ts.map +1 -1
  156. package/dist/src/peer-routing.js +5 -5
  157. package/dist/src/peer-routing.js.map +1 -1
  158. package/dist/src/ping/index.d.ts.map +1 -1
  159. package/dist/src/ping/index.js +2 -2
  160. package/dist/src/ping/index.js.map +1 -1
  161. package/dist/src/pnet/crypto.d.ts +1 -1
  162. package/dist/src/pnet/crypto.d.ts.map +1 -1
  163. package/dist/src/pnet/crypto.js +1 -1
  164. package/dist/src/pnet/crypto.js.map +1 -1
  165. package/dist/src/pnet/index.js +3 -3
  166. package/dist/src/pnet/index.js.map +1 -1
  167. package/dist/src/pnet/key-generator.d.ts.map +1 -1
  168. package/dist/src/pubsub/dummy-pubsub.js +9 -9
  169. package/dist/src/pubsub/dummy-pubsub.js.map +1 -1
  170. package/dist/src/registrar.d.ts.map +1 -1
  171. package/dist/src/registrar.js +4 -4
  172. package/dist/src/registrar.js.map +1 -1
  173. package/dist/src/transport-manager.d.ts.map +1 -1
  174. package/dist/src/transport-manager.js +8 -9
  175. package/dist/src/transport-manager.js.map +1 -1
  176. package/dist/src/upgrader.d.ts +2 -1
  177. package/dist/src/upgrader.d.ts.map +1 -1
  178. package/dist/src/upgrader.js +38 -33
  179. package/dist/src/upgrader.js.map +1 -1
  180. package/dist/typedoc-urls.json +19 -6
  181. package/package.json +36 -33
  182. package/src/address-manager/index.ts +62 -35
  183. package/src/autonat/constants.ts +4 -0
  184. package/src/autonat/index.ts +567 -0
  185. package/src/autonat/pb/index.proto +35 -0
  186. package/src/autonat/pb/index.ts +320 -0
  187. package/src/circuit/constants.ts +48 -7
  188. package/src/circuit/index.ts +17 -129
  189. package/src/circuit/pb/index.proto +57 -32
  190. package/src/circuit/pb/index.ts +448 -138
  191. package/src/circuit/server/advert-service.ts +108 -0
  192. package/src/circuit/server/index.ts +421 -0
  193. package/src/circuit/server/reservation-store.ts +111 -0
  194. package/src/circuit/server/reservation-voucher.ts +51 -0
  195. package/src/circuit/transport/discovery.ts +127 -0
  196. package/src/circuit/transport/index.ts +325 -0
  197. package/src/circuit/transport/listener.ts +99 -0
  198. package/src/circuit/transport/reservation-store.ts +249 -0
  199. package/src/circuit/utils.ts +108 -0
  200. package/src/components.ts +22 -21
  201. package/src/config.ts +21 -25
  202. package/src/connection/index.ts +10 -10
  203. package/src/connection-manager/auto-dialler.ts +36 -40
  204. package/src/connection-manager/dialer/dial-request.ts +13 -6
  205. package/src/connection-manager/dialer/index.ts +34 -15
  206. package/src/connection-manager/index.ts +22 -23
  207. package/src/connection-manager/latency-monitor.ts +9 -9
  208. package/src/connection-manager/visibility-change-emitter.ts +4 -4
  209. package/src/content-routing/index.ts +18 -16
  210. package/src/content-routing/utils.ts +5 -5
  211. package/src/dht/dht-content-routing.ts +5 -4
  212. package/src/dht/dht-peer-routing.ts +5 -4
  213. package/src/dht/dummy-dht.ts +13 -13
  214. package/src/errors.ts +2 -1
  215. package/src/fetch/index.ts +13 -13
  216. package/src/fetch/pb/proto.ts +8 -7
  217. package/src/get-peer.ts +3 -3
  218. package/src/identify/index.ts +29 -24
  219. package/src/identify/pb/message.ts +3 -2
  220. package/src/index.ts +15 -8
  221. package/src/insecure/index.ts +2 -1
  222. package/src/insecure/pb/proto.ts +8 -9
  223. package/src/libp2p.ts +52 -46
  224. package/src/nat-manager.ts +11 -9
  225. package/src/peer-record-updater.ts +4 -4
  226. package/src/peer-routing.ts +9 -9
  227. package/src/ping/index.ts +6 -6
  228. package/src/pnet/crypto.ts +3 -3
  229. package/src/pnet/index.ts +3 -3
  230. package/src/pnet/key-generator.ts +1 -1
  231. package/src/pubsub/dummy-pubsub.ts +9 -9
  232. package/src/registrar.ts +12 -12
  233. package/src/transport-manager.ts +17 -18
  234. package/src/upgrader.ts +43 -42
  235. package/src/version.ts +1 -1
  236. package/dist/src/circuit/auto-relay.d.ts +0 -46
  237. package/dist/src/circuit/auto-relay.d.ts.map +0 -1
  238. package/dist/src/circuit/auto-relay.js +0 -220
  239. package/dist/src/circuit/auto-relay.js.map +0 -1
  240. package/dist/src/circuit/circuit/hop.d.ts +0 -42
  241. package/dist/src/circuit/circuit/hop.d.ts.map +0 -1
  242. package/dist/src/circuit/circuit/hop.js +0 -142
  243. package/dist/src/circuit/circuit/hop.js.map +0 -1
  244. package/dist/src/circuit/circuit/stop.d.ts +0 -24
  245. package/dist/src/circuit/circuit/stop.d.ts.map +0 -1
  246. package/dist/src/circuit/circuit/stop.js +0 -51
  247. package/dist/src/circuit/circuit/stop.js.map +0 -1
  248. package/dist/src/circuit/circuit/stream-handler.d.ts +0 -40
  249. package/dist/src/circuit/circuit/stream-handler.d.ts.map +0 -1
  250. package/dist/src/circuit/circuit/stream-handler.js +0 -59
  251. package/dist/src/circuit/circuit/stream-handler.js.map +0 -1
  252. package/dist/src/circuit/circuit/utils.d.ts +0 -7
  253. package/dist/src/circuit/circuit/utils.d.ts.map +0 -1
  254. package/dist/src/circuit/circuit/utils.js +0 -43
  255. package/dist/src/circuit/circuit/utils.js.map +0 -1
  256. package/dist/src/circuit/listener.d.ts +0 -9
  257. package/dist/src/circuit/listener.d.ts.map +0 -1
  258. package/dist/src/circuit/listener.js +0 -62
  259. package/dist/src/circuit/listener.js.map +0 -1
  260. package/dist/src/circuit/multicodec.d.ts +0 -2
  261. package/dist/src/circuit/multicodec.d.ts.map +0 -1
  262. package/dist/src/circuit/multicodec.js +0 -2
  263. package/dist/src/circuit/multicodec.js.map +0 -1
  264. package/dist/src/circuit/transport.d.ts +0 -51
  265. package/dist/src/circuit/transport.d.ts.map +0 -1
  266. package/dist/src/circuit/transport.js +0 -223
  267. package/dist/src/circuit/transport.js.map +0 -1
  268. package/dist/src/keychain/cms.d.ts +0 -33
  269. package/dist/src/keychain/cms.d.ts.map +0 -1
  270. package/dist/src/keychain/cms.js +0 -129
  271. package/dist/src/keychain/cms.js.map +0 -1
  272. package/dist/src/keychain/index.d.ts +0 -151
  273. package/dist/src/keychain/index.d.ts.map +0 -1
  274. package/dist/src/keychain/index.js +0 -519
  275. package/dist/src/keychain/index.js.map +0 -1
  276. package/dist/src/keychain/util.d.ts +0 -21
  277. package/dist/src/keychain/util.d.ts.map +0 -1
  278. package/dist/src/keychain/util.js +0 -79
  279. package/dist/src/keychain/util.js.map +0 -1
  280. package/src/circuit/IMPLEMENTATION_NOTES.md +0 -128
  281. package/src/circuit/README.md +0 -111
  282. package/src/circuit/auto-relay.ts +0 -292
  283. package/src/circuit/circuit/hop.ts +0 -220
  284. package/src/circuit/circuit/stop.ts +0 -83
  285. package/src/circuit/circuit/stream-handler.ts +0 -87
  286. package/src/circuit/circuit/utils.ts +0 -44
  287. package/src/circuit/listener.ts +0 -83
  288. package/src/circuit/multicodec.ts +0 -2
  289. package/src/circuit/transport.ts +0 -278
  290. package/src/keychain/README.md +0 -55
  291. package/src/keychain/cms.ts +0 -150
  292. package/src/keychain/doc/private-key.png +0 -0
  293. package/src/keychain/doc/private-key.xml +0 -1
  294. package/src/keychain/index.ts +0 -629
  295. package/src/keychain/util.ts +0 -82
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 d1=Object.create;var Jo=Object.defineProperty;var p1=Object.getOwnPropertyDescriptor;var m1=Object.getOwnPropertyNames;var y1=Object.getPrototypeOf,g1=Object.prototype.hasOwnProperty;var N=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),pt=(t,e)=>{for(var r in e)Jo(t,r,{get:e[r],enumerable:!0})},wd=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of m1(e))!g1.call(t,i)&&i!==r&&Jo(t,i,{get:()=>e[i],enumerable:!(n=p1(e,i))||n.enumerable});return t};var C=(t,e,r)=>(r=t!=null?d1(y1(t)):{},wd(e||!t||!t.__esModule?Jo(r,"default",{value:t,enumerable:!0}):r,t)),E1=t=>wd(Jo({},"__esModule",{value:!0}),t);var Lu=N((aT,xd)=>{var Ri=1e3,Ni=Ri*60,Di=Ni*60,Hn=Di*24,v1=Hn*7,w1=Hn*365.25;xd.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return x1(t);if(r==="number"&&isFinite(t))return e.long?S1(t):b1(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function x1(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*w1;case"weeks":case"week":case"w":return r*v1;case"days":case"day":case"d":return r*Hn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Di;case"minutes":case"minute":case"mins":case"min":case"m":return r*Ni;case"seconds":case"second":case"secs":case"sec":case"s":return r*Ri;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function b1(t){var e=Math.abs(t);return e>=Hn?Math.round(t/Hn)+"d":e>=Di?Math.round(t/Di)+"h":e>=Ni?Math.round(t/Ni)+"m":e>=Ri?Math.round(t/Ri)+"s":t+"ms"}function S1(t){var e=Math.abs(t);return e>=Hn?ea(t,e,Hn,"day"):e>=Di?ea(t,e,Di,"hour"):e>=Ni?ea(t,e,Ni,"minute"):e>=Ri?ea(t,e,Ri,"second"):t+" ms"}function ea(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var Sd=N((cT,bd)=>{function _1(t){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=Lu(),r.destroy=u,Object.keys(t).forEach(l=>{r[l]=t[l]}),r.names=[],r.skips=[],r.formatters={};function e(l){let f=0;for(let d=0;d<l.length;d++)f=(f<<5)-f+l.charCodeAt(d),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=e;function r(l){let f,d=null,h,p;function y(...g){if(!y.enabled)return;let E=y,x=Number(new Date),_=x-(f||x);E.diff=_,E.prev=f,E.curr=x,f=x,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let B=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(L,te)=>{if(L==="%%")return"%";B++;let ce=r.formatters[te];if(typeof ce=="function"){let st=g[B];L=ce.call(E,st),g.splice(B,1),B--}return L}),r.formatArgs.call(E,g),(E.log||r.log).apply(E,g)}return y.namespace=l,y.useColors=r.useColors(),y.color=r.selectColor(l),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(h!==r.namespaces&&(h=r.namespaces,p=r.enabled(l)),p),set:g=>{d=g}}),typeof r.init=="function"&&r.init(y),y}function n(l,f){let d=r(this.namespace+(typeof f>"u"?":":f)+l);return d.log=this.log,d}function i(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let f,d=(typeof l=="string"?l:"").split(/[\s,]+/),h=d.length;for(f=0;f<h;f++)d[f]&&(l=d[f].replace(/\*/g,".*?"),l[0]==="-"?r.skips.push(new RegExp("^"+l.slice(1)+"$")):r.names.push(new RegExp("^"+l+"$")))}function s(){let l=[...r.names.map(a),...r.skips.map(a).map(f=>"-"+f)].join(",");return r.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let f,d;for(f=0,d=r.skips.length;f<d;f++)if(r.skips[f].test(l))return!1;for(f=0,d=r.names.length;f<d;f++)if(r.names[f].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function c(l){return l instanceof Error?l.stack||l.message:l}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}bd.exports=_1});var Pu=N((Tt,ta)=>{Tt.formatArgs=C1;Tt.save=I1;Tt.load=T1;Tt.useColors=A1;Tt.storage=R1();Tt.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();Tt.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function A1(){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 C1(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+ta.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}Tt.log=console.debug||console.log||(()=>{});function I1(t){try{t?Tt.storage.setItem("debug",t):Tt.storage.removeItem("debug")}catch{}}function T1(){let t;try{t=Tt.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function R1(){try{return localStorage}catch{}}ta.exports=Sd()(Tt);var{formatters:N1}=ta.exports;N1.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var ep=N((dR,Jd)=>{Jd.exports=il;var Zd=128,Vx=127,qx=~Vx,Hx=Math.pow(2,31);function il(t,e,r){if(Number.MAX_SAFE_INTEGER&&t>Number.MAX_SAFE_INTEGER)throw il.bytes=0,new RangeError("Could not encode varint");e=e||[],r=r||0;for(var n=r;t>=Hx;)e[r++]=t&255|Zd,t/=128;for(;t&qx;)e[r++]=t&255|Zd,t>>>=7;return e[r]=t|0,il.bytes=r-n+1,e}});var np=N((pR,rp)=>{rp.exports=sl;var zx=128,tp=127;function sl(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a||i>49)throw sl.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&tp)<<i:(o&tp)*Math.pow(2,i),i+=7}while(o>=zx);return sl.bytes=s-n,r}});var sp=N((mR,ip)=>{var $x=Math.pow(2,7),Gx=Math.pow(2,14),Yx=Math.pow(2,21),Wx=Math.pow(2,28),Qx=Math.pow(2,35),Xx=Math.pow(2,42),jx=Math.pow(2,49),Zx=Math.pow(2,56),Jx=Math.pow(2,63);ip.exports=function(t){return t<$x?1:t<Gx?2:t<Yx?3:t<Wx?4:t<Qx?5:t<Xx?6:t<jx?7:t<Zx?8:t<Jx?9:10}});var sa=N((yR,op)=>{op.exports={encode:ep(),decode:np(),encodingLength:sp()}});var Y=N((kR,gp)=>{"use strict";function yp(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function pb(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 yp(t,r)}catch{r.message=t.message,r.stack=t.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(t)),yp(new i,r)}}gp.exports=pb});var Ip=N((pN,Cp)=>{"use strict";Cp.exports=function(){return Date.now()}});var El=N((mN,Tp)=>{"use strict";var ya=Ip(),gl=class{constructor(e,r,n){let i=this;this._started=ya(),this._rescheduled=0,this._scheduled=r,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(ya()-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=ya();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=ya(),this._rescheduled=0,this._scheduled=e,this._timer=setTimeout(this._timerWrapper,e)}clear(){clearTimeout(this._timer)}};function xb(){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 gl(arguments[0],arguments[1],t)}Tp.exports=xb});var Vr=N((yN,Np)=>{"use strict";var{AbortController:bb}=globalThis,Rp=El(),Fs=class extends bb{constructor(e){super(),this._ms=e,this._timer=Rp(()=>this.abort(),e),Object.setPrototypeOf(this,Fs.prototype)}abort(){return this._timer.clear(),super.abort()}clear(){this._timer.clear()}reset(){this._timer.clear(),this._timer=Rp(()=>this.abort(),this._ms)}};Np.exports={TimeoutController:Fs}});var wl=N((CN,Lp)=>{"use strict";var Vi=new Map,Cb=()=>`${Date.now()}:${Math.floor(Math.random()*1e6)}`;async function Ib(t,e,r){for(;Vi.get(r);){try{await t()}catch(n){setTimeout(()=>{throw n},1);break}if(!Vi.get(r))break;await new Promise(n=>{let i=setTimeout(n,e);Vi.set(r,i)})}}function Tb(t,e,r){r=r||e;let n=Cb(),i=setTimeout(()=>{Ib(t,e,n)},r);return Vi.set(n,i),n}function Rb(t){let e=Vi.get(t);e&&(clearTimeout(e),Vi.delete(t))}Lp.exports={setDelayedInterval:Tb,clearDelayedInterval:Rb}});var gr=N((IN,xl)=>{"use strict";var qi=typeof Reflect=="object"?Reflect:null,Pp=qi&&typeof qi.apply=="function"?qi.apply:function(e,r,n){return Function.prototype.apply.call(e,r,n)},Ea;qi&&typeof qi.ownKeys=="function"?Ea=qi.ownKeys:Object.getOwnPropertySymbols?Ea=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Ea=function(e){return Object.getOwnPropertyNames(e)};function Nb(t){console&&console.warn&&console.warn(t)}var Op=Number.isNaN||function(e){return e!==e};function be(){be.init.call(this)}xl.exports=be;xl.exports.once=Bb;be.EventEmitter=be;be.prototype._events=void 0;be.prototype._eventsCount=0;be.prototype._maxListeners=void 0;var Bp=10;function va(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(be,"defaultMaxListeners",{enumerable:!0,get:function(){return Bp},set:function(t){if(typeof t!="number"||t<0||Op(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Bp=t}});be.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};be.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||Op(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 kp(t){return t._maxListeners===void 0?be.defaultMaxListeners:t._maxListeners}be.prototype.getMaxListeners=function(){return kp(this)};be.prototype.emit=function(e){for(var r=[],n=1;n<arguments.length;n++)r.push(arguments[n]);var i=e==="error",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(r.length>0&&(o=r[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=s[e];if(c===void 0)return!1;if(typeof c=="function")Pp(c,this,r);else for(var u=c.length,l=Vp(c,u),n=0;n<u;++n)Pp(l[n],this,r);return!0};function Up(t,e,r,n){var i,s,o;if(va(r),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,r.listener?r.listener:r),s=t._events),o=s[e]),o===void 0)o=s[e]=r,++t._eventsCount;else if(typeof o=="function"?o=s[e]=n?[r,o]:[o,r]:n?o.unshift(r):o.push(r),i=kp(t),i>0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=t,a.type=e,a.count=o.length,Nb(a)}return t}be.prototype.addListener=function(e,r){return Up(this,e,r,!1)};be.prototype.on=be.prototype.addListener;be.prototype.prependListener=function(e,r){return Up(this,e,r,!0)};function Db(){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 Mp(t,e,r){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:r},i=Db.bind(n);return i.listener=r,n.wrapFn=i,i}be.prototype.once=function(e,r){return va(r),this.on(e,Mp(this,e,r)),this};be.prototype.prependOnceListener=function(e,r){return va(r),this.prependListener(e,Mp(this,e,r)),this};be.prototype.removeListener=function(e,r){var n,i,s,o,a;if(va(r),i=this._events,i===void 0)return this;if(n=i[e],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||r));else if(typeof n!="function"){for(s=-1,o=n.length-1;o>=0;o--)if(n[o]===r||n[o].listener===r){a=n[o].listener,s=o;break}if(s<0)return this;s===0?n.shift():Lb(n,s),n.length===1&&(i[e]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",e,a||r)}return this};be.prototype.off=be.prototype.removeListener;be.prototype.removeAllListeners=function(e){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var s=Object.keys(n),o;for(i=0;i<s.length;++i)o=s[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(r=n[e],typeof r=="function")this.removeListener(e,r);else if(r!==void 0)for(i=r.length-1;i>=0;i--)this.removeListener(e,r[i]);return this};function Fp(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?Pb(i):Vp(i,i.length)}be.prototype.listeners=function(e){return Fp(this,e,!0)};be.prototype.rawListeners=function(e){return Fp(this,e,!1)};be.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Kp.call(t,e)};be.prototype.listenerCount=Kp;function Kp(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}be.prototype.eventNames=function(){return this._eventsCount>0?Ea(this._events):[]};function Vp(t,e){for(var r=new Array(e),n=0;n<e;++n)r[n]=t[n];return r}function Lb(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function Pb(t){for(var e=new Array(t.length),r=0;r<e.length;++r)e[r]=t[r].listener||t[r];return e}function Bb(t,e){return new Promise(function(r,n){function i(o){t.removeListener(e,s),n(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",i),r([].slice.call(arguments))}qp(t,e,s,{once:!0}),e!=="error"&&Ob(t,i,{once:!0})})}function Ob(t,e,r){typeof t.on=="function"&&qp(t,"error",e,r)}function qp(t,e,r,n){if(typeof t.on=="function")n.once?t.once(e,r):t.on(e,r);else if(typeof t.addEventListener=="function")t.addEventListener(e,function i(s){n.once&&t.removeEventListener(e,i),r(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}});var Qp=N((iD,Wp)=>{"use strict";Wp.exports=t=>{if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}});var t0=N((Jp,e0)=>{"use strict";var Aa=Qp(),{hasOwnProperty:jp}=Object.prototype,{propertyIsEnumerable:Fb}=Object,Hi=(t,e,r)=>Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0}),Kb=Jp,Xp={concatArrays:!1,ignoreUndefined:!1},Ca=t=>{let e=[];for(let r in t)jp.call(t,r)&&e.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(t);for(let n of r)Fb.call(t,n)&&e.push(n)}return e};function zi(t){return Array.isArray(t)?Vb(t):Aa(t)?qb(t):t}function Vb(t){let e=t.slice(0,0);return Ca(t).forEach(r=>{Hi(e,r,zi(t[r]))}),e}function qb(t){let e=Object.getPrototypeOf(t)===null?Object.create(null):{};return Ca(t).forEach(r=>{Hi(e,r,zi(t[r]))}),e}var Zp=(t,e,r,n)=>(r.forEach(i=>{typeof e[i]>"u"&&n.ignoreUndefined||(i in t&&t[i]!==Object.getPrototypeOf(t)?Hi(t,i,Al(t[i],e[i],n)):Hi(t,i,zi(e[i])))}),t),Hb=(t,e,r)=>{let n=t.slice(0,0),i=0;return[t,e].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)jp.call(s,a)&&(o.push(String(a)),s===t?Hi(n,i++,s[a]):Hi(n,i++,zi(s[a])));n=Zp(n,s,Ca(s).filter(a=>!o.includes(a)),r)}),n};function Al(t,e,r){return r.concatArrays&&Array.isArray(t)&&Array.isArray(e)?Hb(t,e,r):!Aa(e)||!Aa(t)?zi(e):Zp(t,e,Ca(e),r)}e0.exports=function(...t){let e=Al(zi(Xp),this!==Kb&&this||{},Xp),r={_:{}};for(let n of t)if(n!==void 0){if(!Aa(n))throw new TypeError("`"+n+"` is not an Option Object");r=Al(r,{_:n},e)}return r._}});var Hs=N((RD,s0)=>{s0.exports=class{constructor(e={}){this.points=e.points,this.duration=e.duration,this.blockDuration=e.blockDuration,this.execEvenly=e.execEvenly,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs,this.keyPrefix=e.keyPrefix}get points(){return this._points}set points(e){this._points=e>=0?e:4}get duration(){return this._duration}set duration(e){this._duration=typeof e>"u"?1:e}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(e){this._blockDuration=typeof e>"u"?0:e}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(e){this._execEvenly=typeof e>"u"?!1:Boolean(e)}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(e){this._execEvenlyMinDelayMs=typeof e>"u"?Math.ceil(this.msDuration/this.points):e}get keyPrefix(){return this._keyPrefix}set keyPrefix(e){if(typeof e>"u"&&(e="rlflx"),typeof e!="string")throw new Error("keyPrefix must be string");this._keyPrefix=e}_getKeySecDuration(e={}){return e&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var a0=N((DD,o0)=>{o0.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let e=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=e&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(e,r){this.addMs(e,r*1e3)}addMs(e,r){this._keys[e]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(e){let r=this._keys[e];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(e){e?delete this._keys[e]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var u0=N((LD,c0)=>{var Gb=a0();c0.exports=Gb});var Dt=N((BD,l0)=>{l0.exports=class{constructor(e,r,n,i){this.remainingPoints=typeof e>"u"?0:e,this.msBeforeNext=typeof r>"u"?0:r,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(e){return this._msBeforeNext=e,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(e){return this._remainingPoints=e,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(e){return this._consumedPoints=e,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(e){this._isFirstInDuration=Boolean(e)}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var Gi=N((kD,h0)=>{var Il=Hs(),Yb=u0(),f0=Dt();h0.exports=class extends Il{constructor(e={}){super(e),this.inMemoryBlockOnConsumed=e.inMemoryBlockOnConsumed||e.inmemoryBlockOnConsumed,this.inMemoryBlockDuration=e.inMemoryBlockDuration||e.inmemoryBlockDuration,this.insuranceLimiter=e.insuranceLimiter,this._inMemoryBlockedKeys=new Yb}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("storeClient is not set");this._client=e}_afterConsume(e,r,n,i,s,o={}){let a=this._getRateLimiterRes(n,i,s);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?r(a):e(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{r(a)}).catch(u=>{r(u)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(e,c,a)}else e(a)}_handleError(e,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof Il?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(e)}get _inmemoryBlockedKeys(){return this._inMemoryBlockedKeys}getInmemoryBlockMsBeforeExpire(e){return this.getInMemoryBlockMsBeforeExpire(e)}get inmemoryBlockOnConsumed(){return this.inMemoryBlockOnConsumed}set inmemoryBlockOnConsumed(e){this.inMemoryBlockOnConsumed=e}get inmemoryBlockDuration(){return this.inMemoryBlockDuration}set inmemoryBlockDuration(e){this.inMemoryBlockDuration=e}get msInmemoryBlockDuration(){return this.inMemoryBlockDuration*1e3}getInMemoryBlockMsBeforeExpire(e){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(e):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(e){if(this._inMemoryBlockOnConsumed=e?parseInt(e):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(e){if(this._inMemoryBlockDuration=e?parseInt(e):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(e){if(typeof e<"u"&&!(e instanceof Il))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=e,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(e,r,n={}){let i=r*1e3;return this._block(this.getKey(e),this.points+1,i,n)}set(e,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(e),r,s,i)}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new f0(0,a));this._upsert(o,r,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,s,o,r,c)}).catch(c=>{this._handleError(c,"consume",i,s,e,r,n)})})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,r,a))}).catch(a=>{this._handleError(a,"penalty",s,o,e,r,n)})})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,-r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,-r,a))}).catch(a=>{this._handleError(a,"reward",s,o,e,r,n)})})}get(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._get(n,r).then(o=>{i(o===null||typeof o>"u"?null:this._getRateLimiterRes(n,0,o))}).catch(o=>{this._handleError(o,"get",i,s,e,r)})})}delete(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._delete(n,r).then(o=>{this._inMemoryBlockedKeys.delete(n),i(o)}).catch(o=>{this._handleError(o,"delete",i,s,e,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(e,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(e,r,n,i={}){return new Promise((s,o)=>{this._upsert(e,r,n,!0,i).then(()=>{s(new f0(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(e),n/1e3,i)})})}_get(e,r={}){throw new Error("You have to implement the method '_get'!")}_delete(e,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(e,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var m0=N((UD,p0)=>{var Wb=Gi(),Qb=Dt(),d0="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then redis.call('expire', KEYS[1], ARGV[2]) ttl = 1000 * ARGV[2] end return {consumed, ttl} ",Tl=class extends Wb{constructor(e){super(e),e.redis?this.client=e.redis:this.client=e.storeClient,this._rejectIfRedisNotReady=!!e.rejectIfRedisNotReady,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:d0})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(e,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new Qb;return o.consumedPoints=parseInt(i),o.isFirstInDuration=o.consumedPoints===r,o.remainingPoints=Math.max(this.points-o.consumedPoints,0),o.msBeforeNext=s,o}_upsert(e,r,n,i=!1){return new Promise((s,o)=>{if(!this._isRedisReady())return o(new Error("Redis connection is not ready"));let a=Math.floor(n/1e3),c=this.client.multi();if(i)a>0?c.set(e,r,"EX",a):c.set(e,r),c.pttl(e).exec((u,l)=>u?o(u):s(l));else if(a>0){let u=function(l,f){return l?o(l):s(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(e,r,a,u):this.client.eval(d0,1,e,r,a,u)}else c.incrby(e,r).pttl(e).exec((u,l)=>u?o(u):s(l))})}_get(e){return new Promise((r,n)=>{if(!this._isRedisReady())return n(new Error("Redis connection is not ready"));this.client.multi().get(e).pttl(e).exec((i,s)=>{if(i)n(i);else{let[o]=s;if(o===null)return r(null);r(s)}})})}_delete(e){return new Promise((r,n)=>{this.client.del(e,(i,s)=>{i?n(i):r(s>0)})})}};p0.exports=Tl});var E0=N((MD,g0)=>{var Xb=Gi(),jb=Dt();function y0(t){try{let e=t.client?t.client:t,{version:r}=e.topology.s.options.metadata.driver,n=r.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var zs=class extends Xb{constructor(e){super(e),this.dbName=e.dbName,this.tableName=e.tableName,this.indexKeyPrefix=e.indexKeyPrefix,e.mongo?this.client=e.mongo:this.client=e.storeClient,typeof this.client.then=="function"?this.client.then(r=>{this.client=r,this._initCollection(),this._driverVersion=y0(this.client)}):(this._initCollection(),this._driverVersion=y0(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?zs.getDbName():e}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("mongo is not set");this._client=e}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(e){this._indexKeyPrefix=e||{}}_initCollection(){let r=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);r.createIndex({expire:-1},{expireAfterSeconds:0}),r.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=r}_getRateLimiterRes(e,r,n){let i=new jb,s;return typeof n.value>"u"?s=n:s=n.value,i.isFirstInDuration=s.points===r,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(e,r,n,i=!1,s={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let o=s.attrs||{},a,c;i?(a={key:e},a=Object.assign(a,o),c={$set:{key:e,points:r,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,o)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:e},a=Object.assign(a,o),c={$setOnInsert:{key:e,expire:n>0?new Date(Date.now()+n):null},$inc:{points:r}},c.$setOnInsert=Object.assign(c.$setOnInsert,o));let u={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?u.returnDocument="after":u.returnOriginal=!1,new Promise((l,f)=>{this._collection.findOneAndUpdate(a,c,u).then(d=>{l(d)}).catch(d=>{if(d&&d.code===11e3){let h=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:e},o),p={$set:Object.assign({key:e,points:r,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(h,p,u).then(y=>{l(y)}).catch(y=>{y&&y.code===11e3?this._upsert(e,r,n,i).then(g=>l(g)).catch(g=>f(g)):f(y)})}else f(d)})})}_get(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};g0.exports=zs});var w0=N((FD,v0)=>{var Zb=Gi(),Jb=Dt(),Rl=class extends Zb{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.dbName=e.dbName,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}clearExpired(e){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,e],()=>{this._releaseConnection(n),r()})}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((e,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);e(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return e.release();case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);default:return!0}}_createDbAndTable(){return new Promise((e,r)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),r(i);n.query(this._getCreateTableStmt(),s=>{if(s)return this._releaseConnection(n),r(s);this._releaseConnection(n),e()})})}).catch(n=>{r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(e){if(typeof e>"u")if(this.client.constructor.name==="Connection")e="connection";else if(this.client.constructor.name==="Pool")e="pool";else if(this.client.constructor.name==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?"rtlmtrflx":e}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:Boolean(e)}_getRateLimiterRes(e,r,n){let i=new Jb,[s]=n;return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_upsertTransaction(e,r,n,i,s){return new Promise((o,a)=>{e.query("BEGIN",c=>{if(c)return e.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,d;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
2
+ "use strict";var Libp2P=(()=>{var Vw=Object.create;var Js=Object.defineProperty;var qw=Object.getOwnPropertyDescriptor;var $w=Object.getOwnPropertyNames;var zw=Object.getPrototypeOf,Hw=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})},$f=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of $w(t))!Hw.call(r,i)&&i!==e&&Js(r,i,{get:()=>t[i],enumerable:!(n=qw(t,i))||n.enumerable});return r};var N=(r,t,e)=>(e=r!=null?Vw(zw(r)):{},$f(t||!r||!r.__esModule?Js(e,"default",{value:r,enumerable:!0}):e,r)),Gw=r=>$f(Js({},"__esModule",{value:!0}),r);var _c=T((iA,zf)=>{var Jn=1e3,jn=Jn*60,ti=jn*60,mn=ti*24,Yw=mn*7,Ww=mn*365.25;zf.exports=function(r,t){t=t||{};var e=typeof r;if(e==="string"&&r.length>0)return Qw(r);if(e==="number"&&isFinite(r))return t.long?Zw(r):Xw(r);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(r))};function Qw(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*Ww;case"weeks":case"week":case"w":return e*Yw;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 Xw(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 Zw(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 Gf=T((sA,Hf)=>{function Jw(r){e.debug=e,e.default=e,e.coerce=c,e.disable=s,e.enable=i,e.enabled=o,e.humanize=_c(),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}Hf.exports=Jw});var Sc=T((we,to)=>{we.formatArgs=t1;we.save=e1;we.load=r1;we.useColors=jw;we.storage=n1();we.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`."))}})();we.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 t1(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)}we.log=console.debug||console.log||(()=>{});function e1(r){try{r?we.storage.setItem("debug",r):we.storage.removeItem("debug")}catch{}}function r1(){let r;try{r=we.storage.getItem("debug")}catch{}return!r&&typeof process<"u"&&"env"in process&&(r=process.env.DEBUG),r}function n1(){try{return localStorage}catch{}}to.exports=Gf()(we);var{formatters:i1}=to.exports;i1.j=function(r){try{return JSON.stringify(r)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var _h=T((uR,bh)=>{bh.exports=Qc;var vh=128,mE=127,yE=~mE,gE=Math.pow(2,31);function Qc(r,t,e){if(Number.MAX_SAFE_INTEGER&&r>Number.MAX_SAFE_INTEGER)throw Qc.bytes=0,new RangeError("Could not encode varint");t=t||[],e=e||0;for(var n=e;r>=gE;)t[e++]=r&255|vh,r/=128;for(;r&yE;)t[e++]=r&255|vh,r>>>=7;return t[e]=r|0,Qc.bytes=e-n+1,t}});var Rh=T((fR,Ah)=>{Ah.exports=Xc;var wE=128,Sh=127;function Xc(r,n){var e=0,n=n||0,i=0,s=n,o,a=r.length;do{if(s>=a||i>49)throw Xc.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>=wE);return Xc.bytes=s-n,e}});var Th=T((hR,Ih)=>{var EE=Math.pow(2,7),xE=Math.pow(2,14),vE=Math.pow(2,21),bE=Math.pow(2,28),_E=Math.pow(2,35),SE=Math.pow(2,42),AE=Math.pow(2,49),RE=Math.pow(2,56),IE=Math.pow(2,63);Ih.exports=function(r){return r<EE?1:r<xE?2:r<vE?3:r<bE?4:r<_E?5:r<SE?6:r<AE?7:r<RE?8:r<IE?9:10}});var io=T((dR,Ch)=>{Ch.exports={encode:_h(),decode:Rh(),encodingLength:Th()}});var ci=T((PR,Kh)=>{"use strict";function Fh(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 Fh(r,e)}catch{e.message=r.message,e.stack=r.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(r)),Fh(new i,e)}}Kh.exports=qE});var Qh=T((dI,Wh)=>{"use strict";Wh.exports=function(){return Date.now()}});var ll=T((pI,Xh)=>{"use strict";var go=Qh(),cl=class{constructor(t,e,n){let i=this;this._started=go(),this._rescheduled=0,this._scheduled=e,this._args=n,this._triggered=!1,this._timerWrapper=()=>{i._rescheduled>0?(i._scheduled=i._rescheduled-(go()-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=go();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=go(),this._rescheduled=0,this._scheduled=t,this._timer=setTimeout(this._timerWrapper,t)}clear(){clearTimeout(this._timer)}};function QE(){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 cl(arguments[0],arguments[1],r)}Xh.exports=QE});var _r=T((mI,Jh)=>{"use strict";var{AbortController:XE}=globalThis,Zh=ll(),Zi=class extends XE{constructor(t){super(),this._ms=t,this._timer=Zh(()=>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=Zh(()=>this.abort(),this._ms)}};Jh.exports={TimeoutController:Zi}});var e0=T((AI,t0)=>{"use strict";var fi=new Map,tx=()=>`${Date.now()}:${Math.floor(Math.random()*1e6)}`;async function ex(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 rx(r,t,e){e=e||t;let n=tx(),i=setTimeout(()=>{ex(r,t,n)},e);return fi.set(n,i),n}function nx(r){let t=fi.get(r);t&&(clearTimeout(t),fi.delete(r))}t0.exports={setDelayedInterval:rx,clearDelayedInterval:nx}});var tr=T((RI,fl)=>{"use strict";var hi=typeof Reflect=="object"?Reflect:null,r0=hi&&typeof hi.apply=="function"?hi.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)},Eo;hi&&typeof hi.ownKeys=="function"?Eo=hi.ownKeys:Object.getOwnPropertySymbols?Eo=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Eo=function(t){return Object.getOwnPropertyNames(t)};function ix(r){console&&console.warn&&console.warn(r)}var i0=Number.isNaN||function(t){return t!==t};function ht(){ht.init.call(this)}fl.exports=ht;fl.exports.once=cx;ht.EventEmitter=ht;ht.prototype._events=void 0;ht.prototype._eventsCount=0;ht.prototype._maxListeners=void 0;var n0=10;function xo(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 n0},set:function(r){if(typeof r!="number"||r<0||i0(r))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+r+".");n0=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||i0(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 s0(r){return r._maxListeners===void 0?ht.defaultMaxListeners:r._maxListeners}ht.prototype.getMaxListeners=function(){return s0(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")r0(c,this,e);else for(var l=c.length,u=u0(c,l),n=0;n<l;++n)r0(u[n],this,e);return!0};function o0(r,t,e,n){var i,s,o;if(xo(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=s0(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,ix(a)}return r}ht.prototype.addListener=function(t,e){return o0(this,t,e,!1)};ht.prototype.on=ht.prototype.addListener;ht.prototype.prependListener=function(t,e){return o0(this,t,e,!0)};function sx(){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 a0(r,t,e){var n={fired:!1,wrapFn:void 0,target:r,type:t,listener:e},i=sx.bind(n);return i.listener=e,n.wrapFn=i,i}ht.prototype.once=function(t,e){return xo(e),this.on(t,a0(this,t,e)),this};ht.prototype.prependOnceListener=function(t,e){return xo(e),this.prependListener(t,a0(this,t,e)),this};ht.prototype.removeListener=function(t,e){var n,i,s,o,a;if(xo(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():ox(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 c0(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?ax(i):u0(i,i.length)}ht.prototype.listeners=function(t){return c0(this,t,!0)};ht.prototype.rawListeners=function(t){return c0(this,t,!1)};ht.listenerCount=function(r,t){return typeof r.listenerCount=="function"?r.listenerCount(t):l0.call(r,t)};ht.prototype.listenerCount=l0;function l0(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?Eo(this._events):[]};function u0(r,t){for(var e=new Array(t),n=0;n<t;++n)e[n]=r[n];return e}function ox(r,t){for(;t+1<r.length;t++)r[t]=r[t+1];r.pop()}function ax(r){for(var t=new Array(r.length),e=0;e<t.length;++e)t[e]=r[e].listener||r[e];return t}function cx(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))}f0(r,t,s,{once:!0}),t!=="error"&&lx(r,i,{once:!0})})}function lx(r,t,e){typeof r.on=="function"&&f0(r,"error",t,e)}function f0(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 w0=T((iT,g0)=>{"use strict";g0.exports=r=>{if(Object.prototype.toString.call(r)!=="[object Object]")return!1;let t=Object.getPrototypeOf(r);return t===null||t===Object.prototype}});var S0=T((b0,_0)=>{"use strict";var Ao=w0(),{hasOwnProperty:x0}=Object.prototype,{propertyIsEnumerable:dx}=Object,di=(r,t,e)=>Object.defineProperty(r,t,{value:e,writable:!0,enumerable:!0,configurable:!0}),px=b0,E0={concatArrays:!1,ignoreUndefined:!1},Ro=r=>{let t=[];for(let e in r)x0.call(r,e)&&t.push(e);if(Object.getOwnPropertySymbols){let e=Object.getOwnPropertySymbols(r);for(let n of e)dx.call(r,n)&&t.push(n)}return t};function pi(r){return Array.isArray(r)?mx(r):Ao(r)?yx(r):r}function mx(r){let t=r.slice(0,0);return Ro(r).forEach(e=>{di(t,e,pi(r[e]))}),t}function yx(r){let t=Object.getPrototypeOf(r)===null?Object.create(null):{};return Ro(r).forEach(e=>{di(t,e,pi(r[e]))}),t}var v0=(r,t,e,n)=>(e.forEach(i=>{typeof t[i]>"u"&&n.ignoreUndefined||(i in r&&r[i]!==Object.getPrototypeOf(r)?di(r,i,yl(r[i],t[i],n)):di(r,i,pi(t[i])))}),r),gx=(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++)x0.call(s,a)&&(o.push(String(a)),s===r?di(n,i++,s[a]):di(n,i++,pi(s[a])));n=v0(n,s,Ro(s).filter(a=>!o.includes(a)),e)}),n};function yl(r,t,e){return e.concatArrays&&Array.isArray(r)&&Array.isArray(t)?gx(r,t,e):!Ao(t)||!Ao(r)?pi(t):v0(r,t,Ro(t),e)}_0.exports=function(...r){let t=yl(pi(E0),this!==px&&this||{},E0),e={_:{}};for(let n of r)if(n!==void 0){if(!Ao(n))throw new TypeError("`"+n+"` is not an Option Object");e=yl(e,{_:n},t)}return e._}});var ts=T((CT,T0)=>{T0.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 B0=T((DT,C0)=>{C0.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 L0=T((LT,D0)=>{var xx=B0();D0.exports=xx});var ve=T((NT,P0)=>{P0.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((OT,k0)=>{var wl=ts(),vx=L0(),N0=ve();k0.exports=class extends wl{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed||t.inmemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration||t.inmemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new vx}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 wl?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 wl))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 N0(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 N0(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 U0=T((MT,M0)=>{var bx=yi(),_x=ve(),O0="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} ",El=class extends bx{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:O0})}_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 _x;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(O0,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)})})}};M0.exports=El});var V0=T((UT,K0)=>{var Sx=yi(),Ax=ve();function F0(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 Sx{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=F0(this.client)}):(this._initCollection(),this._driverVersion=F0(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 Ax,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)}};K0.exports=es});var $0=T((FT,q0)=>{var Rx=yi(),Ix=ve(),xl=class extends Rx{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 Ix,[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 (?, ?, ?)
3
3
  ON DUPLICATE KEY UPDATE
4
4
  points = ?,
5
- expire = ?;`,d=[this.dbName,this.tableName,r,n,l,n,l]):(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
5
+ expire = ?;`,h=[this.dbName,this.tableName,e,n,u,n,u]):(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
6
6
  ON DUPLICATE KEY UPDATE
7
7
  points = IF(expire <= ?, ?, points + (?)),
8
- expire = IF(expire <= ?, ?, expire);`,d=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),e.query(f,d,h=>{if(h)return e.rollback(),a(h);e.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(p,y)=>{if(p)return e.rollback(),a(p);e.query("COMMIT",g=>{if(g)return e.rollback(),a(g);o(y)})})})})})}_upsert(e,r,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,e,r,n,i).then(c=>{s(c),this._releaseConnection(a)}).catch(c=>{o(c),this._releaseConnection(a)})}).catch(a=>{o(a)})}):Promise.reject(Error("Table is not created yet"))}_get(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,e,Date.now()],(s,o)=>{s?n(s):o.length===0?r(null):r(o),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,e],(s,o)=>{s?n(s):r(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};v0.exports=Rl});var b0=N((KD,x0)=>{var e2=Gi(),t2=Dt(),Nl=class extends e2{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} (
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"))}};q0.exports=xl});var H0=T((KT,z0)=>{var Tx=yi(),Cx=ve(),vl=class extends Tx{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} (
9
9
  key varchar(255) PRIMARY KEY,
10
10
  points integer NOT NULL DEFAULT 0,
11
11
  expire bigint
12
- );`}get clientType(){return this._clientType}set clientType(e){let r=this.client.constructor.name;if(typeof e>"u")if(r==="Client")e="client";else if(r==="Pool"||r==="BoundPool")e="pool";else if(r==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:Boolean(e)}_getRateLimiterRes(e,r,n){let i=new t2,s=n.rows[0];return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_query(e){let n={name:`${this.tableName.toLowerCase()}:${e.name}`,text:e.text,values:e.values};return new Promise((i,s)=>{this._getConnection().then(o=>{o.query(n).then(a=>{i(a),this._releaseConnection(o)}).catch(a=>{s(a),this._releaseConnection(o)})}).catch(o=>{s(o)})})}_upsert(e,r,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let s=n>0?Date.now()+n:null,o=i?" $3 ":` CASE
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 Cx,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
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:`
@@ -20,33 +20,33 @@
20
20
  ELSE ${this.tableName}.points + ($2)
21
21
  END,
22
22
  expire = ${o}
23
- RETURNING points, expire;`,values:[e,r,s,Date.now()]})}_get(e){return this.tableCreated?new Promise((r,n)=>{this._query({name:"rlflx-get",text:`
24
- SELECT points, expire FROM ${this.tableName} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[e,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this.tableName} WHERE key = $1`,values:[e]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};x0.exports=Nl});var S0=N(()=>{});var ei=N(()=>{});var A0=N((GD,_0)=>{_0.exports=class{constructor(e,r,n=null){this.value=e,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(e){this._value=parseInt(e)}get expiresAt(){return this._expiresAt}set expiresAt(e){!(e instanceof Date)&&Number.isInteger(e)&&(e=new Date(e)),this._expiresAt=e}get timeoutId(){return this._timeoutId}set timeoutId(e){this._timeoutId=e}}});var I0=N((WD,C0)=>{var r2=A0(),Dl=Dt();C0.exports=class{constructor(){this._storage={}}incrby(e,r,n){if(this._storage[e]){let i=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[e].value=this._storage[e].value+r,new Dl(0,i,this._storage[e].value,!1)):this.set(e,r,n)}return this.set(e,r,n)}set(e,r,n){let i=n*1e3;return this._storage[e]&&this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),this._storage[e]=new r2(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[e].timeoutId=setTimeout(()=>{delete this._storage[e]},i),this._storage[e].timeoutId.unref&&this._storage[e].timeoutId.unref()),new Dl(0,i===0?-1:i,this._storage[e].value,!0)}get(e){if(this._storage[e]){let r=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return new Dl(0,r,this._storage[e].value,!1)}return null}delete(e){return this._storage[e]?(this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),delete this._storage[e],!0):!1}}});var Pl=N((QD,R0)=>{var n2=Hs(),i2=I0(),T0=Dt(),Ll=class extends n2{constructor(e={}){super(e),this._memoryStorage=new i2}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(o,r,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+r&&(c=this._memoryStorage.set(o,c.consumedPoints,this.blockDuration)),s(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let u=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));u<this.execEvenlyMinDelayMs&&(u=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,u,c)}else i(c)})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}block(e,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(e),i,r),Promise.resolve(new T0(0,n===0?-1:n,i))}set(e,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(e),r,n),Promise.resolve(new T0(0,i===0?-1:i,r))}get(e){let r=this._memoryStorage.get(this.getKey(e));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(e){return Promise.resolve(this._memoryStorage.delete(this.getKey(e)))}};R0.exports=Ll});var k0=N((XD,O0)=>{var N0=S0(),s2=ei(),o2=Hs(),L0=Pl(),a2=Dt(),Vt="rate_limiter_flexible",Qi=null,D0=function(t,e,r,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},t.send({channel:Vt,keyPrefix:e.keyPrefix,promiseId:e.promiseId,type:r,data:i})},P0=function(t){setTimeout(()=>{this._initiated?process.send(t):typeof this._promises[t.promiseId]<"u"&&P0.call(this,t)},30)},Yi=function(t,e,r,n,i){let s={channel:Vt,keyPrefix:this.keyPrefix,func:t,promiseId:e,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):P0.call(this,s)},B0=function(t,e){if(!e||e.channel!==Vt||typeof this._rateLimiters[e.keyPrefix]>"u")return!1;let r;switch(e.func){case"consume":r=this._rateLimiters[e.keyPrefix].consume(e.data.key,e.data.arg,e.data.opts);break;case"penalty":r=this._rateLimiters[e.keyPrefix].penalty(e.data.key,e.data.arg,e.data.opts);break;case"reward":r=this._rateLimiters[e.keyPrefix].reward(e.data.key,e.data.arg,e.data.opts);break;case"block":r=this._rateLimiters[e.keyPrefix].block(e.data.key,e.data.arg,e.data.opts);break;case"get":r=this._rateLimiters[e.keyPrefix].get(e.data.key,e.data.opts);break;case"delete":r=this._rateLimiters[e.keyPrefix].delete(e.data.key,e.data.opts);break;default:return!1}r&&r.then(n=>{D0(t,e,"resolve",n)}).catch(n=>{D0(t,e,"reject",n)})},c2=function(t){if(!t||t.channel!==Vt||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 a2(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]}},u2=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Wi=function(t,e){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=s2.randomBytes(12).toString("base64")),this._promises[n]={resolve:t,reject:e,timeoutId:setTimeout(()=>{delete this._promises[n],e(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},Bl=class{constructor(){if(Qi)return Qi;this._rateLimiters={},N0.setMaxListeners(0),N0.on("message",(e,r)=>{r&&r.channel===Vt&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new L0(r.opts)),e.send({channel:Vt,type:"init",keyPrefix:r.opts.keyPrefix})):B0.call(this,e,r)}),Qi=this}},Ol=class{constructor(e){if(Qi)return Qi;this._rateLimiters={},e.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===Vt&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new L0(s.opts)),e.sendDataToProcessId(i.process.pm_id,{data:{},topic:Vt,channel:Vt,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=Vt,typeof c.data>"u"&&(c.data={}),e.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};B0.call(this,o,s)}})}),Qi=this}},kl=class extends o2{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===Vt&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:c2.call(this,r)}),process.send({channel:Vt,type:"init",opts:u2.call(this)}),this._promises={}}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=Wi.call(this,i,s);Yi.call(this,"consume",o,e,r,n)})}penalty(e,r=1,n={}){return new Promise((i,s)=>{let o=Wi.call(this,i,s);Yi.call(this,"penalty",o,e,r,n)})}reward(e,r=1,n={}){return new Promise((i,s)=>{let o=Wi.call(this,i,s);Yi.call(this,"reward",o,e,r,n)})}block(e,r,n={}){return new Promise((i,s)=>{let o=Wi.call(this,i,s);Yi.call(this,"block",o,e,r,n)})}get(e,r={}){return new Promise((n,i)=>{let s=Wi.call(this,n,i);Yi.call(this,"get",s,e,r)})}delete(e,r={}){return new Promise((n,i)=>{let s=Wi.call(this,n,i);Yi.call(this,"delete",s,e,r)})}};O0.exports={RateLimiterClusterMaster:Bl,RateLimiterClusterMasterPM2:Ol,RateLimiterCluster:kl}});var M0=N((jD,U0)=>{var l2=Gi(),f2=Dt(),Ul=class extends l2{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,r,n){let i=new f2;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===r,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(e,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(e,r,u,l=>{l?a(l):this.client.set(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(e,r,(l,f)=>{l||f===!1?this.client.add(e,r,u,(d,h)=>{if(d||!h)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){let p=Object.assign({},s);p.attemptNumber=p.attemptNumber?p.attemptNumber+1:1,this._upsert(e,r,n,i,p).then(y=>o(y)).catch(y=>a(y))}else a(new Error("Can not add key"));else this.client.add(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let p={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(p)})}):this.client.get(`${e}_expire`,(d,h)=>{if(d)a(d);else{let p=h===!1?0:h,y={consumedPoints:f,msBeforeNext:p>=0?Math.max(p-c,0):-1};o(y)}})})})}_get(e){return new Promise((r,n)=>{let i=Date.now();this.client.get(e,(s,o)=>{o?this.client.get(`${e}_expire`,(a,c)=>{if(a)n(a);else{let u=c===!1?0:c,l={consumedPoints:o,msBeforeNext:u>=0?Math.max(u-i,0):-1};r(l)}}):r(null)})})}_delete(e){return new Promise((r,n)=>{this.client.del(e,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${e}_expire`,o=>{o?n(o):r(s)})})})}};U0.exports=Ul});var V0=N((JD,K0)=>{var F0=Dt();K0.exports=class{constructor(e={}){this.limiter=e.limiter,this.blackList=e.blackList,this.whiteList=e.whiteList,this.isBlackListed=e.isBlackListed,this.isWhiteListed=e.isWhiteListed,this.runActionAnyway=e.runActionAnyway}get limiter(){return this._limiter}set limiter(e){if(typeof e>"u")throw new Error("limiter is not set");this._limiter=e}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(e){this._runActionAnyway=typeof e>"u"?!1:e}get blackList(){return this._blackList}set blackList(e){this._blackList=Array.isArray(e)?e:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isBlackListed must be function");this._isBlackListed=e}get whiteList(){return this._whiteList}set whiteList(e){this._whiteList=Array.isArray(e)?e:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=e}isBlackListedSomewhere(e){return this.blackList.indexOf(e)>=0||this.isBlackListed(e)}isWhiteListedSomewhere(e){return this.whiteList.indexOf(e)>=0||this.isWhiteListed(e)}getBlackRes(){return new F0(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new F0(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(e,r=1){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(e,r):(this.runActionAnyway&&this.limiter.consume(e,r).catch(()=>{}),n)}block(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(e,r):(this.runActionAnyway&&this.limiter.block(e,r).catch(()=>{}),n)}penalty(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(e,r):(this.runActionAnyway&&this.limiter.penalty(e,r).catch(()=>{}),n)}reward(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(e,r):(this.runActionAnyway&&this.limiter.reward(e,r).catch(()=>{}),n)}get(e){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(e):r}delete(e){return this.limiter.delete(e)}}});var H0=N((tL,q0)=>{var h2=Hs();q0.exports=class{constructor(...e){if(e.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");e.forEach(r=>{if(!(r instanceof h2))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=e}consume(e,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(e,r).catch(a=>({rejected:!0,rej:a})))}),Promise.all(s).then(o=>{let a={},c=!1;o.forEach(u=>{u.rejected===!0&&(c=!0)});for(let u=0;u<o.length;u++)c&&o[u].rejected===!0?a[this._limiters[u].keyPrefix]=o[u].rej:c||(a[this._limiters[u].keyPrefix]=o[u]);c?i(a):n(a)})})}}});var $0=N((nL,z0)=>{z0.exports=class extends Error{constructor(e,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=e,r&&(this.extra=r)}}});var Q0=N((sL,W0)=>{var G0=$0(),Y0=4294967295,Ml="limiter";W0.exports=class{constructor(e,r={maxQueueSize:Y0}){this._queueLimiters={KEY_DEFAULT:new Da(e,r)},this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(e=Ml){return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e,r=Ml){return this._queueLimiters[r]||(this._queueLimiters[r]=new Da(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(e)}};var Da=class{constructor(e,r={maxQueueSize:Y0,key:Ml}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(e=>e!==null?e.remainingPoints:this._limiterFlexible.points)}removeTokens(e){let r=this;return new Promise((n,i)=>{if(e>r._limiterFlexible.points){i(new G0(`Requested tokens ${e} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,e):r._limiterFlexible.consume(r._key,e).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,e),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(e,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:e,reject:r,tokens:n}):r(new G0(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let e=this;if(e._waitTimeout!==null&&(clearTimeout(e._waitTimeout),e._waitTimeout=null),e._queue.length===0)return;let r=e._queue.shift();e._limiterFlexible.consume(e._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),e._processFIFO.call(e)}).catch(n=>{n instanceof Error?(r.reject(n),e._processFIFO.call(e)):(e._queue.unshift(r),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),n.msBeforeNext)))})}}});var j0=N((aL,X0)=>{var Fl=Dt();X0.exports=class{constructor(e,r){this._rateLimiter=e,this._burstLimiter=r}_combineRes(e,r){return new Fl(e.remainingPoints,Math.min(e.msBeforeNext,r.msBeforeNext),e.consumedPoints,e.isFirstInDuration)}consume(e,r=1,n={}){return this._rateLimiter.consume(e,r,n).catch(i=>i instanceof Fl?this._burstLimiter.consume(e,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Fl?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(e){return Promise.all([this._rateLimiter.get(e),this._burstLimiter.get(e)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var J0=N((cL,Z0)=>{var d2=m0(),p2=E0(),m2=w0(),y2=b0(),{RateLimiterClusterMaster:g2,RateLimiterClusterMasterPM2:E2,RateLimiterCluster:v2}=k0(),w2=Pl(),x2=M0(),b2=V0(),S2=H0(),_2=Q0(),A2=j0(),C2=Dt();Z0.exports={RateLimiterRedis:d2,RateLimiterMongo:p2,RateLimiterMySQL:m2,RateLimiterPostgres:y2,RateLimiterMemory:w2,RateLimiterMemcache:x2,RateLimiterClusterMaster:g2,RateLimiterClusterMasterPM2:E2,RateLimiterCluster:v2,RLWrapperBlackAndWhite:b2,RateLimiterUnion:S2,RateLimiterQueue:_2,BurstyRateLimiter:A2,RateLimiterRes:C2}});var um=N((ML,cm)=>{"use strict";cm.exports=k2;function k2(t,e){for(var r=new Array(arguments.length-1),n=0,i=2,s=!0;i<arguments.length;)r[n++]=arguments[i++];return new Promise(function(a,c){r[n]=function(l){if(s)if(s=!1,l)c(l);else{for(var f=new Array(arguments.length-1),d=0;d<f.length;)f[d++]=arguments[d];a.apply(null,f)}};try{t.apply(e||null,r)}catch(u){s&&(s=!1,c(u))}})}});var dm=N(hm=>{"use strict";var Ma=hm;Ma.length=function(e){var r=e.length;if(!r)return 0;for(var n=0;--r%4>1&&e.charAt(r)==="=";)++n;return Math.ceil(e.length*3)/4-n};var ji=new Array(64),fm=new Array(123);for(rr=0;rr<64;)fm[ji[rr]=rr<26?rr+65:rr<52?rr+71:rr<62?rr-4:rr-59|43]=rr++;var rr;Ma.encode=function(e,r,n){for(var i=null,s=[],o=0,a=0,c;r<n;){var u=e[r++];switch(a){case 0:s[o++]=ji[u>>2],c=(u&3)<<4,a=1;break;case 1:s[o++]=ji[c|u>>4],c=(u&15)<<2,a=2;break;case 2:s[o++]=ji[c|u>>6],s[o++]=ji[u&63],a=0;break}o>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,s)),o=0)}return a&&(s[o++]=ji[c],s[o++]=61,a===1&&(s[o++]=61)),i?(o&&i.push(String.fromCharCode.apply(String,s.slice(0,o))),i.join("")):String.fromCharCode.apply(String,s.slice(0,o))};var lm="invalid encoding";Ma.decode=function(e,r,n){for(var i=n,s=0,o,a=0;a<e.length;){var c=e.charCodeAt(a++);if(c===61&&s>1)break;if((c=fm[c])===void 0)throw Error(lm);switch(s){case 0:o=c,s=1;break;case 1:r[n++]=o<<2|(c&48)>>4,o=c,s=2;break;case 2:r[n++]=(o&15)<<4|(c&60)>>2,o=c,s=3;break;case 3:r[n++]=(o&3)<<6|c,s=0;break}}if(s===1)throw Error(lm);return n-i};Ma.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var mm=N((KL,pm)=>{"use strict";pm.exports=Fa;function Fa(){this._listeners={}}Fa.prototype.on=function(e,r,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:r,ctx:n||this}),this};Fa.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};Fa.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 bm=N((VL,xm)=>{"use strict";xm.exports=ym(ym);function ym(t){return typeof Float32Array<"u"?function(){var e=new Float32Array([-0]),r=new Uint8Array(e.buffer),n=r[3]===128;function i(c,u,l){e[0]=c,u[l]=r[0],u[l+1]=r[1],u[l+2]=r[2],u[l+3]=r[3]}function s(c,u,l){e[0]=c,u[l]=r[3],u[l+1]=r[2],u[l+2]=r[1],u[l+3]=r[0]}t.writeFloatLE=n?i:s,t.writeFloatBE=n?s:i;function o(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],e[0]}function a(c,u){return r[3]=c[u],r[2]=c[u+1],r[1]=c[u+2],r[0]=c[u+3],e[0]}t.readFloatLE=n?o:a,t.readFloatBE=n?a:o}():function(){function e(n,i,s,o){var a=i<0?1:0;if(a&&(i=-i),i===0)n(1/i>0?0:2147483648,s,o);else if(isNaN(i))n(2143289344,s,o);else if(i>34028234663852886e22)n((a<<31|2139095040)>>>0,s,o);else if(i<11754943508222875e-54)n((a<<31|Math.round(i/1401298464324817e-60))>>>0,s,o);else{var c=Math.floor(Math.log(i)/Math.LN2),u=Math.round(i*Math.pow(2,-c)*8388608)&8388607;n((a<<31|c+127<<23|u)>>>0,s,o)}}t.writeFloatLE=e.bind(null,gm),t.writeFloatBE=e.bind(null,Em);function r(n,i,s){var o=n(i,s),a=(o>>31)*2+1,c=o>>>23&255,u=o&8388607;return c===255?u?NaN:a*(1/0):c===0?a*1401298464324817e-60*u:a*Math.pow(2,c-150)*(u+8388608)}t.readFloatLE=r.bind(null,vm),t.readFloatBE=r.bind(null,wm)}(),typeof Float64Array<"u"?function(){var e=new Float64Array([-0]),r=new Uint8Array(e.buffer),n=r[7]===128;function i(c,u,l){e[0]=c,u[l]=r[0],u[l+1]=r[1],u[l+2]=r[2],u[l+3]=r[3],u[l+4]=r[4],u[l+5]=r[5],u[l+6]=r[6],u[l+7]=r[7]}function s(c,u,l){e[0]=c,u[l]=r[7],u[l+1]=r[6],u[l+2]=r[5],u[l+3]=r[4],u[l+4]=r[3],u[l+5]=r[2],u[l+6]=r[1],u[l+7]=r[0]}t.writeDoubleLE=n?i:s,t.writeDoubleBE=n?s:i;function o(c,u){return r[0]=c[u],r[1]=c[u+1],r[2]=c[u+2],r[3]=c[u+3],r[4]=c[u+4],r[5]=c[u+5],r[6]=c[u+6],r[7]=c[u+7],e[0]}function a(c,u){return r[7]=c[u],r[6]=c[u+1],r[5]=c[u+2],r[4]=c[u+3],r[3]=c[u+4],r[2]=c[u+5],r[1]=c[u+6],r[0]=c[u+7],e[0]}t.readDoubleLE=n?o:a,t.readDoubleBE=n?a:o}():function(){function e(n,i,s,o,a,c){var u=o<0?1:0;if(u&&(o=-o),o===0)n(0,a,c+i),n(1/o>0?0:2147483648,a,c+s);else if(isNaN(o))n(0,a,c+i),n(2146959360,a,c+s);else if(o>17976931348623157e292)n(0,a,c+i),n((u<<31|2146435072)>>>0,a,c+s);else{var l;if(o<22250738585072014e-324)l=o/5e-324,n(l>>>0,a,c+i),n((u<<31|l/4294967296)>>>0,a,c+s);else{var f=Math.floor(Math.log(o)/Math.LN2);f===1024&&(f=1023),l=o*Math.pow(2,-f),n(l*4503599627370496>>>0,a,c+i),n((u<<31|f+1023<<20|l*1048576&1048575)>>>0,a,c+s)}}}t.writeDoubleLE=e.bind(null,gm,0,4),t.writeDoubleBE=e.bind(null,Em,4,0);function r(n,i,s,o,a){var c=n(o,a+i),u=n(o,a+s),l=(u>>31)*2+1,f=u>>>20&2047,d=4294967296*(u&1048575)+c;return f===2047?d?NaN:l*(1/0):f===0?l*5e-324*d:l*Math.pow(2,f-1075)*(d+4503599627370496)}t.readDoubleLE=r.bind(null,vm,0,4),t.readDoubleBE=r.bind(null,wm,4,0)}(),t}function gm(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 Em(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 vm(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function wm(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}});var Sm=N((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(t){}return null}});var Am=N(_m=>{"use strict";var zl=_m;zl.length=function(e){for(var r=0,n=0,i=0;i<e.length;++i)n=e.charCodeAt(i),n<128?r+=1:n<2048?r+=2:(n&64512)===55296&&(e.charCodeAt(i+1)&64512)===56320?(++i,r+=4):r+=3;return r};zl.read=function(e,r,n){var i=n-r;if(i<1)return"";for(var s=null,o=[],a=0,c;r<n;)c=e[r++],c<128?o[a++]=c:c>191&&c<224?o[a++]=(c&31)<<6|e[r++]&63:c>239&&c<365?(c=((c&7)<<18|(e[r++]&63)<<12|(e[r++]&63)<<6|e[r++]&63)-65536,o[a++]=55296+(c>>10),o[a++]=56320+(c&1023)):o[a++]=(c&15)<<12|(e[r++]&63)<<6|e[r++]&63,a>8191&&((s||(s=[])).push(String.fromCharCode.apply(String,o)),a=0);return s?(a&&s.push(String.fromCharCode.apply(String,o.slice(0,a))),s.join("")):String.fromCharCode.apply(String,o.slice(0,a))};zl.write=function(e,r,n){for(var i=n,s,o,a=0;a<e.length;++a)s=e.charCodeAt(a),s<128?r[n++]=s:s<2048?(r[n++]=s>>6|192,r[n++]=s&63|128):(s&64512)===55296&&((o=e.charCodeAt(a+1))&64512)===56320?(s=65536+((s&1023)<<10)+(o&1023),++a,r[n++]=s>>18|240,r[n++]=s>>12&63|128,r[n++]=s>>6&63|128,r[n++]=s&63|128):(r[n++]=s>>12|224,r[n++]=s>>6&63|128,r[n++]=s&63|128);return n-i}});var Im=N((HL,Cm)=>{"use strict";Cm.exports=U2;function U2(t,e,r){var n=r||8192,i=n>>>1,s=null,o=n;return function(c){if(c<1||c>i)return t(c);o+c>n&&(s=t(n),o=0);var u=e.call(s,o,o+=c);return o&7&&(o=(o|7)+1),u}}});var Rm=N((zL,Tm)=>{"use strict";Tm.exports=ut;var Xs=ni();function ut(t,e){this.lo=t>>>0,this.hi=e>>>0}var ri=ut.zero=new ut(0,0);ri.toNumber=function(){return 0};ri.zzEncode=ri.zzDecode=function(){return this};ri.length=function(){return 1};var M2=ut.zeroHash="\0\0\0\0\0\0\0\0";ut.fromNumber=function(e){if(e===0)return ri;var r=e<0;r&&(e=-e);var n=e>>>0,i=(e-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new ut(n,i)};ut.from=function(e){if(typeof e=="number")return ut.fromNumber(e);if(Xs.isString(e))if(Xs.Long)e=Xs.Long.fromString(e);else return ut.fromNumber(parseInt(e,10));return e.low||e.high?new ut(e.low>>>0,e.high>>>0):ri};ut.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var r=~this.lo+1>>>0,n=~this.hi>>>0;return r||(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296};ut.prototype.toLong=function(e){return Xs.Long?new Xs.Long(this.lo|0,this.hi|0,Boolean(e)):{low:this.lo|0,high:this.hi|0,unsigned:Boolean(e)}};var En=String.prototype.charCodeAt;ut.fromHash=function(e){return e===M2?ri:new ut((En.call(e,0)|En.call(e,1)<<8|En.call(e,2)<<16|En.call(e,3)<<24)>>>0,(En.call(e,4)|En.call(e,5)<<8|En.call(e,6)<<16|En.call(e,7)<<24)>>>0)};ut.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};ut.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this};ut.prototype.zzDecode=function(){var e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this};ut.prototype.length=function(){var e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}});var ni=N($l=>{"use strict";var H=$l;H.asPromise=um();H.base64=dm();H.EventEmitter=mm();H.float=bm();H.inquire=Sm();H.utf8=Am();H.pool=Im();H.LongBits=Rm();H.isNode=Boolean(typeof globalThis<"u"&&globalThis&&globalThis.process&&globalThis.process.versions&&globalThis.process.versions.node);H.global=H.isNode&&globalThis||typeof window<"u"&&window||typeof self<"u"&&self||$l;H.emptyArray=Object.freeze?Object.freeze([]):[];H.emptyObject=Object.freeze?Object.freeze({}):{};H.isInteger=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};H.isString=function(e){return typeof e=="string"||e instanceof String};H.isObject=function(e){return e&&typeof e=="object"};H.isset=H.isSet=function(e,r){var n=e[r];return n!=null&&e.hasOwnProperty(r)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};H.Buffer=function(){try{var t=H.inquire("buffer").Buffer;return t.prototype.utf8Write?t:null}catch{return null}}();H._Buffer_from=null;H._Buffer_allocUnsafe=null;H.newBuffer=function(e){return typeof e=="number"?H.Buffer?H._Buffer_allocUnsafe(e):new H.Array(e):H.Buffer?H._Buffer_from(e):typeof Uint8Array>"u"?e:new Uint8Array(e)};H.Array=typeof Uint8Array<"u"?Uint8Array:Array;H.Long=H.global.dcodeIO&&H.global.dcodeIO.Long||H.global.Long||H.inquire("long");H.key2Re=/^true|false|0|1$/;H.key32Re=/^-?(?:0|[1-9][0-9]*)$/;H.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;H.longToHash=function(e){return e?H.LongBits.from(e).toHash():H.LongBits.zeroHash};H.longFromHash=function(e,r){var n=H.LongBits.fromHash(e);return H.Long?H.Long.fromBits(n.lo,n.hi,r):n.toNumber(Boolean(r))};function Nm(t,e,r){for(var n=Object.keys(e),i=0;i<n.length;++i)(t[n[i]]===void 0||!r)&&(t[n[i]]=e[n[i]]);return t}H.merge=Nm;H.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)};function Dm(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&&Nm(this,n)}return e.prototype=Object.create(Error.prototype,{constructor:{value:e,writable:!0,enumerable:!1,configurable:!0},name:{get(){return t},set:void 0,enumerable:!1,configurable:!0},toString:{value(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),e}H.newError=Dm;H.ProtocolError=Dm("ProtocolError");H.oneOfGetter=function(e){for(var r={},n=0;n<e.length;++n)r[e[n]]=1;return function(){for(var i=Object.keys(this),s=i.length-1;s>-1;--s)if(r[i[s]]===1&&this[i[s]]!==void 0&&this[i[s]]!==null)return i[s]}};H.oneOfSetter=function(e){return function(r){for(var n=0;n<e.length;++n)e[n]!==r&&delete this[e[n]]}};H.toJSONOptions={longs:String,enums:String,bytes:String,json:!0};H._configure=function(){var t=H.Buffer;if(!t){H._Buffer_from=H._Buffer_allocUnsafe=null;return}H._Buffer_from=t.from!==Uint8Array.from&&t.from||function(r,n){return new t(r,n)},H._Buffer_allocUnsafe=t.allocUnsafe||function(r){return new t(r)}}});var Wl=N((GL,km)=>{"use strict";km.exports=je;var vr=ni(),Yl,Bm=vr.LongBits,F2=vr.utf8;function nr(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function je(t){this.buf=t,this.pos=0,this.len=t.length}var Lm=typeof Uint8Array<"u"?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new je(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new je(e);throw Error("illegal buffer")},Om=function(){return vr.Buffer?function(r){return(je.create=function(i){return vr.Buffer.isBuffer(i)?new Yl(i):Lm(i)})(r)}:Lm};je.create=Om();je.prototype._slice=vr.Array.prototype.subarray||vr.Array.prototype.slice;je.prototype.uint32=function(){var e=4294967295;return function(){if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,nr(this,10);return e}}();je.prototype.int32=function(){return this.uint32()|0};je.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(e&1)|0};function Gl(){var t=new Bm(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 nr(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 nr(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}je.prototype.bool=function(){return this.uint32()!==0};function Ka(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}je.prototype.fixed32=function(){if(this.pos+4>this.len)throw nr(this,4);return Ka(this.buf,this.pos+=4)};je.prototype.sfixed32=function(){if(this.pos+4>this.len)throw nr(this,4);return Ka(this.buf,this.pos+=4)|0};function Pm(){if(this.pos+8>this.len)throw nr(this,8);return new Bm(Ka(this.buf,this.pos+=4),Ka(this.buf,this.pos+=4))}je.prototype.float=function(){if(this.pos+4>this.len)throw nr(this,4);var e=vr.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e};je.prototype.double=function(){if(this.pos+8>this.len)throw nr(this,4);var e=vr.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e};je.prototype.bytes=function(){var e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw nr(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(r,n):r===n?new this.buf.constructor(0):this._slice.call(this.buf,r,n)};je.prototype.string=function(){var e=this.bytes();return F2.read(e,0,e.length)};je.prototype.skip=function(e){if(typeof e=="number"){if(this.pos+e>this.len)throw nr(this,e);this.pos+=e}else do if(this.pos>=this.len)throw nr(this);while(this.buf[this.pos++]&128);return this};je.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+t+" at offset "+this.pos)}return this};je._configure=function(t){Yl=t,je.create=Om(),Yl._configure();var e=vr.Long?"toLong":"toNumber";vr.merge(je.prototype,{int64:function(){return Gl.call(this)[e](!1)},uint64:function(){return Gl.call(this)[e](!0)},sint64:function(){return Gl.call(this).zzDecode()[e](!1)},fixed64:function(){return Pm.call(this)[e](!0)},sfixed64:function(){return Pm.call(this)[e](!1)}})}});var Km=N((YL,Fm)=>{"use strict";Fm.exports=ii;var Mm=Wl();(ii.prototype=Object.create(Mm.prototype)).constructor=ii;var Um=ni();function ii(t){Mm.call(this,t)}ii._configure=function(){Um.Buffer&&(ii.prototype._slice=Um.Buffer.prototype.slice)};ii.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))};ii._configure()});var tf=N((WL,zm)=>{"use strict";zm.exports=pe;var qt=ni(),Ql,Va=qt.LongBits,Vm=qt.base64,qm=qt.utf8;function js(t,e,r){this.fn=t,this.len=e,this.next=void 0,this.val=r}function jl(){}function K2(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}function pe(){this.len=0,this.head=new js(jl,0,0),this.tail=this.head,this.states=null}var Hm=function(){return qt.Buffer?function(){return(pe.create=function(){return new Ql})()}:function(){return new pe}};pe.create=Hm();pe.alloc=function(e){return new qt.Array(e)};qt.Array!==Array&&(pe.alloc=qt.pool(pe.alloc,qt.Array.prototype.subarray));pe.prototype._push=function(e,r,n){return this.tail=this.tail.next=new js(e,r,n),this.len+=r,this};function Zl(t,e,r){e[r]=t&255}function V2(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}function Jl(t,e){this.len=t,this.next=void 0,this.val=e}Jl.prototype=Object.create(js.prototype);Jl.prototype.fn=V2;pe.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new Jl((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this};pe.prototype.int32=function(e){return e<0?this._push(ef,10,Va.fromNumber(e)):this.uint32(e)};pe.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function ef(t,e,r){for(;t.hi;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}pe.prototype.uint64=function(e){var r=Va.from(e);return this._push(ef,r.length(),r)};pe.prototype.int64=pe.prototype.uint64;pe.prototype.sint64=function(e){var r=Va.from(e).zzEncode();return this._push(ef,r.length(),r)};pe.prototype.bool=function(e){return this._push(Zl,1,e?1:0)};function Xl(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}pe.prototype.fixed32=function(e){return this._push(Xl,4,e>>>0)};pe.prototype.sfixed32=pe.prototype.fixed32;pe.prototype.fixed64=function(e){var r=Va.from(e);return this._push(Xl,4,r.lo)._push(Xl,4,r.hi)};pe.prototype.sfixed64=pe.prototype.fixed64;pe.prototype.float=function(e){return this._push(qt.float.writeFloatLE,4,e)};pe.prototype.double=function(e){return this._push(qt.float.writeDoubleLE,8,e)};var q2=qt.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]};pe.prototype.bytes=function(e){var r=e.length>>>0;if(!r)return this._push(Zl,1,0);if(qt.isString(e)){var n=pe.alloc(r=Vm.length(e));Vm.decode(e,n,0),e=n}return this.uint32(r)._push(q2,r,e)};pe.prototype.string=function(e){var r=qm.length(e);return r?this.uint32(r)._push(qm.write,r,e):this._push(Zl,1,0)};pe.prototype.fork=function(){return this.states=new K2(this),this.head=this.tail=new js(jl,0,0),this.len=0,this};pe.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new js(jl,0,0),this.len=0),this};pe.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};pe.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};pe._configure=function(t){Ql=t,pe.create=Hm(),Ql._configure()}});var Ym=N((QL,Gm)=>{"use strict";Gm.exports=wr;var $m=tf();(wr.prototype=Object.create($m.prototype)).constructor=wr;var vn=ni();function wr(){$m.call(this)}wr._configure=function(){wr.alloc=vn._Buffer_allocUnsafe,wr.writeBytesBuffer=vn.Buffer&&vn.Buffer.prototype instanceof Uint8Array&&vn.Buffer.prototype.set.name==="set"?function(e,r,n){r.set(e,n)}:function(e,r,n){if(e.copy)e.copy(r,n,0,e.length);else for(var i=0;i<e.length;)r[n++]=e[i++]}};wr.prototype.bytes=function(e){vn.isString(e)&&(e=vn._Buffer_from(e,"base64"));var r=e.length>>>0;return this.uint32(r),r&&this._push(wr.writeBytesBuffer,r,e),this};function H2(t,e,r){t.length<40?vn.utf8.write(t,e,r):e.utf8Write?e.utf8Write(t,r):e.write(t,r)}wr.prototype.string=function(e){var r=vn.Buffer.byteLength(e);return this.uint32(r),r&&this._push(H2,r,e),this};wr._configure()});var my=N(ro=>{(function(){var t,e,r,n,i,s,o,a;a=function(c){var u,l,f,d;return u=(c&255<<24)>>>24,l=(c&255<<16)>>>16,f=(c&255<<8)>>>8,d=c&255,[u,l,f,d].join(".")},o=function(c){var u,l,f,d,h,p;for(u=[],f=d=0;d<=3&&c.length!==0;f=++d){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}p=e(c),h=p[0],l=p[1],c=c.substring(l),u.push(h)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),s=r("a"),i=r("A"),e=function(c){var u,l,f,d,h;for(d=0,u=10,l="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,u=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,u=8,l="7")),h=f;f<c.length;){if("0"<=c[f]&&c[f]<=l)d=d*u+(r(c[f])-n)>>>0;else if(u===16)if("a"<=c[f]&&c[f]<="f")d=d*u+(10+r(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")d=d*u+(10+r(c[f])-i)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");f++}if(f===h)throw new Error("empty octet");return[d,f]},t=function(){function c(u,l){var f,d,h,p;if(typeof u!="string")throw new Error("Missing `net' parameter");if(l||(p=u.split("/",2),u=p[0],l=p[1]),l||(l=32),typeof l=="string"&&l.indexOf(".")>-1){try{this.maskLong=o(l)}catch(y){throw f=y,new Error("Invalid mask: "+l)}for(d=h=32;h>=0;d=--h)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;break}}else if(l||l===0)this.bitmask=parseInt(l,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(o(u)&this.maskLong)>>>0}catch(y){throw f=y,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+l);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(o(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var l,f,d;for(d=o(this.first),f=o(this.last),l=0;d<=f;)u(a(d),d,l),l++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),ro.ip2long=o,ro.long2ip=a,ro.Netmask=t}).call(ro)});var vy=N((Ey,Za)=>{(function(t){"use strict";let e="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${e}\\.${e}\\.${e}\\.${e}$`,"i"),threeOctet:new RegExp(`^${e}\\.${e}\\.${e}$`,"i"),twoOctet:new RegExp(`^${e}\\.${e}$`,"i"),longValue:new RegExp(`^${e}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${e}\\.${e}\\.${e}\\.${e}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${e}\\.${e}\\.${e}\\.${e}(${s})?$`,"i")};function c(h,p){if(h.indexOf("::")!==h.lastIndexOf("::"))return null;let y=0,g=-1,E=(h.match(a.zoneIndex)||[])[0],x,_;for(E&&(E=E.substring(1),h=h.replace(/%.+$/,""));(g=h.indexOf(":",g+1))>=0;)y++;if(h.substr(0,2)==="::"&&y--,h.substr(-2,2)==="::"&&y--,y>p)return null;for(_=p-y,x=":";_--;)x+="0:";return h=h.replace("::",x),h[0]===":"&&(h=h.slice(1)),h[h.length-1]===":"&&(h=h.slice(0,-1)),p=function(){let B=h.split(":"),D=[];for(let L=0;L<B.length;L++)D.push(parseInt(B[L],16));return D}(),{parts:p,zoneId:E}}function u(h,p,y,g){if(h.length!==p.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let E=0,x;for(;g>0;){if(x=y-g,x<0&&(x=0),h[E]>>x!==p[E]>>x)return!1;g-=y,E+=1}return!0}function l(h){if(i.test(h))return parseInt(h,16);if(h[0]==="0"&&!isNaN(parseInt(h[1],10))){if(n.test(h))return parseInt(h,8);throw new Error(`ipaddr: cannot parse ${h} as octal`)}return parseInt(h,10)}function f(h,p){for(;h.length<p;)h=`0${h}`;return h}let d={};d.IPv4=function(){function h(p){if(p.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let y,g;for(y=0;y<p.length;y++)if(g=p[y],!(0<=g&&g<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=p}return h.prototype.SpecialRanges={unspecified:[[new h([0,0,0,0]),8]],broadcast:[[new h([255,255,255,255]),32]],multicast:[[new h([224,0,0,0]),4]],linkLocal:[[new h([169,254,0,0]),16]],loopback:[[new h([127,0,0,0]),8]],carrierGradeNat:[[new h([100,64,0,0]),10]],private:[[new h([10,0,0,0]),8],[new h([172,16,0,0]),12],[new h([192,168,0,0]),16]],reserved:[[new h([192,0,0,0]),24],[new h([192,0,2,0]),24],[new h([192,88,99,0]),24],[new h([198,51,100,0]),24],[new h([203,0,113,0]),24],[new h([240,0,0,0]),4]]},h.prototype.kind=function(){return"ipv4"},h.prototype.match=function(p,y){let g;if(y===void 0&&(g=p,p=g[0],y=g[1]),p.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,p.octets,8,y)},h.prototype.prefixLengthFromSubnetMask=function(){let p=0,y=!1,g={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},E,x,_;for(E=3;E>=0;E-=1)if(x=this.octets[E],x in g){if(_=g[x],y&&_!==0)return null;_!==8&&(y=!0),p+=_}else return null;return 32-p},h.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},h.prototype.toByteArray=function(){return this.octets.slice(0)},h.prototype.toIPv4MappedAddress=function(){return d.IPv6.parse(`::ffff:${this.toString()}`)},h.prototype.toNormalizedString=function(){return this.toString()},h.prototype.toString=function(){return this.octets.join(".")},h}(),d.IPv4.broadcastAddressFromCIDR=function(h){try{let p=this.parseCIDR(h),y=p[0].toByteArray(),g=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),E=[],x=0;for(;x<4;)E.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(E)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.isIPv4=function(h){return this.parser(h)!==null},d.IPv4.isValid=function(h){try{return new this(this.parser(h)),!0}catch{return!1}},d.IPv4.isValidFourPartDecimal=function(h){return!!(d.IPv4.isValid(h)&&h.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},d.IPv4.networkAddressFromCIDR=function(h){let p,y,g,E,x;try{for(p=this.parseCIDR(h),g=p[0].toByteArray(),x=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),E=[],y=0;y<4;)E.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(E)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.parse=function(h){let p=this.parser(h);if(p===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(p)},d.IPv4.parseCIDR=function(h){let p;if(p=h.match(/^(.+)\/(\d+)$/)){let y=parseInt(p[2]);if(y>=0&&y<=32){let g=[this.parse(p[1]),y];return Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},d.IPv4.parser=function(h){let p,y,g;if(p=h.match(r.fourOctet))return function(){let E=p.slice(1,6),x=[];for(let _=0;_<E.length;_++)y=E[_],x.push(l(y));return x}();if(p=h.match(r.longValue)){if(g=l(p[1]),g>4294967295||g<0)throw new Error("ipaddr: address outside defined range");return function(){let E=[],x;for(x=0;x<=24;x+=8)E.push(g>>x&255);return E}().reverse()}else return(p=h.match(r.twoOctet))?function(){let E=p.slice(1,4),x=[];if(g=l(E[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return x.push(l(E[0])),x.push(g>>16&255),x.push(g>>8&255),x.push(g&255),x}():(p=h.match(r.threeOctet))?function(){let E=p.slice(1,5),x=[];if(g=l(E[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return x.push(l(E[0])),x.push(l(E[1])),x.push(g>>8&255),x.push(g&255),x}():null},d.IPv4.subnetMaskFromPrefixLength=function(h){if(h=parseInt(h),h<0||h>32)throw new Error("ipaddr: invalid IPv4 prefix length");let p=[0,0,0,0],y=0,g=Math.floor(h/8);for(;y<g;)p[y]=255,y++;return g<4&&(p[g]=Math.pow(2,h%8)-1<<8-h%8),new this(p)},d.IPv6=function(){function h(p,y){let g,E;if(p.length===16)for(this.parts=[],g=0;g<=14;g+=2)this.parts.push(p[g]<<8|p[g+1]);else if(p.length===8)this.parts=p;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(g=0;g<this.parts.length;g++)if(E=this.parts[g],!(0<=E&&E<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");y&&(this.zoneId=y)}return h.prototype.SpecialRanges={unspecified:[new h([0,0,0,0,0,0,0,0]),128],linkLocal:[new h([65152,0,0,0,0,0,0,0]),10],multicast:[new h([65280,0,0,0,0,0,0,0]),8],loopback:[new h([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new h([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new h([0,0,0,0,0,65535,0,0]),96],rfc6145:[new h([0,0,0,0,65535,0,0,0]),96],rfc6052:[new h([100,65435,0,0,0,0,0,0]),96],"6to4":[new h([8194,0,0,0,0,0,0,0]),16],teredo:[new h([8193,0,0,0,0,0,0,0]),32],reserved:[[new h([8193,3512,0,0,0,0,0,0]),32]]},h.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},h.prototype.kind=function(){return"ipv6"},h.prototype.match=function(p,y){let g;if(y===void 0&&(g=p,p=g[0],y=g[1]),p.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,p.parts,16,y)},h.prototype.prefixLengthFromSubnetMask=function(){let p=0,y=!1,g={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},E,x;for(let _=7;_>=0;_-=1)if(E=this.parts[_],E in g){if(x=g[E],y&&x!==0)return null;x!==16&&(y=!0),p+=x}else return null;return 128-p},h.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},h.prototype.toByteArray=function(){let p,y=[],g=this.parts;for(let E=0;E<g.length;E++)p=g[E],y.push(p>>8),y.push(p&255);return y},h.prototype.toFixedLengthString=function(){let p=function(){let g=[];for(let E=0;E<this.parts.length;E++)g.push(f(this.parts[E].toString(16),4));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),p+y},h.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let p=this.parts.slice(-2),y=p[0],g=p[1];return new d.IPv4([y>>8,y&255,g>>8,g&255])},h.prototype.toNormalizedString=function(){let p=function(){let g=[];for(let E=0;E<this.parts.length;E++)g.push(this.parts[E].toString(16));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),p+y},h.prototype.toRFC5952String=function(){let p=/((^|:)(0(:|$)){2,})/g,y=this.toNormalizedString(),g=0,E=-1,x;for(;x=p.exec(y);)x[0].length>E&&(g=x.index,E=x[0].length);return E<0?y:`${y.substring(0,g)}::${y.substring(g+E)}`},h.prototype.toString=function(){return this.toNormalizedString().replace(/((^|:)(0(:|$))+)/,"::")},h}(),d.IPv6.broadcastAddressFromCIDR=function(h){try{let p=this.parseCIDR(h),y=p[0].toByteArray(),g=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),E=[],x=0;for(;x<16;)E.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(E)}catch(p){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${p})`)}},d.IPv6.isIPv6=function(h){return this.parser(h)!==null},d.IPv6.isValid=function(h){if(typeof h=="string"&&h.indexOf(":")===-1)return!1;try{let p=this.parser(h);return new this(p.parts,p.zoneId),!0}catch{return!1}},d.IPv6.networkAddressFromCIDR=function(h){let p,y,g,E,x;try{for(p=this.parseCIDR(h),g=p[0].toByteArray(),x=this.subnetMaskFromPrefixLength(p[1]).toByteArray(),E=[],y=0;y<16;)E.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(E)}catch(_){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${_})`)}},d.IPv6.parse=function(h){let p=this.parser(h);if(p.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(p.parts,p.zoneId)},d.IPv6.parseCIDR=function(h){let p,y,g;if((y=h.match(/^(.+)\/(\d+)$/))&&(p=parseInt(y[2]),p>=0&&p<=128))return g=[this.parse(y[1]),p],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},d.IPv6.parser=function(h){let p,y,g,E,x,_;if(g=h.match(a.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(a.native.test(h))return c(h,8);if((g=h.match(a.transitional))&&(_=g[6]||"",p=c(g[1].slice(0,-1)+_,6),p.parts)){for(x=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],y=0;y<x.length;y++)if(E=x[y],!(0<=E&&E<=255))return null;return p.parts.push(x[0]<<8|x[1]),p.parts.push(x[2]<<8|x[3]),{parts:p.parts,zoneId:p.zoneId}}return null},d.IPv6.subnetMaskFromPrefixLength=function(h){if(h=parseInt(h),h<0||h>128)throw new Error("ipaddr: invalid IPv6 prefix length");let p=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],y=0,g=Math.floor(h/8);for(;y<g;)p[y]=255,y++;return g<16&&(p[g]=Math.pow(2,h%8)-1<<8-h%8),new this(p)},d.fromByteArray=function(h){let p=h.length;if(p===4)return new d.IPv4(h);if(p===16)return new d.IPv6(h);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},d.isValid=function(h){return d.IPv6.isValid(h)||d.IPv4.isValid(h)},d.parse=function(h){if(d.IPv6.isValid(h))return d.IPv6.parse(h);if(d.IPv4.isValid(h))return d.IPv4.parse(h);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},d.parseCIDR=function(h){try{return d.IPv6.parseCIDR(h)}catch{try{return d.IPv4.parseCIDR(h)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},d.process=function(h){let p=this.parse(h);return p.kind()==="ipv6"&&p.isIPv4MappedAddress()?p.toIPv4Address():p},d.subnetMatch=function(h,p,y){let g,E,x,_;y==null&&(y="unicast");for(E in p)if(Object.prototype.hasOwnProperty.call(p,E)){for(x=p[E],x[0]&&!(x[0]instanceof Array)&&(x=[x]),g=0;g<x.length;g++)if(_=x[g],h.kind()===_[0].kind()&&h.match.apply(h,_))return E}return y},typeof Za<"u"&&Za.exports?Za.exports=d:t.ipaddr=d})(Ey)});var Cy=N((y4,Ay)=>{"use strict";function gS(t){return t>=55296&&t<=56319}function ES(t){return t>=56320&&t<=57343}Ay.exports=function(e,r,n){if(typeof r!="string")throw new Error("Input must be string");for(var i=r.length,s=0,o,a,c=0;c<i;c+=1){if(o=r.charCodeAt(c),a=r[c],gS(o)&&ES(r.charCodeAt(c+1))&&(c+=1,a+=r[c]),s+=e(a),s===n)return r.slice(0,c+1);if(s>n)return r.slice(0,c-a.length+1)}return r}});var Ty=N((g4,Iy)=>{"use strict";function vS(t){return t>=55296&&t<=56319}function wS(t){return t>=56320&&t<=57343}Iy.exports=function(e){if(typeof e!="string")throw new Error("Input must be string");for(var r=e.length,n=0,i=null,s=null,o=0;o<r;o++)i=e.charCodeAt(o),wS(i)?s!=null&&vS(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 Ny=N((E4,Ry)=>{"use strict";var xS=Cy(),bS=Ty();Ry.exports=xS.bind(null,bS)});var Py=N((v4,Ly)=>{"use strict";var SS=Ny(),_S=/[\/\?<>\\:\*\|"]/g,AS=/[\x00-\x1f\x80-\x9f]/g,CS=/^\.+$/,IS=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,TS=/[\. ]+$/;function Dy(t,e){if(typeof t!="string")throw new Error("Input must be string");var r=t.replace(_S,e).replace(AS,e).replace(CS,e).replace(IS,e).replace(TS,e);return SS(r,255)}Ly.exports=function(t,e){var r=e&&e.replacement||"",n=Dy(t,r);return r===""?n:Dy(n,"")}});var ie=N((w4,By)=>{By.exports={options:{usePureJavaScript:!1}}});var Uy=N((x4,ky)=>{var yf={};ky.exports=yf;var Oy={};yf.encode=function(t,e,r){if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(t instanceof Uint8Array))n=RS(t,e);else{var i=0,s=e.length,o=e.charAt(0),a=[0];for(i=0;i<t.length;++i){for(var c=0,u=t[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%s,u=u/s|0;for(;u>0;)a.push(u%s),u=u/s|0}for(i=0;t[i]===0&&i<t.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=e[a[i]]}if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join(`\r
25
- `)}return n};yf.decode=function(t,e){if(typeof t!="string")throw new TypeError('"input" must be a string.');if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');var r=Oy[e];if(!r){r=Oy[e]=[];for(var n=0;n<e.length;++n)r[e.charCodeAt(n)]=n}t=t.replace(/\s/g,"");for(var i=e.length,s=e.charAt(0),o=[0],n=0;n<t.length;n++){var a=r[t.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<o.length;++c)u+=o[c]*i,o[c]=u&255,u>>=8;for(;u>0;)o.push(u&255),u>>=8}for(var l=0;t[l]===s&&l<t.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function RS(t,e){var r=0,n=e.length,i=e.charAt(0),s=[0];for(r=0;r<t.length();++r){for(var o=0,a=t.at(r);o<s.length;++o)a+=s[o]<<8,s[o]=a%n,a=a/n|0;for(;a>0;)s.push(a%n),a=a/n|0}var c="";for(r=0;t.at(r)===0&&r<t.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=e[s[r]];return c}});var De=N((b4,Vy)=>{var My=ie(),Fy=Uy(),w=Vy.exports=My.util=My.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){w.nextTick=process.nextTick,typeof setImmediate=="function"?w.setImmediate=setImmediate:w.setImmediate=w.nextTick;return}if(typeof setImmediate=="function"){w.setImmediate=function(){return setImmediate.apply(void 0,arguments)},w.nextTick=function(a){return setImmediate(a)};return}if(w.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===t){c.stopPropagation();var u=e.slice();e.length=0,u.forEach(function(l){l()})}};var o=a,t="forge.setImmediate",e=[];w.setImmediate=function(c){e.push(c),e.length===1&&window.postMessage(t,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),e=[];new MutationObserver(function(){var c=e.slice();e.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=w.setImmediate;w.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(e.push(c),e.length===1&&i.setAttribute("a",n=!n))}}w.nextTick=w.setImmediate})();w.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;w.globalScope=function(){return w.isNodejs?globalThis:typeof self>"u"?window:self}();w.isArray=Array.isArray||function(t){return Object.prototype.toString.call(t)==="[object Array]"};w.isArrayBuffer=function(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer};w.isArrayBufferView=function(t){return t&&w.isArrayBuffer(t.buffer)&&t.byteLength!==void 0};function io(t){if(!(t===8||t===16||t===24||t===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+t)}w.ByteBuffer=gf;function gf(t){if(this.data="",this.read=0,typeof t=="string")this.data=t;else if(w.isArrayBuffer(t)||w.isArrayBufferView(t))if(typeof Buffer<"u"&&t instanceof Buffer)this.data=t.toString("binary");else{var e=new Uint8Array(t);try{this.data=String.fromCharCode.apply(null,e)}catch{for(var r=0;r<e.length;++r)this.putByte(e[r])}}else(t instanceof gf||typeof t=="object"&&typeof t.data=="string"&&typeof t.read=="number")&&(this.data=t.data,this.read=t.read);this._constructedStringLength=0}w.ByteStringBuffer=gf;var NS=4096;w.ByteStringBuffer.prototype._optimizeConstructedString=function(t){this._constructedStringLength+=t,this._constructedStringLength>NS&&(this.data.substr(0,1),this._constructedStringLength=0)};w.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};w.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};w.ByteStringBuffer.prototype.putByte=function(t){return this.putBytes(String.fromCharCode(t))};w.ByteStringBuffer.prototype.fillWithByte=function(t,e){t=String.fromCharCode(t);for(var r=this.data;e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return this.data=r,this._optimizeConstructedString(e),this};w.ByteStringBuffer.prototype.putBytes=function(t){return this.data+=t,this._optimizeConstructedString(t.length),this};w.ByteStringBuffer.prototype.putString=function(t){return this.putBytes(w.encodeUtf8(t))};w.ByteStringBuffer.prototype.putInt16=function(t){return this.putBytes(String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt24=function(t){return this.putBytes(String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt32=function(t){return this.putBytes(String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt16Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255))};w.ByteStringBuffer.prototype.putInt24Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255))};w.ByteStringBuffer.prototype.putInt32Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>24&255))};w.ByteStringBuffer.prototype.putInt=function(t,e){io(e);var r="";do e-=8,r+=String.fromCharCode(t>>e&255);while(e>0);return this.putBytes(r)};w.ByteStringBuffer.prototype.putSignedInt=function(t,e){return t<0&&(t+=2<<e-1),this.putInt(t,e)};w.ByteStringBuffer.prototype.putBuffer=function(t){return this.putBytes(t.getBytes())};w.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};w.ByteStringBuffer.prototype.getInt16=function(){var t=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24=function(){var t=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32=function(){var t=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,t};w.ByteStringBuffer.prototype.getInt16Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,t};w.ByteStringBuffer.prototype.getInt=function(t){io(t);var e=0;do e=(e<<8)+this.data.charCodeAt(this.read++),t-=8;while(t>0);return e};w.ByteStringBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.ByteStringBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.ByteStringBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.ByteStringBuffer.prototype.at=function(t){return this.data.charCodeAt(this.read+t)};w.ByteStringBuffer.prototype.setAt=function(t,e){return this.data=this.data.substr(0,this.read+t)+String.fromCharCode(e)+this.data.substr(this.read+t+1),this};w.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};w.ByteStringBuffer.prototype.copy=function(){var t=w.createBuffer(this.data);return t.read=this.read,t};w.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};w.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};w.ByteStringBuffer.prototype.truncate=function(t){var e=Math.max(0,this.length()-t);return this.data=this.data.substr(this.read,e),this.read=0,this};w.ByteStringBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.length;++e){var r=this.data.charCodeAt(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.ByteStringBuffer.prototype.toString=function(){return w.decodeUtf8(this.bytes())};function DS(t,e){e=e||{},this.read=e.readOffset||0,this.growSize=e.growSize||1024;var r=w.isArrayBuffer(t),n=w.isArrayBufferView(t);if(r||n){r?this.data=new DataView(t):this.data=new DataView(t.buffer,t.byteOffset,t.byteLength),this.write="writeOffset"in e?e.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,t!=null&&this.putBytes(t),"writeOffset"in e&&(this.write=e.writeOffset)}w.DataBuffer=DS;w.DataBuffer.prototype.length=function(){return this.write-this.read};w.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};w.DataBuffer.prototype.accommodate=function(t,e){if(this.length()>=t)return this;e=Math.max(e||this.growSize,t);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+e);return n.set(r),this.data=new DataView(n.buffer),this};w.DataBuffer.prototype.putByte=function(t){return this.accommodate(1),this.data.setUint8(this.write++,t),this};w.DataBuffer.prototype.fillWithByte=function(t,e){this.accommodate(e);for(var r=0;r<e;++r)this.data.setUint8(t);return this};w.DataBuffer.prototype.putBytes=function(t,e){if(w.isArrayBufferView(t)){var r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(w.isArrayBuffer(t)){var r=new Uint8Array(t);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(t instanceof w.DataBuffer||typeof t=="object"&&typeof t.read=="number"&&typeof t.write=="number"&&w.isArrayBufferView(t.data)){var r=new Uint8Array(t.data.byteLength,t.read,t.length());this.accommodate(r.byteLength);var i=new Uint8Array(t.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(t instanceof w.ByteStringBuffer&&(t=t.data,e="binary"),e=e||"binary",typeof t=="string"){var s;if(e==="hex")return this.accommodate(Math.ceil(t.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.hex.decode(t,s,this.write),this;if(e==="base64")return this.accommodate(Math.ceil(t.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.base64.decode(t,s,this.write),this;if(e==="utf8"&&(t=w.encodeUtf8(t),e="binary"),e==="binary"||e==="raw")return this.accommodate(t.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.raw.decode(s),this;if(e==="utf16")return this.accommodate(t.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=w.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+e)}throw Error("Invalid parameter: "+t)};w.DataBuffer.prototype.putBuffer=function(t){return this.putBytes(t),t.clear(),this};w.DataBuffer.prototype.putString=function(t){return this.putBytes(t,"utf16")};w.DataBuffer.prototype.putInt16=function(t){return this.accommodate(2),this.data.setInt16(this.write,t),this.write+=2,this};w.DataBuffer.prototype.putInt24=function(t){return this.accommodate(3),this.data.setInt16(this.write,t>>8&65535),this.data.setInt8(this.write,t>>16&255),this.write+=3,this};w.DataBuffer.prototype.putInt32=function(t){return this.accommodate(4),this.data.setInt32(this.write,t),this.write+=4,this};w.DataBuffer.prototype.putInt16Le=function(t){return this.accommodate(2),this.data.setInt16(this.write,t,!0),this.write+=2,this};w.DataBuffer.prototype.putInt24Le=function(t){return this.accommodate(3),this.data.setInt8(this.write,t>>16&255),this.data.setInt16(this.write,t>>8&65535,!0),this.write+=3,this};w.DataBuffer.prototype.putInt32Le=function(t){return this.accommodate(4),this.data.setInt32(this.write,t,!0),this.write+=4,this};w.DataBuffer.prototype.putInt=function(t,e){io(e),this.accommodate(e/8);do e-=8,this.data.setInt8(this.write++,t>>e&255);while(e>0);return this};w.DataBuffer.prototype.putSignedInt=function(t,e){return io(e),this.accommodate(e/8),t<0&&(t+=2<<e-1),this.putInt(t,e)};w.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};w.DataBuffer.prototype.getInt16=function(){var t=this.data.getInt16(this.read);return this.read+=2,t};w.DataBuffer.prototype.getInt24=function(){var t=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,t};w.DataBuffer.prototype.getInt32=function(){var t=this.data.getInt32(this.read);return this.read+=4,t};w.DataBuffer.prototype.getInt16Le=function(){var t=this.data.getInt16(this.read,!0);return this.read+=2,t};w.DataBuffer.prototype.getInt24Le=function(){var t=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,t};w.DataBuffer.prototype.getInt32Le=function(){var t=this.data.getInt32(this.read,!0);return this.read+=4,t};w.DataBuffer.prototype.getInt=function(t){io(t);var e=0;do e=(e<<8)+this.data.getInt8(this.read++),t-=8;while(t>0);return e};w.DataBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.DataBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.DataBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.DataBuffer.prototype.at=function(t){return this.data.getUint8(this.read+t)};w.DataBuffer.prototype.setAt=function(t,e){return this.data.setUint8(t,e),this};w.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};w.DataBuffer.prototype.copy=function(){return new w.DataBuffer(this)};w.DataBuffer.prototype.compact=function(){if(this.read>0){var t=new Uint8Array(this.data.buffer,this.read),e=new Uint8Array(t.byteLength);e.set(t),this.data=new DataView(e),this.write-=this.read,this.read=0}return this};w.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};w.DataBuffer.prototype.truncate=function(t){return this.write=Math.max(0,this.length()-t),this.read=Math.min(this.read,this.write),this};w.DataBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.byteLength;++e){var r=this.data.getUint8(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.DataBuffer.prototype.toString=function(t){var e=new Uint8Array(this.data,this.read,this.length());if(t=t||"utf8",t==="binary"||t==="raw")return w.binary.raw.encode(e);if(t==="hex")return w.binary.hex.encode(e);if(t==="base64")return w.binary.base64.encode(e);if(t==="utf8")return w.text.utf8.decode(e);if(t==="utf16")return w.text.utf16.decode(e);throw new Error("Invalid encoding: "+t)};w.createBuffer=function(t,e){return e=e||"raw",t!==void 0&&e==="utf8"&&(t=w.encodeUtf8(t)),new w.ByteBuffer(t)};w.fillString=function(t,e){for(var r="";e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return r};w.xorBytes=function(t,e,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=t.charCodeAt(o)^e.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};w.hexToBytes=function(t){var e="",r=0;for(t.length&!0&&(r=1,e+=String.fromCharCode(parseInt(t[0],16)));r<t.length;r+=2)e+=String.fromCharCode(parseInt(t.substr(r,2),16));return e};w.bytesToHex=function(t){return w.createBuffer(t).toHex()};w.int32ToBytes=function(t){return String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255)};var Sn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_n=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],Ky="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";w.encode64=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.length;)i=t.charCodeAt(a++),s=t.charCodeAt(a++),o=t.charCodeAt(a++),r+=Sn.charAt(i>>2),r+=Sn.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Sn.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Sn.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
26
- `,r=r.substr(e));return n+=r,n};w.decode64=function(t){t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var e="",r,n,i,s,o=0;o<t.length;)r=_n[t.charCodeAt(o++)-43],n=_n[t.charCodeAt(o++)-43],i=_n[t.charCodeAt(o++)-43],s=_n[t.charCodeAt(o++)-43],e+=String.fromCharCode(r<<2|n>>4),i!==64&&(e+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(e+=String.fromCharCode((i&3)<<6|s)));return e};w.encodeUtf8=function(t){return unescape(encodeURIComponent(t))};w.decodeUtf8=function(t){return decodeURIComponent(escape(t))};w.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:Fy.encode,decode:Fy.decode}};w.binary.raw.encode=function(t){return String.fromCharCode.apply(null,t)};w.binary.raw.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};w.binary.hex.encode=w.bytesToHex;w.binary.hex.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/2))),r=r||0;var i=0,s=r;for(t.length&1&&(i=1,n[s++]=parseInt(t[0],16));i<t.length;i+=2)n[s++]=parseInt(t.substr(i,2),16);return e?s-r:n};w.binary.base64.encode=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.byteLength;)i=t[a++],s=t[a++],o=t[a++],r+=Sn.charAt(i>>2),r+=Sn.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Sn.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Sn.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
27
- `,r=r.substr(e));return n+=r,n};w.binary.base64.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/4)*3)),t=t.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<t.length;)i=_n[t.charCodeAt(c++)-43],s=_n[t.charCodeAt(c++)-43],o=_n[t.charCodeAt(c++)-43],a=_n[t.charCodeAt(c++)-43],n[u++]=i<<2|s>>4,o!==64&&(n[u++]=(s&15)<<4|o>>2,a!==64&&(n[u++]=(o&3)<<6|a));return e?u-r:n.subarray(0,u)};w.binary.base58.encode=function(t,e){return w.binary.baseN.encode(t,Ky,e)};w.binary.base58.decode=function(t,e){return w.binary.baseN.decode(t,Ky,e)};w.text={utf8:{},utf16:{}};w.text.utf8.encode=function(t,e,r){t=w.encodeUtf8(t);var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};w.text.utf8.decode=function(t){return w.decodeUtf8(String.fromCharCode.apply(null,t))};w.text.utf16.encode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<t.length;++a)i[o++]=t.charCodeAt(a),s+=2;return e?s-r:n};w.text.utf16.decode=function(t){return String.fromCharCode.apply(null,new Uint16Array(t.buffer))};w.deflate=function(t,e,r){if(e=w.decode64(t.deflate(w.encode64(e)).rval),r){var n=2,i=e.charCodeAt(1);i&32&&(n=6),e=e.substring(n,e.length-4)}return e};w.inflate=function(t,e,r){var n=t.inflate(w.encode64(e)).rval;return n===null?null:w.decode64(n)};var Ef=function(t,e,r){if(!t)throw new Error("WebStorage not available.");var n;if(r===null?n=t.removeItem(e):(r=w.encode64(JSON.stringify(r)),n=t.setItem(e,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},vf=function(t,e){if(!t)throw new Error("WebStorage not available.");var r=t.getItem(e);if(t.init)if(r.rval===null){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return r!==null&&(r=JSON.parse(w.decode64(r))),r},LS=function(t,e,r,n){var i=vf(t,e);i===null&&(i={}),i[r]=n,Ef(t,e,i)},PS=function(t,e,r){var n=vf(t,e);return n!==null&&(n=r in n?n[r]:null),n},BS=function(t,e,r){var n=vf(t,e);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),Ef(t,e,n)}},OS=function(t,e){Ef(t,e,null)},nc=function(t,e,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,s=!1,o=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(e[0]===null)throw new Error("Flash local storage not available.");n=t.apply(this,e),s=i==="flash"}(i==="web"||i==="both")&&(e[0]=localStorage,n=t.apply(this,e),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};w.setItem=function(t,e,r,n,i){nc(LS,arguments,i)};w.getItem=function(t,e,r,n){return nc(PS,arguments,n)};w.removeItem=function(t,e,r,n){nc(BS,arguments,n)};w.clearItems=function(t,e,r){nc(OS,arguments,r)};w.isEmpty=function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0};w.format=function(t){for(var e=/%./g,r,n,i=0,s=[],o=0;r=e.exec(t);){n=t.substring(o,e.lastIndex-2),n.length>0&&s.push(n),o=e.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?s.push(arguments[i+++1]):s.push("<?>");break;case"%":s.push("%");break;default:s.push("<%"+a+"?>")}}return s.push(t.substring(o)),s.join("")};w.formatNumber=function(t,e,r,n){var i=t,s=isNaN(e=Math.abs(e))?2:e,o=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(s),10)+"",l=u.length>3?u.length%3:0;return c+(l?u.substr(0,l)+a:"")+u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+a)+(s?o+Math.abs(i-u).toFixed(s).slice(2):"")};w.formatSize=function(t){return t>=1073741824?t=w.formatNumber(t/1073741824,2,".","")+" GiB":t>=1048576?t=w.formatNumber(t/1048576,2,".","")+" MiB":t>=1024?t=w.formatNumber(t/1024,0)+" KiB":t=w.formatNumber(t,0)+" bytes",t};w.bytesFromIP=function(t){return t.indexOf(".")!==-1?w.bytesFromIPv4(t):t.indexOf(":")!==-1?w.bytesFromIPv6(t):null};w.bytesFromIPv4=function(t){if(t=t.split("."),t.length!==4)return null;for(var e=w.createBuffer(),r=0;r<t.length;++r){var n=parseInt(t[r],10);if(isNaN(n))return null;e.putByte(n)}return e.getBytes()};w.bytesFromIPv6=function(t){var e=0;t=t.split(":").filter(function(o){return o.length===0&&++e,!0});for(var r=(8-t.length+e)*2,n=w.createBuffer(),i=0;i<8;++i){if(!t[i]||t[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=w.hexToBytes(t[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};w.bytesToIP=function(t){return t.length===4?w.bytesToIPv4(t):t.length===16?w.bytesToIPv6(t):null};w.bytesToIPv4=function(t){if(t.length!==4)return null;for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e.join(".")};w.bytesToIPv6=function(t){if(t.length!==16)return null;for(var e=[],r=[],n=0,i=0;i<t.length;i+=2){for(var s=w.bytesToHex(t[i]+t[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=e.length;!o||a!==o.end+1?r.push({start:a,end:a}):(o.end=a,o.end-o.start>r[n].end-r[n].start&&(n=r.length-1))}e.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(e.splice(c.start,c.end-c.start+1,""),c.start===0&&e.unshift(""),c.end===7&&e.push(""))}return e.join(":")};w.estimateCores=function(t,e){if(typeof t=="function"&&(e=t,t={}),t=t||{},"cores"in w&&!t.update)return e(null,w.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return w.cores=navigator.hardwareConcurrency,e(null,w.cores);if(typeof Worker>"u")return w.cores=1,e(null,w.cores);if(typeof Blob>"u")return w.cores=2,e(null,w.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(o){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(o,a,c){if(a===0){var u=Math.floor(o.reduce(function(l,f){return l+f},0)/o.length);return w.cores=Math.max(1,u),URL.revokeObjectURL(r),e(null,w.cores)}i(c,function(l,f){o.push(s(c,f)),n(o,a-1,c)})}function i(o,a){for(var c=[],u=[],l=0;l<o;++l){var f=new Worker(r);f.addEventListener("message",function(d){if(u.push(d.data),u.length===o){for(var h=0;h<o;++h)c[h].terminate();a(null,u)}}),c.push(f)}for(var l=0;l<o;++l)c[l].postMessage(l)}function s(o,a){for(var c=[],u=0;u<o;++u)for(var l=a[u],f=c[u]=[],d=0;d<o;++d)if(u!==d){var h=a[d];(l.st>h.st&&l.st<h.et||h.st>l.st&&h.st<l.et)&&f.push(d)}return c.reduce(function(p,y){return Math.max(p,y.length)},0)}}});var xf=N((S4,qy)=>{var lt=ie();De();qy.exports=lt.cipher=lt.cipher||{};lt.cipher.algorithms=lt.cipher.algorithms||{};lt.cipher.createCipher=function(t,e){var r=t;if(typeof r=="string"&&(r=lt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new lt.cipher.BlockCipher({algorithm:r,key:e,decrypt:!1})};lt.cipher.createDecipher=function(t,e){var r=t;if(typeof r=="string"&&(r=lt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new lt.cipher.BlockCipher({algorithm:r,key:e,decrypt:!0})};lt.cipher.registerAlgorithm=function(t,e){t=t.toUpperCase(),lt.cipher.algorithms[t]=e};lt.cipher.getAlgorithm=function(t){return t=t.toUpperCase(),t in lt.cipher.algorithms?lt.cipher.algorithms[t]:null};var wf=lt.cipher.BlockCipher=function(t){this.algorithm=t.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=t.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=t.decrypt,this.algorithm.initialize(t)};wf.prototype.start=function(t){t=t||{};var e={};for(var r in t)e[r]=t[r];e.decrypt=this._decrypt,this._finish=!1,this._input=lt.util.createBuffer(),this.output=t.output||lt.util.createBuffer(),this.mode.start(e)};wf.prototype.update=function(t){for(t&&this._input.putBuffer(t);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};wf.prototype.finish=function(t){t&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return t(this.blockSize,r,!1)},this.mode.unpad=function(r){return t(this.blockSize,r,!0)});var e={};return e.decrypt=this._decrypt,e.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,e)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,e))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,e))}});var Sf=N((_4,Hy)=>{var ft=ie();De();ft.cipher=ft.cipher||{};var se=Hy.exports=ft.cipher.modes=ft.cipher.modes||{};se.ecb=function(t){t=t||{},this.name="ECB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};se.ecb.prototype.start=function(t){};se.ecb.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};se.ecb.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};se.ecb.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};se.ecb.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};se.cbc=function(t){t=t||{},this.name="CBC",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};se.cbc.prototype.start=function(t){if(t.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in t)this._iv=ic(t.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};se.cbc.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n]);this._prev=this._outBlock};se.cbc.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};se.cbc.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};se.cbc.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};se.cfb=function(t){t=t||{},this.name="CFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=ft.util.createBuffer(),this._partialBytes=0};se.cfb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=ic(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};se.cfb.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32()^this._outBlock[i],e.putInt32(this._inBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};se.cfb.prototype.decrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32(),e.putInt32(this._inBlock[i]^this._outBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};se.ofb=function(t){t=t||{},this.name="OFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=ft.util.createBuffer(),this._partialBytes=0};se.ofb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=ic(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};se.ofb.prototype.encrypt=function(t,e,r){var n=t.length();if(t.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};se.ofb.prototype.decrypt=se.ofb.prototype.encrypt;se.ctr=function(t){t=t||{},this.name="CTR",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=ft.util.createBuffer(),this._partialBytes=0};se.ctr.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=ic(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};se.ctr.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]);else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0&&(t.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}sc(this._inBlock)};se.ctr.prototype.decrypt=se.ctr.prototype.encrypt;se.gcm=function(t){t=t||{},this.name="GCM",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=ft.util.createBuffer(),this._partialBytes=0,this._R=3774873600};se.gcm.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");var e=ft.util.createBuffer(t.iv);this._cipherLength=0;var r;if("additionalData"in t?r=ft.util.createBuffer(t.additionalData):r=ft.util.createBuffer(),"tagLength"in t?this._tagLength=t.tagLength:this._tagLength=128,this._tag=null,t.decrypt&&(this._tag=ft.util.createBuffer(t.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=e.length();if(n===12)this._j0=[e.getInt32(),e.getInt32(),e.getInt32(),1];else{for(this._j0=[0,0,0,0];e.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(bf(n*8)))}this._inBlock=this._j0.slice(0),sc(this._inBlock),this._partialBytes=0,r=ft.util.createBuffer(r),this._aDataLength=bf(r.length()*8);var i=r.length()%this.blockSize;for(i&&r.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];r.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()])};se.gcm.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^=t.getInt32());this._cipherLength+=this.blockSize}else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s<=0||r){if(r){var o=n%this.blockSize;this._cipherLength+=o,this._partialOutput.truncate(this.blockSize-o)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.read-=this.blockSize,e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),sc(this._inBlock)};se.gcm.prototype.decrypt=function(t,e,r){var n=t.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),sc(this._inBlock),this._hashBlock[0]=t.getInt32(),this._hashBlock[1]=t.getInt32(),this._hashBlock[2]=t.getInt32(),this._hashBlock[3]=t.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};se.gcm.prototype.afterFinish=function(t,e){var r=!0;e.decrypt&&e.overflow&&t.truncate(this.blockSize-e.overflow),this.tag=ft.util.createBuffer();var n=this._aDataLength.concat(bf(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^i[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),e.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};se.gcm.prototype.multiply=function(t,e){for(var r=[0,0,0,0],n=e.slice(0),i=0;i<128;++i){var s=t[i/32|0]&1<<31-i%32;s&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};se.gcm.prototype.pow=function(t,e){for(var r=t[3]&1,n=3;n>0;--n)e[n]=t[n]>>>1|(t[n-1]&1)<<31;e[0]=t[0]>>>1,r&&(e[0]^=this._R)};se.gcm.prototype.tableMultiply=function(t){for(var e=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=t[n]>>>(7-r%8)*4&15,s=this._m[r][i];e[0]^=s[0],e[1]^=s[1],e[2]^=s[2],e[3]^=s[3]}return e};se.gcm.prototype.ghash=function(t,e,r){return e[0]^=r[0],e[1]^=r[1],e[2]^=r[2],e[3]^=r[3],this.tableMultiply(e)};se.gcm.prototype.generateHashTable=function(t,e){for(var r=8/e,n=4*r,i=16*r,s=new Array(i),o=0;o<i;++o){var a=[0,0,0,0],c=o/n|0,u=(n-1-o%n)*e;a[c]=1<<e-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,t),e)}return s};se.gcm.prototype.generateSubHashTable=function(t,e){var r=1<<e,n=r>>>1,i=new Array(r);i[n]=t.slice(0);for(var s=n>>>1;s>0;)this.pow(i[2*s],i[s]=[]),s>>=1;for(s=2;s<n;){for(var o=1;o<s;++o){var a=i[s],c=i[o];i[s+o]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}s*=2}for(i[0]=[0,0,0,0],s=n+1;s<r;++s){var u=i[s^n];i[s]=[t[0]^u[0],t[1]^u[1],t[2]^u[2],t[3]^u[3]]}return i};function ic(t,e){if(typeof t=="string"&&(t=ft.util.createBuffer(t)),ft.util.isArray(t)&&t.length>4){var r=t;t=ft.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(t.length()<e)throw new Error("Invalid IV length; got "+t.length()+" bytes and expected "+e+" bytes.");if(!ft.util.isArray(t)){for(var i=[],s=e/4,n=0;n<s;++n)i.push(t.getInt32());t=i}return t}function sc(t){t[t.length-1]=t[t.length-1]+1&4294967295}function bf(t){return[t/4294967296|0,t&4294967295]}});var ns=N((A4,Yy)=>{var Le=ie();xf();Sf();De();Yy.exports=Le.aes=Le.aes||{};Le.aes.startEncrypting=function(t,e,r,n){var i=oc({key:t,output:r,decrypt:!1,mode:n});return i.start(e),i};Le.aes.createEncryptionCipher=function(t,e){return oc({key:t,output:null,decrypt:!1,mode:e})};Le.aes.startDecrypting=function(t,e,r,n){var i=oc({key:t,output:r,decrypt:!0,mode:n});return i.start(e),i};Le.aes.createDecryptionCipher=function(t,e){return oc({key:t,output:null,decrypt:!0,mode:e})};Le.aes.Algorithm=function(t,e){Cf||$y();var r=this;r.name=t,r.mode=new e({blockSize:16,cipher:{encrypt:function(n,i){return Af(r._w,n,i,!1)},decrypt:function(n,i){return Af(r._w,n,i,!0)}}}),r._init=!1};Le.aes.Algorithm.prototype.initialize=function(t){if(!this._init){var e=t.key,r;if(typeof e=="string"&&(e.length===16||e.length===24||e.length===32))e=Le.util.createBuffer(e);else if(Le.util.isArray(e)&&(e.length===16||e.length===24||e.length===32)){r=e,e=Le.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(!Le.util.isArray(e)){r=e,e=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)e.push(r.getInt32())}}if(!Le.util.isArray(e)||!(e.length===4||e.length===6||e.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=Gy(e,t.decrypt&&!o),this._init=!0}};Le.aes._expandKey=function(t,e){return Cf||$y(),Gy(t,e)};Le.aes._updateBlock=Af;rs("AES-ECB",Le.cipher.modes.ecb);rs("AES-CBC",Le.cipher.modes.cbc);rs("AES-CFB",Le.cipher.modes.cfb);rs("AES-OFB",Le.cipher.modes.ofb);rs("AES-CTR",Le.cipher.modes.ctr);rs("AES-GCM",Le.cipher.modes.gcm);function rs(t,e){var r=function(){return new Le.aes.Algorithm(t,e)};Le.cipher.registerAlgorithm(t,r)}var Cf=!1,ts=4,vt,_f,zy,ai,or;function $y(){Cf=!0,zy=[0,1,2,4,8,16,32,64,128,27,54];for(var t=new Array(256),e=0;e<128;++e)t[e]=e<<1,t[e+128]=e+128<<1^283;vt=new Array(256),_f=new Array(256),ai=new Array(4),or=new Array(4);for(var e=0;e<4;++e)ai[e]=new Array(256),or[e]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,e=0;e<256;++e){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,vt[r]=a,_f[a]=r,c=t[a],i=t[r],s=t[i],o=t[s],u=c<<24^a<<16^a<<8^(a^c),l=(i^s^o)<<24^(r^o)<<16^(r^s^o)<<8^(r^i^o);for(var f=0;f<4;++f)ai[f][r]=u,or[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^t[t[t[i^o]]],n^=t[t[n]])}}function Gy(t,e){for(var r=t.slice(0),n,i=1,s=r.length,o=s+6+1,a=ts*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=vt[n>>>16&255]<<24^vt[n>>>8&255]<<16^vt[n&255]<<8^vt[n>>>24]^zy[i]<<24,i++):s>6&&c%s===4&&(n=vt[n>>>24]<<24^vt[n>>>16&255]<<16^vt[n>>>8&255]<<8^vt[n&255]),r[c]=r[c-s]^n;if(e){var u,l=or[0],f=or[1],d=or[2],h=or[3],p=r.slice(0);a=r.length;for(var c=0,y=a-ts;c<a;c+=ts,y-=ts)if(c===0||c===a-ts)p[c]=r[y],p[c+1]=r[y+3],p[c+2]=r[y+2],p[c+3]=r[y+1];else for(var g=0;g<ts;++g)u=r[y+g],p[c+(3&-g)]=l[vt[u>>>24]]^f[vt[u>>>16&255]]^d[vt[u>>>8&255]]^h[vt[u&255]];r=p}return r}function Af(t,e,r,n){var i=t.length/4-1,s,o,a,c,u;n?(s=or[0],o=or[1],a=or[2],c=or[3],u=_f):(s=ai[0],o=ai[1],a=ai[2],c=ai[3],u=vt);var l,f,d,h,p,y,g;l=e[0]^t[0],f=e[n?3:1]^t[1],d=e[2]^t[2],h=e[n?1:3]^t[3];for(var E=3,x=1;x<i;++x)p=s[l>>>24]^o[f>>>16&255]^a[d>>>8&255]^c[h&255]^t[++E],y=s[f>>>24]^o[d>>>16&255]^a[h>>>8&255]^c[l&255]^t[++E],g=s[d>>>24]^o[h>>>16&255]^a[l>>>8&255]^c[f&255]^t[++E],h=s[h>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[d&255]^t[++E],l=p,f=y,d=g;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[d>>>8&255]<<8^u[h&255]^t[++E],r[n?3:1]=u[f>>>24]<<24^u[d>>>16&255]<<16^u[h>>>8&255]<<8^u[l&255]^t[++E],r[2]=u[d>>>24]<<24^u[h>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^t[++E],r[n?1:3]=u[h>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[d&255]^t[++E]}function oc(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="AES-"+e,n;t.decrypt?n=Le.cipher.createDecipher(r,t.key):n=Le.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof Le.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var is=N((C4,Wy)=>{var so=ie();so.pki=so.pki||{};var If=Wy.exports=so.pki.oids=so.oids=so.oids||{};function R(t,e){If[t]=e,If[e]=t}function ve(t,e){If[t]=e}R("1.2.840.113549.1.1.1","rsaEncryption");R("1.2.840.113549.1.1.4","md5WithRSAEncryption");R("1.2.840.113549.1.1.5","sha1WithRSAEncryption");R("1.2.840.113549.1.1.7","RSAES-OAEP");R("1.2.840.113549.1.1.8","mgf1");R("1.2.840.113549.1.1.9","pSpecified");R("1.2.840.113549.1.1.10","RSASSA-PSS");R("1.2.840.113549.1.1.11","sha256WithRSAEncryption");R("1.2.840.113549.1.1.12","sha384WithRSAEncryption");R("1.2.840.113549.1.1.13","sha512WithRSAEncryption");R("1.3.101.112","EdDSA25519");R("1.2.840.10040.4.3","dsa-with-sha1");R("1.3.14.3.2.7","desCBC");R("1.3.14.3.2.26","sha1");R("1.3.14.3.2.29","sha1WithRSASignature");R("2.16.840.1.101.3.4.2.1","sha256");R("2.16.840.1.101.3.4.2.2","sha384");R("2.16.840.1.101.3.4.2.3","sha512");R("2.16.840.1.101.3.4.2.4","sha224");R("2.16.840.1.101.3.4.2.5","sha512-224");R("2.16.840.1.101.3.4.2.6","sha512-256");R("1.2.840.113549.2.2","md2");R("1.2.840.113549.2.5","md5");R("1.2.840.113549.1.7.1","data");R("1.2.840.113549.1.7.2","signedData");R("1.2.840.113549.1.7.3","envelopedData");R("1.2.840.113549.1.7.4","signedAndEnvelopedData");R("1.2.840.113549.1.7.5","digestedData");R("1.2.840.113549.1.7.6","encryptedData");R("1.2.840.113549.1.9.1","emailAddress");R("1.2.840.113549.1.9.2","unstructuredName");R("1.2.840.113549.1.9.3","contentType");R("1.2.840.113549.1.9.4","messageDigest");R("1.2.840.113549.1.9.5","signingTime");R("1.2.840.113549.1.9.6","counterSignature");R("1.2.840.113549.1.9.7","challengePassword");R("1.2.840.113549.1.9.8","unstructuredAddress");R("1.2.840.113549.1.9.14","extensionRequest");R("1.2.840.113549.1.9.20","friendlyName");R("1.2.840.113549.1.9.21","localKeyId");R("1.2.840.113549.1.9.22.1","x509Certificate");R("1.2.840.113549.1.12.10.1.1","keyBag");R("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");R("1.2.840.113549.1.12.10.1.3","certBag");R("1.2.840.113549.1.12.10.1.4","crlBag");R("1.2.840.113549.1.12.10.1.5","secretBag");R("1.2.840.113549.1.12.10.1.6","safeContentsBag");R("1.2.840.113549.1.5.13","pkcs5PBES2");R("1.2.840.113549.1.5.12","pkcs5PBKDF2");R("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");R("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");R("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");R("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");R("1.2.840.113549.2.7","hmacWithSHA1");R("1.2.840.113549.2.8","hmacWithSHA224");R("1.2.840.113549.2.9","hmacWithSHA256");R("1.2.840.113549.2.10","hmacWithSHA384");R("1.2.840.113549.2.11","hmacWithSHA512");R("1.2.840.113549.3.7","des-EDE3-CBC");R("2.16.840.1.101.3.4.1.2","aes128-CBC");R("2.16.840.1.101.3.4.1.22","aes192-CBC");R("2.16.840.1.101.3.4.1.42","aes256-CBC");R("2.5.4.3","commonName");R("2.5.4.4","surname");R("2.5.4.5","serialNumber");R("2.5.4.6","countryName");R("2.5.4.7","localityName");R("2.5.4.8","stateOrProvinceName");R("2.5.4.9","streetAddress");R("2.5.4.10","organizationName");R("2.5.4.11","organizationalUnitName");R("2.5.4.12","title");R("2.5.4.13","description");R("2.5.4.15","businessCategory");R("2.5.4.17","postalCode");R("2.5.4.42","givenName");R("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");R("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");R("2.16.840.1.113730.1.1","nsCertType");R("2.16.840.1.113730.1.13","nsComment");ve("2.5.29.1","authorityKeyIdentifier");ve("2.5.29.2","keyAttributes");ve("2.5.29.3","certificatePolicies");ve("2.5.29.4","keyUsageRestriction");ve("2.5.29.5","policyMapping");ve("2.5.29.6","subtreesConstraint");ve("2.5.29.7","subjectAltName");ve("2.5.29.8","issuerAltName");ve("2.5.29.9","subjectDirectoryAttributes");ve("2.5.29.10","basicConstraints");ve("2.5.29.11","nameConstraints");ve("2.5.29.12","policyConstraints");ve("2.5.29.13","basicConstraints");R("2.5.29.14","subjectKeyIdentifier");R("2.5.29.15","keyUsage");ve("2.5.29.16","privateKeyUsagePeriod");R("2.5.29.17","subjectAltName");R("2.5.29.18","issuerAltName");R("2.5.29.19","basicConstraints");ve("2.5.29.20","cRLNumber");ve("2.5.29.21","cRLReason");ve("2.5.29.22","expirationDate");ve("2.5.29.23","instructionCode");ve("2.5.29.24","invalidityDate");ve("2.5.29.25","cRLDistributionPoints");ve("2.5.29.26","issuingDistributionPoint");ve("2.5.29.27","deltaCRLIndicator");ve("2.5.29.28","issuingDistributionPoint");ve("2.5.29.29","certificateIssuer");ve("2.5.29.30","nameConstraints");R("2.5.29.31","cRLDistributionPoints");R("2.5.29.32","certificatePolicies");ve("2.5.29.33","policyMappings");ve("2.5.29.34","policyConstraints");R("2.5.29.35","authorityKeyIdentifier");ve("2.5.29.36","policyConstraints");R("2.5.29.37","extKeyUsage");ve("2.5.29.46","freshestCRL");ve("2.5.29.54","inhibitAnyPolicy");R("1.3.6.1.4.1.11129.2.4.2","timestampList");R("1.3.6.1.5.5.7.1.1","authorityInfoAccess");R("1.3.6.1.5.5.7.3.1","serverAuth");R("1.3.6.1.5.5.7.3.2","clientAuth");R("1.3.6.1.5.5.7.3.3","codeSigning");R("1.3.6.1.5.5.7.3.4","emailProtection");R("1.3.6.1.5.5.7.3.8","timeStamping")});var An=N((I4,Xy)=>{var Be=ie();De();is();var k=Xy.exports=Be.asn1=Be.asn1||{};k.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};k.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};k.create=function(t,e,r,n,i){if(Be.util.isArray(n)){for(var s=[],o=0;o<n.length;++o)n[o]!==void 0&&s.push(n[o]);n=s}var a={tagClass:t,type:e,constructed:r,composed:r||Be.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=k.copy(a)),a};k.copy=function(t,e){var r;if(Be.util.isArray(t)){r=[];for(var n=0;n<t.length;++n)r.push(k.copy(t[n],e));return r}return typeof t=="string"?t:(r={tagClass:t.tagClass,type:t.type,constructed:t.constructed,composed:t.composed,value:k.copy(t.value,e)},e&&!e.excludeBitStringContents&&(r.bitStringContents=t.bitStringContents),r)};k.equals=function(t,e,r){if(Be.util.isArray(t)){if(!Be.util.isArray(e)||t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(!k.equals(t[n],e[n]))return!1;return!0}if(typeof t!=typeof e)return!1;if(typeof t=="string")return t===e;var i=t.tagClass===e.tagClass&&t.type===e.type&&t.constructed===e.constructed&&t.composed===e.composed&&k.equals(t.value,e.value);return r&&r.includeBitStringContents&&(i=i&&t.bitStringContents===e.bitStringContents),i};k.getBerValueLength=function(t){var e=t.getByte();if(e!==128){var r,n=e&128;return n?r=t.getInt((e&127)<<3):r=e,r}};function oo(t,e,r){if(r>e){var n=new Error("Too few bytes to parse DER.");throw n.available=t.length(),n.remaining=e,n.requested=r,n}}var kS=function(t,e){var r=t.getByte();if(e--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;oo(t,e,s),n=t.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};k.fromDer=function(t,e){e===void 0&&(e={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof e=="boolean"&&(e={strict:e,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in e||(e.strict=!0),"parseAllBytes"in e||(e.parseAllBytes=!0),"decodeBitStrings"in e||(e.decodeBitStrings=!0),typeof t=="string"&&(t=Be.util.createBuffer(t));var r=t.length(),n=ac(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 ac(t,e,r,n){var i;oo(t,e,2);var s=t.getByte();e--;var o=s&192,a=s&31;i=t.length();var c=kS(t,e);if(e-=i-t.length(),c!==void 0&&c>e){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=t.length(),u.remaining=e,u.requested=c,u}c=e}var l,f,d=(s&32)===32;if(d)if(l=[],c===void 0)for(;;){if(oo(t,e,2),t.bytes(2)===String.fromCharCode(0,0)){t.getBytes(2),e-=2;break}i=t.length(),l.push(ac(t,e,r+1,n)),e-=i-t.length()}else for(;c>0;)i=t.length(),l.push(ac(t,c,r+1,n)),e-=i-t.length(),c-=i-t.length();if(l===void 0&&o===k.Class.UNIVERSAL&&a===k.Type.BITSTRING&&(f=t.bytes(c)),l===void 0&&n.decodeBitStrings&&o===k.Class.UNIVERSAL&&a===k.Type.BITSTRING&&c>1){var h=t.read,p=e,y=0;if(a===k.Type.BITSTRING&&(oo(t,e,1),y=t.getByte(),e--),y===0)try{i=t.length();var g={strict:!0,decodeBitStrings:!0},E=ac(t,e,r+1,g),x=i-t.length();e-=x,a==k.Type.BITSTRING&&x++;var _=E.tagClass;x===c&&(_===k.Class.UNIVERSAL||_===k.Class.CONTEXT_SPECIFIC)&&(l=[E])}catch{}l===void 0&&(t.read=h,e=p)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=e}if(a===k.Type.BMPSTRING)for(l="";c>0;c-=2)oo(t,e,2),l+=String.fromCharCode(t.getInt16()),e-=2;else l=t.getBytes(c),e-=c}var B=f===void 0?null:{bitStringContents:f};return k.create(o,a,d,l,B)}k.toDer=function(t){var e=Be.util.createBuffer(),r=t.tagClass|t.type,n=Be.util.createBuffer(),i=!1;if("bitStringContents"in t&&(i=!0,t.original&&(i=k.equals(t,t.original))),i)n.putBytes(t.bitStringContents);else if(t.composed){t.constructed?r|=32:n.putByte(0);for(var s=0;s<t.value.length;++s)t.value[s]!==void 0&&n.putBuffer(k.toDer(t.value[s]))}else if(t.type===k.Type.BMPSTRING)for(var s=0;s<t.value.length;++s)n.putInt16(t.value.charCodeAt(s));else t.type===k.Type.INTEGER&&t.value.length>1&&(t.value.charCodeAt(0)===0&&!(t.value.charCodeAt(1)&128)||t.value.charCodeAt(0)===255&&(t.value.charCodeAt(1)&128)===128)?n.putBytes(t.value.substr(1)):n.putBytes(t.value);if(e.putByte(r),n.length()<=127)e.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);e.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)e.putByte(a.charCodeAt(s))}return e.putBuffer(n),e};k.oidToDer=function(t){var e=t.split("."),r=Be.util.createBuffer();r.putByte(40*parseInt(e[0],10)+parseInt(e[1],10));for(var n,i,s,o,a=2;a<e.length;++a){n=!0,i=[],s=parseInt(e[a],10);do o=s&127,s=s>>>7,n||(o|=128),i.push(o),n=!1;while(s>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};k.derToOid=function(t){var e;typeof t=="string"&&(t=Be.util.createBuffer(t));var r=t.getByte();e=Math.floor(r/40)+"."+r%40;for(var n=0;t.length()>0;)r=t.getByte(),n=n<<7,r&128?n+=r&127:(e+="."+(n+r),n=0);return e};k.utcTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(t.substr(2,2),10)-1,i=parseInt(t.substr(4,2),10),s=parseInt(t.substr(6,2),10),o=parseInt(t.substr(8,2),10),a=0;if(t.length>11){var c=t.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(t.substr(10,2),10),u+=2)}if(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,0),u&&(c=t.charAt(u),c==="+"||c==="-")){var l=parseInt(t.substr(u+1,2),10),f=parseInt(t.substr(u+4,2),10),d=l*60+f;d*=6e4,c==="+"?e.setTime(+e-d):e.setTime(+e+d)}return e};k.generalizedTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,4),10),n=parseInt(t.substr(4,2),10)-1,i=parseInt(t.substr(6,2),10),s=parseInt(t.substr(8,2),10),o=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),c=0,u=0,l=!1;t.charAt(t.length-1)==="Z"&&(l=!0);var f=t.length-5,d=t.charAt(f);if(d==="+"||d==="-"){var h=parseInt(t.substr(f+1,2),10),p=parseInt(t.substr(f+4,2),10);u=h*60+p,u*=6e4,d==="+"&&(u*=-1),l=!0}return t.charAt(14)==="."&&(c=parseFloat(t.substr(14),10)*1e3),l?(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,c),e.setTime(+e+u)):(e.setFullYear(r,n,i),e.setHours(s,o,a,c)),e};k.dateToUtcTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push((""+t.getUTCFullYear()).substr(2)),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};k.dateToGeneralizedTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push(""+t.getUTCFullYear()),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};k.integerToDer=function(t){var e=Be.util.createBuffer();if(t>=-128&&t<128)return e.putSignedInt(t,8);if(t>=-32768&&t<32768)return e.putSignedInt(t,16);if(t>=-8388608&&t<8388608)return e.putSignedInt(t,24);if(t>=-2147483648&&t<2147483648)return e.putSignedInt(t,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=t,r};k.derToInteger=function(t){typeof t=="string"&&(t=Be.util.createBuffer(t));var e=t.length()*8;if(e>32)throw new Error("Integer too large; max is 32-bits.");return t.getSignedInt(e)};k.validate=function(t,e,r,n){var i=!1;if((t.tagClass===e.tagClass||typeof e.tagClass>"u")&&(t.type===e.type||typeof e.type>"u"))if(t.constructed===e.constructed||typeof e.constructed>"u"){if(i=!0,e.value&&Be.util.isArray(e.value))for(var s=0,o=0;i&&o<e.value.length;++o)i=e.value[o].optional||!1,t.value[s]&&(i=k.validate(t.value[s],e.value[o],r,n),i?++s:e.value[o].optional&&(i=!0)),!i&&n&&n.push("["+e.name+'] Tag class "'+e.tagClass+'", type "'+e.type+'" expected value length "'+e.value.length+'", got "'+t.value.length+'"');if(i&&r&&(e.capture&&(r[e.capture]=t.value),e.captureAsn1&&(r[e.captureAsn1]=t),e.captureBitStringContents&&"bitStringContents"in t&&(r[e.captureBitStringContents]=t.bitStringContents),e.captureBitStringValue&&"bitStringContents"in t)){var a;if(t.bitStringContents.length<2)r[e.captureBitStringValue]="";else{var c=t.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[e.captureBitStringValue]=t.bitStringContents.slice(1)}}}else n&&n.push("["+e.name+'] Expected constructed "'+e.constructed+'", got "'+t.constructed+'"');else n&&(t.tagClass!==e.tagClass&&n.push("["+e.name+'] Expected tag class "'+e.tagClass+'", got "'+t.tagClass+'"'),t.type!==e.type&&n.push("["+e.name+'] Expected type "'+e.type+'", got "'+t.type+'"'));return i};var Qy=/[^\\u0000-\\u00ff]/;k.prettyPrint=function(t,e,r){var n="";e=e||0,r=r||2,e>0&&(n+=`
28
- `);for(var i="",s=0;s<e*r;++s)i+=" ";switch(n+=i+"Tag: ",t.tagClass){case k.Class.UNIVERSAL:n+="Universal:";break;case k.Class.APPLICATION:n+="Application:";break;case k.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case k.Class.PRIVATE:n+="Private:";break}if(t.tagClass===k.Class.UNIVERSAL)switch(n+=t.type,t.type){case k.Type.NONE:n+=" (None)";break;case k.Type.BOOLEAN:n+=" (Boolean)";break;case k.Type.INTEGER:n+=" (Integer)";break;case k.Type.BITSTRING:n+=" (Bit string)";break;case k.Type.OCTETSTRING:n+=" (Octet string)";break;case k.Type.NULL:n+=" (Null)";break;case k.Type.OID:n+=" (Object Identifier)";break;case k.Type.ODESC:n+=" (Object Descriptor)";break;case k.Type.EXTERNAL:n+=" (External or Instance of)";break;case k.Type.REAL:n+=" (Real)";break;case k.Type.ENUMERATED:n+=" (Enumerated)";break;case k.Type.EMBEDDED:n+=" (Embedded PDV)";break;case k.Type.UTF8:n+=" (UTF8)";break;case k.Type.ROID:n+=" (Relative Object Identifier)";break;case k.Type.SEQUENCE:n+=" (Sequence)";break;case k.Type.SET:n+=" (Set)";break;case k.Type.PRINTABLESTRING:n+=" (Printable String)";break;case k.Type.IA5String:n+=" (IA5String (ASCII))";break;case k.Type.UTCTIME:n+=" (UTC time)";break;case k.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case k.Type.BMPSTRING:n+=" (BMP String)";break}else n+=t.type;if(n+=`
29
- `,n+=i+"Constructed: "+t.constructed+`
30
- `,t.composed){for(var o=0,a="",s=0;s<t.value.length;++s)t.value[s]!==void 0&&(o+=1,a+=k.prettyPrint(t.value[s],e+1,r),s+1<t.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",t.type===k.Type.OID){var c=k.derToOid(t.value);n+=c,Be.pki&&Be.pki.oids&&c in Be.pki.oids&&(n+=" ("+Be.pki.oids[c]+") ")}if(t.type===k.Type.INTEGER)try{n+=k.derToInteger(t.value)}catch{n+="0x"+Be.util.bytesToHex(t.value)}else if(t.type===k.Type.BITSTRING){if(t.value.length>1?n+="0x"+Be.util.bytesToHex(t.value.slice(1)):n+="(none)",t.value.length>0){var u=t.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(t.type===k.Type.OCTETSTRING)Qy.test(t.value)||(n+="("+t.value+") "),n+="0x"+Be.util.bytesToHex(t.value);else if(t.type===k.Type.UTF8)try{n+=Be.util.decodeUtf8(t.value)}catch(l){if(l.message==="URI malformed")n+="0x"+Be.util.bytesToHex(t.value)+" (malformed UTF8)";else throw l}else t.type===k.Type.PRINTABLESTRING||t.type===k.Type.IA5String?n+=t.value:Qy.test(t.value)?n+="0x"+Be.util.bytesToHex(t.value):t.value.length===0?n+="[null]":n+=t.value}return n}});var uc=N((T4,Zy)=>{var Me=ie();xf();Sf();De();Zy.exports=Me.des=Me.des||{};Me.des.startEncrypting=function(t,e,r,n){var i=cc({key:t,output:r,decrypt:!1,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};Me.des.createEncryptionCipher=function(t,e){return cc({key:t,output:null,decrypt:!1,mode:e})};Me.des.startDecrypting=function(t,e,r,n){var i=cc({key:t,output:r,decrypt:!0,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};Me.des.createDecryptionCipher=function(t,e){return cc({key:t,output:null,decrypt:!0,mode:e})};Me.des.Algorithm=function(t,e){var r=this;r.name=t,r.mode=new e({blockSize:8,cipher:{encrypt:function(n,i){return jy(r._keys,n,i,!1)},decrypt:function(n,i){return jy(r._keys,n,i,!0)}}}),r._init=!1};Me.des.Algorithm.prototype.initialize=function(t){if(!this._init){var e=Me.util.createBuffer(t.key);if(this.name.indexOf("3DES")===0&&e.length()!==24)throw new Error("Invalid Triple-DES key size: "+e.length()*8);this._keys=$S(e),this._init=!0}};br("DES-ECB",Me.cipher.modes.ecb);br("DES-CBC",Me.cipher.modes.cbc);br("DES-CFB",Me.cipher.modes.cfb);br("DES-OFB",Me.cipher.modes.ofb);br("DES-CTR",Me.cipher.modes.ctr);br("3DES-ECB",Me.cipher.modes.ecb);br("3DES-CBC",Me.cipher.modes.cbc);br("3DES-CFB",Me.cipher.modes.cfb);br("3DES-OFB",Me.cipher.modes.ofb);br("3DES-CTR",Me.cipher.modes.ctr);function br(t,e){var r=function(){return new Me.des.Algorithm(t,e)};Me.cipher.registerAlgorithm(t,r)}var US=[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],MS=[-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],FS=[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],KS=[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],VS=[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],qS=[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],HS=[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],zS=[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 $S(t){for(var e=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],o=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],l=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],d=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],h=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],p=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],y=t.length()>8?3:1,g=[],E=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,_,B=0;B<y;B++){var D=t.getInt32(),L=t.getInt32();_=(D>>>4^L)&252645135,L^=_,D^=_<<4,_=(L>>>-16^D)&65535,D^=_,L^=_<<-16,_=(D>>>2^L)&858993459,L^=_,D^=_<<2,_=(L>>>-16^D)&65535,D^=_,L^=_<<-16,_=(D>>>1^L)&1431655765,L^=_,D^=_<<1,_=(L>>>8^D)&16711935,D^=_,L^=_<<8,_=(D>>>1^L)&1431655765,L^=_,D^=_<<1,_=D<<8|L>>>20&240,D=L<<24|L<<8&16711680|L>>>8&65280|L>>>24&240,L=_;for(var te=0;te<E.length;++te){E[te]?(D=D<<2|D>>>26,L=L<<2|L>>>26):(D=D<<1|D>>>27,L=L<<1|L>>>27),D&=-15,L&=-15;var ce=e[D>>>28]|r[D>>>24&15]|n[D>>>20&15]|i[D>>>16&15]|s[D>>>12&15]|o[D>>>8&15]|a[D>>>4&15],st=c[L>>>28]|u[L>>>24&15]|l[L>>>20&15]|f[L>>>16&15]|d[L>>>12&15]|h[L>>>8&15]|p[L>>>4&15];_=(st>>>16^ce)&65535,g[x++]=ce^_,g[x++]=st^_<<16}}return g}function jy(t,e,r,n){var i=t.length===32?3:9,s;i===3?s=n?[30,-2,-2]:[0,32,2]:s=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var o,a=e[0],c=e[1];o=(a>>>4^c)&252645135,c^=o,a^=o<<4,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var l=s[u+1],f=s[u+2],d=s[u];d!=l;d+=f){var h=c^t[d],p=(c>>>4|c<<28)^t[d+1];o=a,a=c,c=o^(MS[h>>>24&63]|KS[h>>>16&63]|qS[h>>>8&63]|zS[h&63]|US[p>>>24&63]|FS[p>>>16&63]|VS[p>>>8&63]|HS[p&63])}o=a,a=c,c=o}a=a>>>1|a<<31,c=c>>>1|c<<31,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(a>>>4^c)&252645135,c^=o,a^=o<<4,r[0]=a,r[1]=c}function cc(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="DES-"+e,n;t.decrypt?n=Me.cipher.createDecipher(r,t.key):n=Me.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof Me.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var hc=N((R4,eg)=>{var fc=ie();De();var Jy=eg.exports=fc.pem=fc.pem||{};Jy.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+=lc(n)),t.contentDomain&&(n={name:"Content-Domain",values:[t.contentDomain]},r+=lc(n)),t.dekInfo&&(n={name:"DEK-Info",values:[t.dekInfo.algorithm]},t.dekInfo.parameters&&n.values.push(t.dekInfo.parameters),r+=lc(n)),t.headers)for(var i=0;i<t.headers.length;++i)r+=lc(t.headers[i]);return t.procType&&(r+=`\r
32
- `),r+=fc.util.encode64(t.body,e.maxline||64)+`\r
33
- `,r+="-----END "+t.type+`-----\r
34
- `,r};Jy.decode=function(t){for(var e=[],r=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,s;s=r.exec(t),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:fc.util.decode64(s[3])};if(e.push(a),!!s[2]){for(var c=s[2].split(i),u=0;s&&u<c.length;){for(var l=c[u].replace(/\s+$/,""),f=u+1;f<c.length;++f){var d=c[f];if(!/\s/.test(d[0]))break;l+=d,u=f}if(s=l.match(n),s){for(var h={name:s[1],values:[]},p=s[2].split(","),y=0;y<p.length;++y)h.values.push(GS(p[y]));if(a.procType)if(!a.contentDomain&&h.name==="Content-Domain")a.contentDomain=p[0]||"";else if(!a.dekInfo&&h.name==="DEK-Info"){if(h.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(h);else{if(h.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(h.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 lc(t){for(var e=t.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<t.values.length;++i)r.push(t.values[i].replace(/^(\S+\r\n)/,n));e+=r.join(",")+`\r
35
- `;for(var s=0,o=-1,i=0;i<e.length;++i,++s)if(s>65&&o!==-1){var a=e[o];a===","?(++o,e=e.substr(0,o)+`\r
36
- `+e.substr(o)):e=e.substr(0,o)+`\r
37
- `+a+e.substr(o+1),s=i-o-1,o=-1,++i}else(e[i]===" "||e[i]===" "||e[i]===",")&&(o=i);return e}function GS(t){return t.replace(/^\s+/,"")}});var ig=N((N4,ng)=>{var ss=ie();An();De();var U=ss.asn1,os=ng.exports=ss.pkcs7asn1=ss.pkcs7asn1||{};ss.pkcs7=ss.pkcs7||{};ss.pkcs7.asn1=os;var tg={name:"ContentInfo",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.ContentType",tagClass:U.Class.UNIVERSAL,type:U.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:U.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,captureAsn1:"content"}]};os.contentInfoValidator=tg;var rg={name:"EncryptedContentInfo",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentType",tagClass:U.Class.UNIVERSAL,type:U.Type.OID,constructed:!1,capture:"contentType"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentEncryptionAlgorithm.algorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm.parameter",tagClass:U.Class.UNIVERSAL,captureAsn1:"encParameter"}]},{name:"EncryptedContentInfo.encryptedContent",tagClass:U.Class.CONTEXT_SPECIFIC,type:0,capture:"encryptedContent",captureAsn1:"encryptedContentAsn1"}]};os.envelopedDataValidator={name:"EnvelopedData",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"EnvelopedData.Version",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"version"},{name:"EnvelopedData.RecipientInfos",tagClass:U.Class.UNIVERSAL,type:U.Type.SET,constructed:!0,captureAsn1:"recipientInfos"}].concat(rg)};os.encryptedDataValidator={name:"EncryptedData",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedData.Version",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"version"}].concat(rg)};var YS={name:"SignerInfo",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.version",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1},{name:"SignerInfo.issuerAndSerialNumber",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.issuerAndSerialNumber.issuer",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"SignerInfo.issuerAndSerialNumber.serialNumber",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"SignerInfo.digestAlgorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.digestAlgorithm.algorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.OID,constructed:!1,capture:"digestAlgorithm"},{name:"SignerInfo.digestAlgorithm.parameter",tagClass:U.Class.UNIVERSAL,constructed:!1,captureAsn1:"digestParameter",optional:!0}]},{name:"SignerInfo.authenticatedAttributes",tagClass:U.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"authenticatedAttributes"},{name:"SignerInfo.digestEncryptionAlgorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,capture:"signatureAlgorithm"},{name:"SignerInfo.encryptedDigest",tagClass:U.Class.UNIVERSAL,type:U.Type.OCTETSTRING,constructed:!1,capture:"signature"},{name:"SignerInfo.unauthenticatedAttributes",tagClass:U.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,capture:"unauthenticatedAttributes"}]};os.signedDataValidator={name:"SignedData",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"SignedData.Version",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"version"},{name:"SignedData.DigestAlgorithms",tagClass:U.Class.UNIVERSAL,type:U.Type.SET,constructed:!0,captureAsn1:"digestAlgorithms"},tg,{name:"SignedData.Certificates",tagClass:U.Class.CONTEXT_SPECIFIC,type:0,optional:!0,captureAsn1:"certificates"},{name:"SignedData.CertificateRevocationLists",tagClass:U.Class.CONTEXT_SPECIFIC,type:1,optional:!0,captureAsn1:"crls"},{name:"SignedData.SignerInfos",tagClass:U.Class.UNIVERSAL,type:U.Type.SET,capture:"signerInfos",optional:!0,value:[YS]}]};os.recipientInfoValidator={name:"RecipientInfo",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.version",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"version"},{name:"RecipientInfo.issuerAndSerial",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.issuerAndSerial.issuer",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"RecipientInfo.issuerAndSerial.serialNumber",tagClass:U.Class.UNIVERSAL,type:U.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"RecipientInfo.keyEncryptionAlgorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.keyEncryptionAlgorithm.algorithm",tagClass:U.Class.UNIVERSAL,type:U.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"RecipientInfo.keyEncryptionAlgorithm.parameter",tagClass:U.Class.UNIVERSAL,constructed:!1,captureAsn1:"encParameter",optional:!0}]},{name:"RecipientInfo.encryptedKey",tagClass:U.Class.UNIVERSAL,type:U.Type.OCTETSTRING,constructed:!1,capture:"encKey"}]}});var Cn=N((D4,sg)=>{var dc=ie();sg.exports=dc.md=dc.md||{};dc.md.algorithms=dc.md.algorithms||{}});var fg=N((L4,lg)=>{var Sr=ie();Cn();De();var ag=lg.exports=Sr.sha256=Sr.sha256||{};Sr.md.sha256=Sr.md.algorithms.sha256=ag;ag.create=function(){cg||WS();var t=null,e=Sr.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Sr.util.createBuffer(),t={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Sr.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),og(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Sr.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Tf.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4,h5:t.h5,h6:t.h6,h7:t.h7};og(f,r,i);var d=Sr.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d.putInt32(f.h5),d.putInt32(f.h6),d.putInt32(f.h7),d},n};var Tf=null,cg=!1,ug=null;function WS(){Tf=String.fromCharCode(128),Tf+=Sr.util.fillString(String.fromCharCode(0),64),ug=[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],cg=!0}function og(t,e,r){for(var n,i,s,o,a,c,u,l,f,d,h,p,y,g,E,x=r.length();x>=64;){for(u=0;u<16;++u)e[u]=r.getInt32();for(;u<64;++u)n=e[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=e[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,e[u]=n+e[u-7]+i+e[u-16]|0;for(l=t.h0,f=t.h1,d=t.h2,h=t.h3,p=t.h4,y=t.h5,g=t.h6,E=t.h7,u=0;u<64;++u)o=(p>>>6|p<<26)^(p>>>11|p<<21)^(p>>>25|p<<7),a=g^p&(y^g),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|d&(l^f),n=E+o+a+ug[u]+e[u],i=s+c,E=g,g=y,y=p,p=h+n>>>0,h=d,d=f,f=l,l=n+i>>>0;t.h0=t.h0+l|0,t.h1=t.h1+f|0,t.h2=t.h2+d|0,t.h3=t.h3+h|0,t.h4=t.h4+p|0,t.h5=t.h5+y|0,t.h6=t.h6+g|0,t.h7=t.h7+E|0,x-=64}}});var dg=N((P4,hg)=>{var _r=ie();De();var pc=null;_r.util.isNodejs&&!_r.options.usePureJavaScript&&!process.versions["node-webkit"]&&(pc=ei());var QS=hg.exports=_r.prng=_r.prng||{};QS.create=function(t){for(var e={plugin:t,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=t.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();e.pools=n,e.pool=0,e.generate=function(u,l){if(!l)return e.generateSync(u);var f=e.plugin.cipher,d=e.plugin.increment,h=e.plugin.formatKey,p=e.plugin.formatSeed,y=_r.util.createBuffer();e.key=null,g();function g(E){if(E)return l(E);if(y.length()>=u)return l(null,y.getBytes(u));if(e.generated>1048575&&(e.key=null),e.key===null)return _r.util.nextTick(function(){s(g)});var x=f(e.key,e.seed);e.generated+=x.length,y.putBytes(x),e.key=h(f(e.key,d(e.seed))),e.seed=p(f(e.key,e.seed)),_r.util.setImmediate(g)}},e.generateSync=function(u){var l=e.plugin.cipher,f=e.plugin.increment,d=e.plugin.formatKey,h=e.plugin.formatSeed;e.key=null;for(var p=_r.util.createBuffer();p.length()<u;){e.generated>1048575&&(e.key=null),e.key===null&&o();var y=l(e.key,e.seed);e.generated+=y.length,p.putBytes(y),e.key=d(l(e.key,f(e.seed))),e.seed=h(l(e.key,e.seed))}return p.getBytes(u)};function s(u){if(e.pools[0].messageLength>=32)return a(),u();var l=32-e.pools[0].messageLength<<5;e.seedFile(l,function(f,d){if(f)return u(f);e.collect(d),a(),u()})}function o(){if(e.pools[0].messageLength>=32)return a();var u=32-e.pools[0].messageLength<<5;e.collect(e.seedFileSync(u)),a()}function a(){e.reseeds=e.reseeds===4294967295?0:e.reseeds+1;var u=e.plugin.md.create();u.update(e.keyBytes);for(var l=1,f=0;f<32;++f)e.reseeds%l===0&&(u.update(e.pools[f].digest().getBytes()),e.pools[f].start()),l=l<<1;e.keyBytes=u.digest().getBytes(),u.start(),u.update(e.keyBytes);var d=u.digest().getBytes();e.key=e.plugin.formatKey(e.keyBytes),e.seed=e.plugin.formatSeed(d),e.generated=0}function c(u){var l=null,f=_r.util.globalScope,d=f.crypto||f.msCrypto;d&&d.getRandomValues&&(l=function(D){return d.getRandomValues(D)});var h=_r.util.createBuffer();if(l)for(;h.length()<u;){var p=Math.max(1,Math.min(u-h.length(),65536)/4),y=new Uint32Array(Math.floor(p));try{l(y);for(var g=0;g<y.length;++g)h.putInt32(y[g])}catch(D){if(!(typeof QuotaExceededError<"u"&&D instanceof QuotaExceededError))throw D}}if(h.length()<u)for(var E,x,_,B=Math.floor(Math.random()*65536);h.length()<u;){x=16807*(B&65535),E=16807*(B>>16),x+=(E&32767)<<16,x+=E>>15,x=(x&2147483647)+(x>>31),B=x&4294967295;for(var g=0;g<3;++g)_=B>>>(g<<3),_^=Math.floor(Math.random()*256),h.putByte(_&255)}return h.getBytes(u)}return pc?(e.seedFile=function(u,l){pc.randomBytes(u,function(f,d){if(f)return l(f);l(null,d.toString())})},e.seedFileSync=function(u){return pc.randomBytes(u).toString()}):(e.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},e.seedFileSync=c),e.collect=function(u){for(var l=u.length,f=0;f<l;++f)e.pools[e.pool].update(u.substr(f,1)),e.pool=e.pool===31?0:e.pool+1},e.collectInt=function(u,l){for(var f="",d=0;d<l;d+=8)f+=String.fromCharCode(u>>d&255);e.collect(f)},e.registerWorker=function(u){if(u===self)e.seedFile=function(f,d){function h(p){var y=p.data;y.forge&&y.forge.prng&&(self.removeEventListener("message",h),d(y.forge.prng.err,y.forge.prng.bytes))}self.addEventListener("message",h),self.postMessage({forge:{prng:{needed:f}}})};else{var l=function(f){var d=f.data;d.forge&&d.forge.prng&&e.seedFile(d.forge.prng.needed,function(h,p){u.postMessage({forge:{prng:{err:h,bytes:p}}})})};u.addEventListener("message",l)}},e}});var ci=N((B4,Rf)=>{var ht=ie();ns();fg();dg();De();(function(){if(ht.random&&ht.random.getBytes){Rf.exports=ht.random;return}(function(t){var e={},r=new Array(4),n=ht.util.createBuffer();e.formatKey=function(f){var d=ht.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),ht.aes._expandKey(f,!1)},e.formatSeed=function(f){var d=ht.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),f},e.cipher=function(f,d){return ht.aes._updateBlock(f,d,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},e.increment=function(f){return++f[3],f},e.md=ht.md.sha256;function i(){var f=ht.prng.create(e);return f.getBytes=function(d,h){return f.generate(d,h)},f.getBytesSync=function(d){return f.generate(d)},f}var s=i(),o=null,a=ht.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),ht.options.usePureJavaScript||!ht.util.isNodejs&&!o){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var l in navigator)try{typeof navigator[l]=="string"&&(u+=navigator[l])}catch{}s.collect(u),u=null}t&&(t().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),t().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!ht.random)ht.random=s;else for(var l in s)ht.random[l]=s[l];ht.random.createInstance=i,Rf.exports=ht.random})(typeof jQuery<"u"?jQuery:null)})()});var mg=N((O4,pg)=>{var ui=ie();De();ui.mgf=ui.mgf||{};var XS=pg.exports=ui.mgf.mgf1=ui.mgf1=ui.mgf1||{};XS.create=function(t){var e={generate:function(r,n){for(var i=new ui.util.ByteBuffer,s=Math.ceil(n/t.digestLength),o=0;o<s;o++){var a=new ui.util.ByteBuffer;a.putInt32(o),t.start(),t.update(r+a.getBytes()),i.putBuffer(t.digest())}return i.truncate(i.length()-n),i.getBytes()}};return e}});var gg=N((k4,yg)=>{var mc=ie();mg();yg.exports=mc.mgf=mc.mgf||{};mc.mgf.mgf1=mc.mgf1});var vg=N((U4,Eg)=>{var li=ie();ci();De();var jS=Eg.exports=li.pss=li.pss||{};jS.create=function(t){arguments.length===3&&(t={md:arguments[0],mgf:arguments[1],saltLength:arguments[2]});var e=t.md,r=t.mgf,n=e.digestLength,i=t.salt||null;typeof i=="string"&&(i=li.util.createBuffer(i));var s;if("saltLength"in t)s=t.saltLength;else if(i!==null)s=i.length();else throw new Error("Salt length not specified or specific salt not given.");if(i!==null&&i.length()!==s)throw new Error("Given salt length does not match length of given salt.");var o=t.prng||li.random,a={};return a.encode=function(c,u){var l,f=u-1,d=Math.ceil(f/8),h=c.digest().getBytes();if(d<n+s+2)throw new Error("Message is too long to encrypt.");var p;i===null?p=o.getBytesSync(s):p=i.bytes();var y=new li.util.ByteBuffer;y.fillWithByte(0,8),y.putBytes(h),y.putBytes(p),e.start(),e.update(y.getBytes());var g=e.digest().getBytes(),E=new li.util.ByteBuffer;E.fillWithByte(0,d-s-n-2),E.putByte(1),E.putBytes(p);var x=E.getBytes(),_=d-n-1,B=r.generate(g,_),D="";for(l=0;l<_;l++)D+=String.fromCharCode(x.charCodeAt(l)^B.charCodeAt(l));var L=65280>>8*d-f&255;return D=String.fromCharCode(D.charCodeAt(0)&~L)+D.substr(1),D+g+String.fromCharCode(188)},a.verify=function(c,u,l){var f,d=l-1,h=Math.ceil(d/8);if(u=u.substr(-h),h<n+s+2)throw new Error("Inconsistent parameters to PSS signature verification.");if(u.charCodeAt(h-1)!==188)throw new Error("Encoded message does not end in 0xBC.");var p=h-n-1,y=u.substr(0,p),g=u.substr(p,n),E=65280>>8*h-d&255;if(y.charCodeAt(0)&E)throw new Error("Bits beyond keysize not zero as expected.");var x=r.generate(g,p),_="";for(f=0;f<p;f++)_+=String.fromCharCode(y.charCodeAt(f)^x.charCodeAt(f));_=String.fromCharCode(_.charCodeAt(0)&~E)+_.substr(1);var B=h-n-s-2;for(f=0;f<B;f++)if(_.charCodeAt(f)!==0)throw new Error("Leftmost octets not zero as expected");if(_.charCodeAt(B)!==1)throw new Error("Inconsistent PSS signature, 0x01 marker not found");var D=_.substr(-s),L=new li.util.ByteBuffer;L.fillWithByte(0,8),L.putBytes(c),L.putBytes(D),e.start(),e.update(L.getBytes());var te=e.digest().getBytes();return g===te},a}});var Ec=N((M4,Ig)=>{var Nf=ie();Ig.exports=Nf.jsbn=Nf.jsbn||{};var Yr,ZS=0xdeadbeefcafe,wg=(ZS&16777215)==15715070;function I(t,e,r){this.data=[],t!=null&&(typeof t=="number"?this.fromNumber(t,e,r):e==null&&typeof t!="string"?this.fromString(t,256):this.fromString(t,e))}Nf.jsbn.BigInteger=I;function me(){return new I(null)}function JS(t,e,r,n,i,s){for(;--s>=0;){var o=e*this.data[t++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function e_(t,e,r,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var c=this.data[t]&32767,u=this.data[t++]>>15,l=a*c+u*o;c=o*c+((l&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(l>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function xg(t,e,r,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var c=this.data[t]&16383,u=this.data[t++]>>14,l=a*c+u*o;c=o*c+((l&16383)<<14)+r.data[n]+i,i=(c>>28)+(l>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(I.prototype.am=xg,Yr=28):wg&&navigator.appName=="Microsoft Internet Explorer"?(I.prototype.am=e_,Yr=30):wg&&navigator.appName!="Netscape"?(I.prototype.am=JS,Yr=26):(I.prototype.am=xg,Yr=28);I.prototype.DB=Yr;I.prototype.DM=(1<<Yr)-1;I.prototype.DV=1<<Yr;var Df=52;I.prototype.FV=Math.pow(2,Df);I.prototype.F1=Df-Yr;I.prototype.F2=2*Yr-Df;var t_="0123456789abcdefghijklmnopqrstuvwxyz",yc=new Array,as,Gt;as="0".charCodeAt(0);for(Gt=0;Gt<=9;++Gt)yc[as++]=Gt;as="a".charCodeAt(0);for(Gt=10;Gt<36;++Gt)yc[as++]=Gt;as="A".charCodeAt(0);for(Gt=10;Gt<36;++Gt)yc[as++]=Gt;function bg(t){return t_.charAt(t)}function Sg(t,e){var r=yc[t.charCodeAt(e)];return r??-1}function r_(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 n_(t){this.t=1,this.s=t<0?-1:0,t>0?this.data[0]=t:t<-1?this.data[0]=t+this.DV:this.t=0}function In(t){var e=me();return e.fromInt(t),e}function i_(t,e){var r;if(e==16)r=4;else if(e==8)r=3;else if(e==256)r=8;else if(e==2)r=1;else if(e==32)r=5;else if(e==4)r=2;else{this.fromRadix(t,e);return}this.t=0,this.s=0;for(var n=t.length,i=!1,s=0;--n>=0;){var o=r==8?t[n]&255:Sg(t,n);if(o<0){t.charAt(n)=="-"&&(i=!0);continue}i=!1,s==0?this.data[this.t++]=o:s+r>this.DB?(this.data[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this.data[this.t++]=o>>this.DB-s):this.data[this.t-1]|=o<<s,s+=r,s>=this.DB&&(s-=this.DB)}r==8&&t[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&I.ZERO.subTo(this,this)}function s_(){for(var t=this.s&this.DM;this.t>0&&this.data[this.t-1]==t;)--this.t}function o_(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(t==16)e=4;else if(t==8)e=3;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else return this.toRadix(t);var r=(1<<e)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%e;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=bg(n));o>=0;)a<e?(n=(this.data[o]&(1<<a)-1)<<e-a,n|=this.data[--o]>>(a+=this.DB-e)):(n=this.data[o]>>(a-=e)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=bg(n));return i?s:"0"}function a_(){var t=me();return I.ZERO.subTo(this,t),t}function c_(){return this.s<0?this.negate():this}function u_(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 gc(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 l_(){return this.t<=0?0:this.DB*(this.t-1)+gc(this.data[this.t-1]^this.s&this.DM)}function f_(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 h_(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 d_(t,e){var r=t%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(t/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)e.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)e.data[a]=0;e.data[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp()}function p_(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t){e.t=0;return}var n=t%this.DB,i=this.DB-n,s=(1<<n)-1;e.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)e.data[o-r-1]|=(this.data[o]&s)<<i,e.data[o-r]=this.data[o]>>n;n>0&&(e.data[this.t-r-1]|=(this.s&s)<<i),e.t=this.t-r,e.clamp()}function m_(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 y_(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e.data[i]=0;for(i=0;i<n.t;++i)e.data[i+r.t]=r.am(0,n.data[i],e,i,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&I.ZERO.subTo(e,e)}function g_(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 E_(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=me());var s=me(),o=this.s,a=t.s,c=this.DB-gc(n.data[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,r)):(n.copyTo(s),i.copyTo(r));var u=s.t,l=s.data[u-1];if(l!=0){var f=l*(1<<this.F1)+(u>1?s.data[u-2]>>this.F2:0),d=this.FV/f,h=(1<<this.F1)/f,p=1<<this.F2,y=r.t,g=y-u,E=e??me();for(s.dlShiftTo(g,E),r.compareTo(E)>=0&&(r.data[r.t++]=1,r.subTo(E,r)),I.ONE.dlShiftTo(u,E),E.subTo(s,s);s.t<u;)s.data[s.t++]=0;for(;--g>=0;){var x=r.data[--y]==l?this.DM:Math.floor(r.data[y]*d+(r.data[y-1]+p)*h);if((r.data[y]+=s.am(0,x,r,g,0,u))<x)for(s.dlShiftTo(g,E),r.subTo(E,r);r.data[y]<--x;)r.subTo(E,r)}e!=null&&(r.drShiftTo(u,e),o!=a&&I.ZERO.subTo(e,e)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&I.ZERO.subTo(r,r)}}}function v_(t){var e=me();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(I.ZERO)>0&&t.subTo(e,e),e}function fi(t){this.m=t}function w_(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t}function x_(t){return t}function b_(t){t.divRemTo(this.m,null,t)}function S_(t,e,r){t.multiplyTo(e,r),this.reduce(r)}function __(t,e){t.squareTo(e),this.reduce(e)}fi.prototype.convert=w_;fi.prototype.revert=x_;fi.prototype.reduce=b_;fi.prototype.mulTo=S_;fi.prototype.sqrTo=__;function A_(){if(this.t<1)return 0;var t=this.data[0];if(!(t&1))return 0;var e=t&3;return e=e*(2-(t&15)*e)&15,e=e*(2-(t&255)*e)&255,e=e*(2-((t&65535)*e&65535))&65535,e=e*(2-t*e%this.DV)%this.DV,e>0?this.DV-e:-e}function hi(t){this.m=t,this.mp=t.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}function C_(t){var e=me();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(I.ZERO)>0&&this.m.subTo(e,e),e}function I_(t){var e=me();return t.copyTo(e),this.reduce(e),e}function T_(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 R_(t,e){t.squareTo(e),this.reduce(e)}function N_(t,e,r){t.multiplyTo(e,r),this.reduce(r)}hi.prototype.convert=C_;hi.prototype.revert=I_;hi.prototype.reduce=T_;hi.prototype.mulTo=N_;hi.prototype.sqrTo=R_;function D_(){return(this.t>0?this.data[0]&1:this.s)==0}function L_(t,e){if(t>4294967295||t<1)return I.ONE;var r=me(),n=me(),i=e.convert(this),s=gc(t)-1;for(i.copyTo(r);--s>=0;)if(e.sqrTo(r,n),(t&1<<s)>0)e.mulTo(n,i,r);else{var o=r;r=n,n=o}return e.revert(r)}function P_(t,e){var r;return t<256||e.isEven()?r=new fi(e):r=new hi(e),this.exp(t,r)}I.prototype.copyTo=r_;I.prototype.fromInt=n_;I.prototype.fromString=i_;I.prototype.clamp=s_;I.prototype.dlShiftTo=f_;I.prototype.drShiftTo=h_;I.prototype.lShiftTo=d_;I.prototype.rShiftTo=p_;I.prototype.subTo=m_;I.prototype.multiplyTo=y_;I.prototype.squareTo=g_;I.prototype.divRemTo=E_;I.prototype.invDigit=A_;I.prototype.isEven=D_;I.prototype.exp=L_;I.prototype.toString=o_;I.prototype.negate=a_;I.prototype.abs=c_;I.prototype.compareTo=u_;I.prototype.bitLength=l_;I.prototype.mod=v_;I.prototype.modPowInt=P_;I.ZERO=In(0);I.ONE=In(1);function B_(){var t=me();return this.copyTo(t),t}function O_(){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 k_(){return this.t==0?this.s:this.data[0]<<24>>24}function U_(){return this.t==0?this.s:this.data[0]<<16>>16}function M_(t){return Math.floor(Math.LN2*this.DB/Math.log(t))}function F_(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function K_(t){if(t==null&&(t=10),this.signum()==0||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=In(r),i=me(),s=me(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(t).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(t)+o}function V_(t,e){this.fromInt(0),e==null&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,s=0,o=0,a=0;a<t.length;++a){var c=Sg(t,a);if(c<0){t.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=e*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(o,0)),i&&I.ZERO.subTo(this,this)}function q_(t,e,r){if(typeof e=="number")if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(I.ONE.shiftLeft(t-1),Lf,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(I.ONE.shiftLeft(t-1),this);else{var n=new Array,i=t&7;n.length=(t>>3)+1,e.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function H_(){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 z_(t){return this.compareTo(t)==0}function $_(t){return this.compareTo(t)<0?this:t}function G_(t){return this.compareTo(t)>0?this:t}function Y_(t,e,r){var n,i,s=Math.min(t.t,this.t);for(n=0;n<s;++n)r.data[n]=e(this.data[n],t.data[n]);if(t.t<this.t){for(i=t.s&this.DM,n=s;n<this.t;++n)r.data[n]=e(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<t.t;++n)r.data[n]=e(i,t.data[n]);r.t=t.t}r.s=e(this.s,t.s),r.clamp()}function W_(t,e){return t&e}function Q_(t){var e=me();return this.bitwiseTo(t,W_,e),e}function Lf(t,e){return t|e}function X_(t){var e=me();return this.bitwiseTo(t,Lf,e),e}function _g(t,e){return t^e}function j_(t){var e=me();return this.bitwiseTo(t,_g,e),e}function Ag(t,e){return t&~e}function Z_(t){var e=me();return this.bitwiseTo(t,Ag,e),e}function J_(){for(var t=me(),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 eA(t){var e=me();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e}function tA(t){var e=me();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e}function rA(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 nA(){for(var t=0;t<this.t;++t)if(this.data[t]!=0)return t*this.DB+rA(this.data[t]);return this.s<0?this.t*this.DB:-1}function iA(t){for(var e=0;t!=0;)t&=t-1,++e;return e}function sA(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=iA(this.data[r]^e);return t}function oA(t){var e=Math.floor(t/this.DB);return e>=this.t?this.s!=0:(this.data[e]&1<<t%this.DB)!=0}function aA(t,e){var r=I.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r}function cA(t){return this.changeBit(t,Lf)}function uA(t){return this.changeBit(t,Ag)}function lA(t){return this.changeBit(t,_g)}function fA(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 hA(t){var e=me();return this.addTo(t,e),e}function dA(t){var e=me();return this.subTo(t,e),e}function pA(t){var e=me();return this.multiplyTo(t,e),e}function mA(t){var e=me();return this.divRemTo(t,e,null),e}function yA(t){var e=me();return this.divRemTo(t,null,e),e}function gA(t){var e=me(),r=me();return this.divRemTo(t,e,r),new Array(e,r)}function EA(t){this.data[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()}function vA(t,e){if(t!=0){for(;this.t<=e;)this.data[this.t++]=0;for(this.data[e]+=t;this.data[e]>=this.DV;)this.data[e]-=this.DV,++e>=this.t&&(this.data[this.t++]=0),++this.data[e]}}function ao(){}function Cg(t){return t}function wA(t,e,r){t.multiplyTo(e,r)}function xA(t,e){t.squareTo(e)}ao.prototype.convert=Cg;ao.prototype.revert=Cg;ao.prototype.mulTo=wA;ao.prototype.sqrTo=xA;function bA(t){return this.exp(t,new ao)}function SA(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 cs(t){this.r2=me(),this.q3=me(),I.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}function AA(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=me();return t.copyTo(e),this.reduce(e),e}function CA(t){return t}function IA(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 TA(t,e){t.squareTo(e),this.reduce(e)}function RA(t,e,r){t.multiplyTo(e,r),this.reduce(r)}cs.prototype.convert=AA;cs.prototype.revert=CA;cs.prototype.reduce=IA;cs.prototype.mulTo=RA;cs.prototype.sqrTo=TA;function NA(t,e){var r=t.bitLength(),n,i=In(1),s;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?s=new fi(e):e.isEven()?s=new cs(e):s=new hi(e);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=me();for(s.sqrTo(o[1],l);a<=u;)o[a]=me(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=t.t-1,d,h=!0,p=me(),y;for(r=gc(t.data[f])-1;f>=0;){for(r>=c?d=t.data[f]>>r-c&u:(d=(t.data[f]&(1<<r+1)-1)<<c-r,f>0&&(d|=t.data[f-1]>>this.DB+r-c)),a=n;!(d&1);)d>>=1,--a;if((r-=a)<0&&(r+=this.DB,--f),h)o[d].copyTo(i),h=!1;else{for(;a>1;)s.sqrTo(i,p),s.sqrTo(p,i),a-=2;a>0?s.sqrTo(i,p):(y=i,i=p,p=y),s.mulTo(p,o[d],i)}for(;f>=0&&!(t.data[f]&1<<r);)s.sqrTo(i,p),y=i,i=p,p=y,--r<0&&(r=this.DB-1,--f)}return s.revert(i)}function DA(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return e;for(i<s&&(s=i),s>0&&(e.rShiftTo(s,e),r.rShiftTo(s,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function LA(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 PA(t){var e=t.isEven();if(this.isEven()&&e||t.signum()==0)return I.ZERO;for(var r=t.clone(),n=this.clone(),i=In(1),s=In(0),o=In(0),a=In(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),e?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(t,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(t,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),e?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(t,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(t,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),e&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),e&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(I.ONE)!=0)return I.ZERO;if(a.compareTo(t)>=0)return a.subtract(t);if(a.signum()<0)a.addTo(t,a);else return a;return a.signum()<0?a.add(t):a}var ar=[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],BA=(1<<26)/ar[ar.length-1];function OA(t){var e,r=this.abs();if(r.t==1&&r.data[0]<=ar[ar.length-1]){for(e=0;e<ar.length;++e)if(r.data[0]==ar[e])return!0;return!1}if(r.isEven())return!1;for(e=1;e<ar.length;){for(var n=ar[e],i=e+1;i<ar.length&&n<BA;)n*=ar[i++];for(n=r.modInt(n);e<i;)if(n%ar[e++]==0)return!1}return r.millerRabin(t)}function kA(t){var e=this.subtract(I.ONE),r=e.getLowestSetBit();if(r<=0)return!1;for(var n=e.shiftRight(r),i=UA(),s,o=0;o<t;++o){do s=new I(this.bitLength(),i);while(s.compareTo(I.ONE)<=0||s.compareTo(e)>=0);var a=s.modPow(n,this);if(a.compareTo(I.ONE)!=0&&a.compareTo(e)!=0){for(var c=1;c++<r&&a.compareTo(e)!=0;)if(a=a.modPowInt(2,this),a.compareTo(I.ONE)==0)return!1;if(a.compareTo(e)!=0)return!1}}return!0}function UA(){return{nextBytes:function(t){for(var e=0;e<t.length;++e)t[e]=Math.floor(Math.random()*256)}}}I.prototype.chunkSize=M_;I.prototype.toRadix=K_;I.prototype.fromRadix=V_;I.prototype.fromNumber=q_;I.prototype.bitwiseTo=Y_;I.prototype.changeBit=aA;I.prototype.addTo=fA;I.prototype.dMultiply=EA;I.prototype.dAddOffset=vA;I.prototype.multiplyLowerTo=SA;I.prototype.multiplyUpperTo=_A;I.prototype.modInt=LA;I.prototype.millerRabin=kA;I.prototype.clone=B_;I.prototype.intValue=O_;I.prototype.byteValue=k_;I.prototype.shortValue=U_;I.prototype.signum=F_;I.prototype.toByteArray=H_;I.prototype.equals=z_;I.prototype.min=$_;I.prototype.max=G_;I.prototype.and=Q_;I.prototype.or=X_;I.prototype.xor=j_;I.prototype.andNot=Z_;I.prototype.not=J_;I.prototype.shiftLeft=eA;I.prototype.shiftRight=tA;I.prototype.getLowestSetBit=nA;I.prototype.bitCount=sA;I.prototype.testBit=oA;I.prototype.setBit=cA;I.prototype.clearBit=uA;I.prototype.flipBit=lA;I.prototype.add=hA;I.prototype.subtract=dA;I.prototype.multiply=pA;I.prototype.divide=mA;I.prototype.remainder=yA;I.prototype.divideAndRemainder=gA;I.prototype.modPow=NA;I.prototype.modInverse=PA;I.prototype.pow=bA;I.prototype.gcd=DA;I.prototype.isProbablePrime=OA});var Lg=N((F4,Dg)=>{var Ar=ie();Cn();De();var Rg=Dg.exports=Ar.sha1=Ar.sha1||{};Ar.md.sha1=Ar.md.algorithms.sha1=Rg;Rg.create=function(){Ng||MA();var t=null,e=Ar.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Ar.util.createBuffer(),t={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Ar.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),Tg(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Ar.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Pf.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4};Tg(f,r,i);var d=Ar.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d},n};var Pf=null,Ng=!1;function MA(){Pf=String.fromCharCode(128),Pf+=Ar.util.fillString(String.fromCharCode(0),64),Ng=!0}function Tg(t,e,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=t.h0,s=t.h1,o=t.h2,a=t.h3,c=t.h4,l=0;l<16;++l)n=r.getInt32(),e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<20;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<32;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<40;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<60;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s&o|a&(s^o),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<80;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;t.h0=t.h0+i|0,t.h1=t.h1+s|0,t.h2=t.h2+o|0,t.h3=t.h3+a|0,t.h4=t.h4+c|0,f-=64}}});var Og=N((K4,Bg)=>{var Cr=ie();De();ci();Lg();var Pg=Bg.exports=Cr.pkcs1=Cr.pkcs1||{};Pg.encode_rsa_oaep=function(t,e,r){var n,i,s,o;typeof r=="string"?(n=r,i=arguments[3]||void 0,s=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md)),s?s.start():s=Cr.md.sha1.create(),o||(o=s);var a=Math.ceil(t.n.bitLength()/8),c=a-2*s.digestLength-2;if(e.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=e.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",d=c-e.length,h=0;h<d;h++)f+="\0";var p=l.getBytes()+f+""+e;if(!i)i=Cr.random.getBytes(s.digestLength);else if(i.length!==s.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=s.digestLength,u}var y=vc(i,a-s.digestLength-1,o),g=Cr.util.xorBytes(p,y,p.length),E=vc(g,s.digestLength,o),x=Cr.util.xorBytes(i,E,i.length);return"\0"+x+g};Pg.decode_rsa_oaep=function(t,e,r){var n,i,s;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md));var o=Math.ceil(t.n.bitLength()/8);if(e.length!==o){var g=new Error("RSAES-OAEP encoded message length is invalid.");throw g.length=e.length,g.expectedLength=o,g}if(i===void 0?i=Cr.md.sha1.create():i.start(),s||(s=i),o<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=e.charAt(0),u=e.substring(1,i.digestLength+1),l=e.substring(1+i.digestLength),f=vc(l,i.digestLength,s),d=Cr.util.xorBytes(u,f,u.length),h=vc(d,o-i.digestLength-1,s),p=Cr.util.xorBytes(l,h,l.length),y=p.substring(0,i.digestLength),g=c!=="\0",E=0;E<i.digestLength;++E)g|=a.charAt(E)!==y.charAt(E);for(var x=1,_=i.digestLength,B=i.digestLength;B<p.length;B++){var D=p.charCodeAt(B),L=D&1^1,te=x?65534:0;g|=D&te,x=x&L,_+=x}if(g||p.charCodeAt(_)!==1)throw new Error("Invalid RSAES-OAEP padding.");return p.substring(_+1)};function vc(t,e,r){r||(r=Cr.md.sha1.create());for(var n="",i=Math.ceil(e/r.digestLength),s=0;s<i;++s){var o=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);r.start(),r.update(t+o),n+=r.digest().getBytes()}return n.substring(0,e)}});var kg=N((V4,Bf)=>{var Tn=ie();De();Ec();ci();(function(){if(Tn.prime){Bf.exports=Tn.prime;return}var t=Bf.exports=Tn.prime=Tn.prime||{},e=Tn.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new e(null);n.fromInt(30);var i=function(f,d){return f|d};t.generateProbablePrime=function(f,d,h){typeof d=="function"&&(h=d,d={}),d=d||{};var p=d.algorithm||"PRIMEINC";typeof p=="string"&&(p={name:p}),p.options=p.options||{};var y=d.prng||Tn.random,g={nextBytes:function(E){for(var x=y.getBytesSync(E.length),_=0;_<E.length;++_)E[_]=x.charCodeAt(_)}};if(p.name==="PRIMEINC")return s(f,g,p.options,h);throw new Error("Invalid prime generation algorithm: "+p.name)};function s(f,d,h,p){return"workers"in h?c(f,d,h,p):o(f,d,h,p)}function o(f,d,h,p){var y=u(f,d),g=0,E=l(y.bitLength());"millerRabinTests"in h&&(E=h.millerRabinTests);var x=10;"maxBlockTime"in h&&(x=h.maxBlockTime),a(y,f,d,g,E,x,p)}function a(f,d,h,p,y,g,E){var x=+new Date;do{if(f.bitLength()>d&&(f=u(d,h)),f.isProbablePrime(y))return E(null,f);f.dAddOffset(r[p++%8],0)}while(g<0||+new Date-x<g);Tn.util.setImmediate(function(){a(f,d,h,p,y,g,E)})}function c(f,d,h,p){if(typeof Worker>"u")return o(f,d,h,p);var y=u(f,d),g=h.workers,E=h.workLoad||100,x=E*30/8,_=h.workerScript||"forge/prime.worker.js";if(g===-1)return Tn.util.estimateCores(function(D,L){D&&(L=2),g=L-1,B()});B();function B(){g=Math.max(1,g);for(var D=[],L=0;L<g;++L)D[L]=new Worker(_);for(var te=g,L=0;L<g;++L)D[L].addEventListener("message",st);var ce=!1;function st(Jt){if(!ce){--te;var It=Jt.data;if(It.found){for(var Et=0;Et<D.length;++Et)D[Et].terminate();return ce=!0,p(null,new e(It.prime,16))}y.bitLength()>f&&(y=u(f,d));var Ti=y.toString(16);Jt.target.postMessage({hex:Ti,workLoad:E}),y.dAddOffset(x,0)}}}}function u(f,d){var h=new e(f,d),p=f-1;return h.testBit(p)||h.bitwiseTo(e.ONE.shiftLeft(p),i,h),h.dAddOffset(31-h.mod(n).byteValue(),0),h}function l(f){return f<=100?27:f<=150?18:f<=200?15:f<=250?12:f<=300?9:f<=350?8:f<=400?7:f<=500?6:f<=600?5:f<=800?4:f<=1250?3:2}})()});var co=N((q4,Hg)=>{var z=ie();An();Ec();is();Og();kg();ci();De();typeof ue>"u"&&(ue=z.jsbn.BigInteger);var ue,Of=z.util.isNodejs?ei():null,S=z.asn1,Yt=z.util;z.pki=z.pki||{};Hg.exports=z.pki.rsa=z.rsa=z.rsa||{};var Z=z.pki,FA=[6,4,2,4,2,4,6,2],KA={name:"PrivateKeyInfo",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:S.Class.UNIVERSAL,type:S.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:S.Class.UNIVERSAL,type:S.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},VA={name:"RSAPrivateKey",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},qA={name:"RSAPublicKey",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:S.Class.UNIVERSAL,type:S.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},HA=z.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:S.Class.UNIVERSAL,type:S.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:S.Class.UNIVERSAL,type:S.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},zA={name:"DigestInfo",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:S.Class.UNIVERSAL,type:S.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:S.Class.UNIVERSAL,type:S.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:S.Class.UNIVERSAL,type:S.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:S.Class.UNIVERSAL,type:S.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},$A=function(t){var e;if(t.algorithm in Z.oids)e=Z.oids[t.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=t.algorithm,r}var n=S.oidToDer(e).getBytes(),i=S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[]),s=S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[]);s.value.push(S.create(S.Class.UNIVERSAL,S.Type.OID,!1,n)),s.value.push(S.create(S.Class.UNIVERSAL,S.Type.NULL,!1,""));var o=S.create(S.Class.UNIVERSAL,S.Type.OCTETSTRING,!1,t.digest().getBytes());return i.value.push(s),i.value.push(o),S.toDer(i).getBytes()},Vg=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(ue.ONE))),e.dQ||(e.dQ=e.d.mod(e.q.subtract(ue.ONE))),e.qInv||(e.qInv=e.q.modInverse(e.p));var n;do n=new ue(z.util.bytesToHex(z.random.getBytes(e.n.bitLength()/8)),16);while(n.compareTo(e.n)>=0||!n.gcd(e.n).equals(ue.ONE));t=t.multiply(n.modPow(e.e,e.n)).mod(e.n);for(var i=t.mod(e.p).modPow(e.dP,e.p),s=t.mod(e.q).modPow(e.dQ,e.q);i.compareTo(s)<0;)i=i.add(e.p);var o=i.subtract(s).multiply(e.qInv).mod(e.p).multiply(e.q).add(s);return o=o.multiply(n.modInverse(e.n)).mod(e.n),o};Z.rsa.encrypt=function(t,e,r){var n=r,i,s=Math.ceil(e.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=qg(t,e,r)):(i=z.util.createBuffer(),i.putBytes(t));for(var o=new ue(i.toHex(),16),a=Vg(o,e,n),c=a.toString(16),u=z.util.createBuffer(),l=s-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(z.util.hexToBytes(c)),u.getBytes()};Z.rsa.decrypt=function(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8);if(t.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=t.length,s.expected=i,s}var o=new ue(z.util.createBuffer(t).toHex(),16);if(o.compareTo(e.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=Vg(o,e,r),c=a.toString(16),u=z.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(z.util.hexToBytes(c)),n!==!1?wc(u.getBytes(),e,r):u.getBytes()};Z.rsa.createKeyPairGenerationState=function(t,e,r){typeof t=="string"&&(t=parseInt(t,10)),t=t||2048,r=r||{};var n=r.prng||z.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},s=r.algorithm||"PRIMEINC",o;if(s==="PRIMEINC")o={algorithm:s,state:0,bits:t,rng:i,eInt:e||65537,e:new ue(null),p:null,q:null,qBits:t>>1,pBits:t-(t>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};Z.rsa.stepKeyPairGenerationState=function(t,e){"algorithm"in t||(t.algorithm="PRIMEINC");var r=new ue(null);r.fromInt(30);for(var n=0,i=function(f,d){return f|d},s=+new Date,o,a=0;t.keys===null&&(e<=0||a<e);){if(t.state===0){var c=t.p===null?t.pBits:t.qBits,u=c-1;t.pqState===0?(t.num=new ue(c,t.rng),t.num.testBit(u)||t.num.bitwiseTo(ue.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(YA(t.num.bitLength()))?++t.pqState:t.num.dAddOffset(FA[n++%8],0):t.pqState===2?t.pqState=t.num.subtract(ue.ONE).gcd(t.e).compareTo(ue.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(ue.ONE),t.q1=t.q.subtract(ue.ONE),t.phi=t.p1.multiply(t.q1),++t.state;else if(t.state===3)t.phi.gcd(t.e).compareTo(ue.ONE)===0?++t.state:(t.p=null,t.q=null,t.state=0);else if(t.state===4)t.n=t.p.multiply(t.q),t.n.bitLength()===t.bits?++t.state:(t.q=null,t.state=0);else if(t.state===5){var l=t.e.modInverse(t.phi);t.keys={privateKey:Z.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:Z.rsa.setPublicKey(t.n,t.e)}}o=+new Date,a+=o-s,s=o}return t.keys!==null};Z.rsa.generateKeyPair=function(t,e,r,n){if(arguments.length===1?typeof t=="object"?(r=t,t=void 0):typeof t=="function"&&(n=t,t=void 0):arguments.length===2?typeof t=="number"?typeof e=="function"?(n=e,e=void 0):typeof e!="number"&&(r=e,e=void 0):(r=t,n=e,t=void 0,e=void 0):arguments.length===3&&(typeof e=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=e,e=void 0)),r=r||{},t===void 0&&(t=r.bits||2048),e===void 0&&(e=r.e||65537),!z.options.usePureJavaScript&&!r.prng&&t>=256&&t<=16384&&(e===65537||e===3)){if(n){if(Ug("generateKeyPair"))return Of.generateKeyPair("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:Z.privateKeyFromPem(u),publicKey:Z.publicKeyFromPem(c)})});if(Mg("generateKey")&&Mg("exportKey"))return Yt.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:Kg(e),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Yt.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=Z.privateKeyFromAsn1(S.fromDer(z.util.createBuffer(a)));n(null,{privateKey:c,publicKey:Z.setRsaPublicKey(c.n,c.e)})}});if(Fg("generateKey")&&Fg("exportKey")){var i=Yt.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:Kg(e),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=Yt.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,d=Z.privateKeyFromAsn1(S.fromDer(z.util.createBuffer(f)));n(null,{privateKey:d,publicKey:Z.setRsaPublicKey(d.n,d.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(Ug("generateKeyPairSync")){var s=Of.generateKeyPairSync("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Z.privateKeyFromPem(s.privateKey),publicKey:Z.publicKeyFromPem(s.publicKey)}}}var o=Z.rsa.createKeyPairGenerationState(t,e,r);if(!n)return Z.rsa.stepKeyPairGenerationState(o,0),o.keys;GA(o,r,n)};Z.setRsaPublicKey=Z.rsa.setPublicKey=function(t,e){var r={n:t,e};return r.encrypt=function(n,i,s){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,u){return qg(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return z.pkcs1.encode_rsa_oaep(c,a,s)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var o=i.encode(n,r,!0);return Z.rsa.encrypt(o,r,!0)},r.verify=function(n,i,s,o){typeof s=="string"?s=s.toUpperCase():s===void 0&&(s="RSASSA-PKCS1-V1_5"),o===void 0&&(o={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in o||(o._parseAllDigestBytes=!0),s==="RSASSA-PKCS1-V1_5"?s={verify:function(c,u){u=wc(u,r,!0);var l=S.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},d=[];if(!S.validate(l,zA,f,d)){var h=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw h.errors=d,h}var p=S.derToOid(f.algorithmIdentifier);if(!(p===z.oids.md2||p===z.oids.md5||p===z.oids.sha1||p===z.oids.sha224||p===z.oids.sha256||p===z.oids.sha384||p===z.oids.sha512||p===z.oids["sha512-224"]||p===z.oids["sha512-256"])){var h=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw h.oid=p,h}if((p===z.oids.md2||p===z.oids.md5)&&!("parameters"in f))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===f.digest}}:(s==="NONE"||s==="NULL"||s===null)&&(s={verify:function(c,u){return u=wc(u,r,!0),c===u}});var a=Z.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};Z.setRsaPrivateKey=Z.rsa.setPrivateKey=function(t,e,r,n,i,s,o,a){var c={n:t,e,d:r,p:n,q:i,dP:s,dQ:o,qInv:a};return c.decrypt=function(u,l,f){typeof l=="string"?l=l.toUpperCase():l===void 0&&(l="RSAES-PKCS1-V1_5");var d=Z.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:wc};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(h,p){return z.pkcs1.decode_rsa_oaep(p,h,f)}};else if(["RAW","NONE","NULL",null].indexOf(l)!==-1)l={decode:function(h){return h}};else throw new Error('Unsupported encryption scheme: "'+l+'".');return l.decode(d,c,!1)},c.sign=function(u,l){var f=!1;typeof l=="string"&&(l=l.toUpperCase()),l===void 0||l==="RSASSA-PKCS1-V1_5"?(l={encode:$A},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var d=l.encode(u,c.n.bitLength());return Z.rsa.encrypt(d,c,f)},c};Z.wrapRsaPrivateKey=function(t){return S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,S.integerToDer(0).getBytes()),S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.OID,!1,S.oidToDer(Z.oids.rsaEncryption).getBytes()),S.create(S.Class.UNIVERSAL,S.Type.NULL,!1,"")]),S.create(S.Class.UNIVERSAL,S.Type.OCTETSTRING,!1,S.toDer(t).getBytes())])};Z.privateKeyFromAsn1=function(t){var e={},r=[];if(S.validate(t,KA,e,r)&&(t=S.fromDer(z.util.createBuffer(e.privateKey))),e={},r=[],!S.validate(t,VA,e,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,s,o,a,c,u,l,f;return i=z.util.createBuffer(e.privateKeyModulus).toHex(),s=z.util.createBuffer(e.privateKeyPublicExponent).toHex(),o=z.util.createBuffer(e.privateKeyPrivateExponent).toHex(),a=z.util.createBuffer(e.privateKeyPrime1).toHex(),c=z.util.createBuffer(e.privateKeyPrime2).toHex(),u=z.util.createBuffer(e.privateKeyExponent1).toHex(),l=z.util.createBuffer(e.privateKeyExponent2).toHex(),f=z.util.createBuffer(e.privateKeyCoefficient).toHex(),Z.setRsaPrivateKey(new ue(i,16),new ue(s,16),new ue(o,16),new ue(a,16),new ue(c,16),new ue(u,16),new ue(l,16),new ue(f,16))};Z.privateKeyToAsn1=Z.privateKeyToRSAPrivateKey=function(t){return S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,S.integerToDer(0).getBytes()),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.n)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.e)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.d)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.p)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.q)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.dP)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.dQ)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.qInv))])};Z.publicKeyFromAsn1=function(t){var e={},r=[];if(S.validate(t,HA,e,r)){var n=S.derToOid(e.publicKeyOid);if(n!==Z.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}t=e.rsaPublicKey}if(r=[],!S.validate(t,qA,e,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var s=z.util.createBuffer(e.publicKeyModulus).toHex(),o=z.util.createBuffer(e.publicKeyExponent).toHex();return Z.setRsaPublicKey(new ue(s,16),new ue(o,16))};Z.publicKeyToAsn1=Z.publicKeyToSubjectPublicKeyInfo=function(t){return S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.OID,!1,S.oidToDer(Z.oids.rsaEncryption).getBytes()),S.create(S.Class.UNIVERSAL,S.Type.NULL,!1,"")]),S.create(S.Class.UNIVERSAL,S.Type.BITSTRING,!1,[Z.publicKeyToRSAPublicKey(t)])])};Z.publicKeyToRSAPublicKey=function(t){return S.create(S.Class.UNIVERSAL,S.Type.SEQUENCE,!0,[S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.n)),S.create(S.Class.UNIVERSAL,S.Type.INTEGER,!1,Ir(t.e))])};function qg(t,e,r){var n=z.util.createBuffer(),i=Math.ceil(e.n.bitLength()/8);if(t.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=t.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-t.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<o;++c)n.putByte(a)}else for(;o>0;){for(var u=0,l=z.random.getBytes(o),c=0;c<o;++c)a=l.charCodeAt(c),a===0?++u:n.putByte(a);o=u}return n.putByte(0),n.putBytes(t),n}function wc(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8),s=z.util.createBuffer(t),o=s.getByte(),a=s.getByte();if(o!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(s.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;s.length()>1;){if(s.getByte()!==255){--s.read;break}++c}else if(a===2)for(c=0;s.length()>1;){if(s.getByte()===0){--s.read;break}++c}var l=s.getByte();if(l!==0||c!==i-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function GA(t,e,r){typeof e=="function"&&(r=e,e={}),e=e||{};var n={algorithm:{name:e.algorithm||"PRIMEINC",options:{workers:e.workers||2,workLoad:e.workLoad||100,workerScript:e.workerScript}}};"prng"in e&&(n.prng=e.prng),i();function i(){s(t.pBits,function(a,c){if(a)return r(a);if(t.p=c,t.q!==null)return o(a,t.q);s(t.qBits,o)})}function s(a,c){z.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(t.q=c,t.p.compareTo(t.q)<0){var u=t.p;t.p=t.q,t.q=u}if(t.p.subtract(ue.ONE).gcd(t.e).compareTo(ue.ONE)!==0){t.p=null,i();return}if(t.q.subtract(ue.ONE).gcd(t.e).compareTo(ue.ONE)!==0){t.q=null,s(t.qBits,o);return}if(t.p1=t.p.subtract(ue.ONE),t.q1=t.q.subtract(ue.ONE),t.phi=t.p1.multiply(t.q1),t.phi.gcd(t.e).compareTo(ue.ONE)!==0){t.p=t.q=null,i();return}if(t.n=t.p.multiply(t.q),t.n.bitLength()!==t.bits){t.q=null,s(t.qBits,o);return}var l=t.e.modInverse(t.phi);t.keys={privateKey:Z.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:Z.rsa.setPublicKey(t.n,t.e)},r(null,t.keys)}}function Ir(t){var e=t.toString(16);e[0]>="8"&&(e="00"+e);var r=z.util.hexToBytes(e);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function YA(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 Ug(t){return z.util.isNodejs&&typeof Of[t]=="function"}function Mg(t){return typeof Yt.globalScope<"u"&&typeof Yt.globalScope.crypto=="object"&&typeof Yt.globalScope.crypto.subtle=="object"&&typeof Yt.globalScope.crypto.subtle[t]=="function"}function Fg(t){return typeof Yt.globalScope<"u"&&typeof Yt.globalScope.msCrypto=="object"&&typeof Yt.globalScope.msCrypto.subtle=="object"&&typeof Yt.globalScope.msCrypto.subtle[t]=="function"}function Kg(t){for(var e=z.util.hexToBytes(t.toString(16)),r=new Uint8Array(e.length),n=0;n<e.length;++n)r[n]=e.charCodeAt(n);return r}});var Uf=N((H4,Wg)=>{var $=ie();ns();An();uc();Cn();gg();is();hc();vg();co();De();var m=$.asn1,P=Wg.exports=$.pki=$.pki||{},le=P.oids,Ge={};Ge.CN=le.commonName;Ge.commonName="CN";Ge.C=le.countryName;Ge.countryName="C";Ge.L=le.localityName;Ge.localityName="L";Ge.ST=le.stateOrProvinceName;Ge.stateOrProvinceName="ST";Ge.O=le.organizationName;Ge.organizationName="O";Ge.OU=le.organizationalUnitName;Ge.organizationalUnitName="OU";Ge.E=le.emailAddress;Ge.emailAddress="E";var $g=$.pki.rsa.publicKeyValidator,WA={name:"Certificate",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"tbsCertificate",value:[{name:"Certificate.TBSCertificate.version",tagClass:m.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.version.integer",tagClass:m.Class.UNIVERSAL,type:m.Type.INTEGER,constructed:!1,capture:"certVersion"}]},{name:"Certificate.TBSCertificate.serialNumber",tagClass:m.Class.UNIVERSAL,type:m.Type.INTEGER,constructed:!1,capture:"certSerialNumber"},{name:"Certificate.TBSCertificate.signature",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate.signature.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"certinfoSignatureOid"},{name:"Certificate.TBSCertificate.signature.parameters",tagClass:m.Class.UNIVERSAL,optional:!0,captureAsn1:"certinfoSignatureParams"}]},{name:"Certificate.TBSCertificate.issuer",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"certIssuer"},{name:"Certificate.TBSCertificate.validity",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate.validity.notBefore (utc)",tagClass:m.Class.UNIVERSAL,type:m.Type.UTCTIME,constructed:!1,optional:!0,capture:"certValidity1UTCTime"},{name:"Certificate.TBSCertificate.validity.notBefore (generalized)",tagClass:m.Class.UNIVERSAL,type:m.Type.GENERALIZEDTIME,constructed:!1,optional:!0,capture:"certValidity2GeneralizedTime"},{name:"Certificate.TBSCertificate.validity.notAfter (utc)",tagClass:m.Class.UNIVERSAL,type:m.Type.UTCTIME,constructed:!1,optional:!0,capture:"certValidity3UTCTime"},{name:"Certificate.TBSCertificate.validity.notAfter (generalized)",tagClass:m.Class.UNIVERSAL,type:m.Type.GENERALIZEDTIME,constructed:!1,optional:!0,capture:"certValidity4GeneralizedTime"}]},{name:"Certificate.TBSCertificate.subject",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"certSubject"},$g,{name:"Certificate.TBSCertificate.issuerUniqueID",tagClass:m.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.issuerUniqueID.id",tagClass:m.Class.UNIVERSAL,type:m.Type.BITSTRING,constructed:!1,captureBitStringValue:"certIssuerUniqueId"}]},{name:"Certificate.TBSCertificate.subjectUniqueID",tagClass:m.Class.CONTEXT_SPECIFIC,type:2,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.subjectUniqueID.id",tagClass:m.Class.UNIVERSAL,type:m.Type.BITSTRING,constructed:!1,captureBitStringValue:"certSubjectUniqueId"}]},{name:"Certificate.TBSCertificate.extensions",tagClass:m.Class.CONTEXT_SPECIFIC,type:3,constructed:!0,captureAsn1:"certExtensions",optional:!0}]},{name:"Certificate.signatureAlgorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.signatureAlgorithm.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"certSignatureOid"},{name:"Certificate.TBSCertificate.signature.parameters",tagClass:m.Class.UNIVERSAL,optional:!0,captureAsn1:"certSignatureParams"}]},{name:"Certificate.signatureValue",tagClass:m.Class.UNIVERSAL,type:m.Type.BITSTRING,constructed:!1,captureBitStringValue:"certSignature"}]},QA={name:"rsapss",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"rsapss.hashAlgorithm",tagClass:m.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,value:[{name:"rsapss.hashAlgorithm.AlgorithmIdentifier",tagClass:m.Class.UNIVERSAL,type:m.Class.SEQUENCE,constructed:!0,optional:!0,value:[{name:"rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"hashOid"}]}]},{name:"rsapss.maskGenAlgorithm",tagClass:m.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier",tagClass:m.Class.UNIVERSAL,type:m.Class.SEQUENCE,constructed:!0,optional:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"maskGenOid"},{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.params",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"maskGenHashOid"}]}]}]},{name:"rsapss.saltLength",tagClass:m.Class.CONTEXT_SPECIFIC,type:2,optional:!0,value:[{name:"rsapss.saltLength.saltLength",tagClass:m.Class.UNIVERSAL,type:m.Class.INTEGER,constructed:!1,capture:"saltLength"}]},{name:"rsapss.trailerField",tagClass:m.Class.CONTEXT_SPECIFIC,type:3,optional:!0,value:[{name:"rsapss.trailer.trailer",tagClass:m.Class.UNIVERSAL,type:m.Class.INTEGER,constructed:!1,capture:"trailer"}]}]},XA={name:"CertificationRequestInfo",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"certificationRequestInfo",value:[{name:"CertificationRequestInfo.integer",tagClass:m.Class.UNIVERSAL,type:m.Type.INTEGER,constructed:!1,capture:"certificationRequestInfoVersion"},{name:"CertificationRequestInfo.subject",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"certificationRequestInfoSubject"},$g,{name:"CertificationRequestInfo.attributes",tagClass:m.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"certificationRequestInfoAttributes",value:[{name:"CertificationRequestInfo.attributes",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"CertificationRequestInfo.attributes.type",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1},{name:"CertificationRequestInfo.attributes.value",tagClass:m.Class.UNIVERSAL,type:m.Type.SET,constructed:!0}]}]}]},jA={name:"CertificationRequest",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,captureAsn1:"csr",value:[XA,{name:"CertificationRequest.signatureAlgorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"CertificationRequest.signatureAlgorithm.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"csrSignatureOid"},{name:"CertificationRequest.signatureAlgorithm.parameters",tagClass:m.Class.UNIVERSAL,optional:!0,captureAsn1:"csrSignatureParams"}]},{name:"CertificationRequest.signature",tagClass:m.Class.UNIVERSAL,type:m.Type.BITSTRING,constructed:!1,captureBitStringValue:"csrSignature"}]};P.RDNAttributesAsArray=function(t,e){for(var r=[],n,i,s,o=0;o<t.value.length;++o){n=t.value[o];for(var a=0;a<n.value.length;++a)s={},i=n.value[a],s.type=m.derToOid(i.value[0].value),s.value=i.value[1].value,s.valueTagClass=i.value[1].type,s.type in le&&(s.name=le[s.type],s.name in Ge&&(s.shortName=Ge[s.name])),e&&(e.update(s.type),e.update(s.value)),r.push(s)}return r};P.CRIAttributesAsArray=function(t){for(var e=[],r=0;r<t.length;++r)for(var n=t[r],i=m.derToOid(n.value[0].value),s=n.value[1].value,o=0;o<s.length;++o){var a={};if(a.type=i,a.value=s[o].value,a.valueTagClass=s[o].type,a.type in le&&(a.name=le[a.type],a.name in Ge&&(a.shortName=Ge[a.name])),a.type===le.extensionRequest){a.extensions=[];for(var c=0;c<a.value.length;++c)a.extensions.push(P.certificateExtensionFromAsn1(a.value[c]))}e.push(a)}return e};function Rn(t,e){typeof e=="string"&&(e={shortName:e});for(var r=null,n,i=0;r===null&&i<t.attributes.length;++i)n=t.attributes[i],(e.type&&e.type===n.type||e.name&&e.name===n.name||e.shortName&&e.shortName===n.shortName)&&(r=n);return r}var xc=function(t,e,r){var n={};if(t!==le["RSASSA-PSS"])return n;r&&(n={hash:{algorithmOid:le.sha1},mgf:{algorithmOid:le.mgf1,hash:{algorithmOid:le.sha1}},saltLength:20});var i={},s=[];if(!m.validate(e,QA,i,s)){var o=new Error("Cannot read RSASSA-PSS parameter block.");throw o.errors=s,o}return i.hashOid!==void 0&&(n.hash=n.hash||{},n.hash.algorithmOid=m.derToOid(i.hashOid)),i.maskGenOid!==void 0&&(n.mgf=n.mgf||{},n.mgf.algorithmOid=m.derToOid(i.maskGenOid),n.mgf.hash=n.mgf.hash||{},n.mgf.hash.algorithmOid=m.derToOid(i.maskGenHashOid)),i.saltLength!==void 0&&(n.saltLength=i.saltLength.charCodeAt(0)),n},bc=function(t){switch(le[t.signatureOid]){case"sha1WithRSAEncryption":case"sha1WithRSASignature":return $.md.sha1.create();case"md5WithRSAEncryption":return $.md.md5.create();case"sha256WithRSAEncryption":return $.md.sha256.create();case"sha384WithRSAEncryption":return $.md.sha384.create();case"sha512WithRSAEncryption":return $.md.sha512.create();case"RSASSA-PSS":return $.md.sha256.create();default:var e=new Error("Could not compute "+t.type+" digest. Unknown signature OID.");throw e.signatureOid=t.signatureOid,e}},Gg=function(t){var e=t.certificate,r;switch(e.signatureOid){case le.sha1WithRSAEncryption:case le.sha1WithRSASignature:break;case le["RSASSA-PSS"]:var n,i;if(n=le[e.signatureParameters.mgf.hash.algorithmOid],n===void 0||$.md[n]===void 0){var s=new Error("Unsupported MGF hash function.");throw s.oid=e.signatureParameters.mgf.hash.algorithmOid,s.name=n,s}if(i=le[e.signatureParameters.mgf.algorithmOid],i===void 0||$.mgf[i]===void 0){var s=new Error("Unsupported MGF function.");throw s.oid=e.signatureParameters.mgf.algorithmOid,s.name=i,s}if(i=$.mgf[i].create($.md[n].create()),n=le[e.signatureParameters.hash.algorithmOid],n===void 0||$.md[n]===void 0){var s=new Error("Unsupported RSASSA-PSS hash function.");throw s.oid=e.signatureParameters.hash.algorithmOid,s.name=n,s}r=$.pss.create($.md[n].create(),i,e.signatureParameters.saltLength);break}return e.publicKey.verify(t.md.digest().getBytes(),t.signature,r)};P.certificateFromPem=function(t,e,r){var n=$.pem.decode(t)[0];if(n.type!=="CERTIFICATE"&&n.type!=="X509 CERTIFICATE"&&n.type!=="TRUSTED CERTIFICATE"){var i=new Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".');throw i.headerType=n.type,i}if(n.procType&&n.procType.type==="ENCRYPTED")throw new Error("Could not convert certificate from PEM; PEM is encrypted.");var s=m.fromDer(n.body,r);return P.certificateFromAsn1(s,e)};P.certificateToPem=function(t,e){var r={type:"CERTIFICATE",body:m.toDer(P.certificateToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};P.publicKeyFromPem=function(t){var e=$.pem.decode(t)[0];if(e.type!=="PUBLIC KEY"&&e.type!=="RSA PUBLIC KEY"){var r=new Error('Could not convert public key from PEM; PEM header type is not "PUBLIC KEY" or "RSA PUBLIC KEY".');throw r.headerType=e.type,r}if(e.procType&&e.procType.type==="ENCRYPTED")throw new Error("Could not convert public key from PEM; PEM is encrypted.");var n=m.fromDer(e.body);return P.publicKeyFromAsn1(n)};P.publicKeyToPem=function(t,e){var r={type:"PUBLIC KEY",body:m.toDer(P.publicKeyToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};P.publicKeyToRSAPublicKeyPem=function(t,e){var r={type:"RSA PUBLIC KEY",body:m.toDer(P.publicKeyToRSAPublicKey(t)).getBytes()};return $.pem.encode(r,{maxline:e})};P.getPublicKeyFingerprint=function(t,e){e=e||{};var r=e.md||$.md.sha1.create(),n=e.type||"RSAPublicKey",i;switch(n){case"RSAPublicKey":i=m.toDer(P.publicKeyToRSAPublicKey(t)).getBytes();break;case"SubjectPublicKeyInfo":i=m.toDer(P.publicKeyToAsn1(t)).getBytes();break;default:throw new Error('Unknown fingerprint type "'+e.type+'".')}r.start(),r.update(i);var s=r.digest();if(e.encoding==="hex"){var o=s.toHex();return e.delimiter?o.match(/.{2}/g).join(e.delimiter):o}else{if(e.encoding==="binary")return s.getBytes();if(e.encoding)throw new Error('Unknown encoding "'+e.encoding+'".')}return s};P.certificationRequestFromPem=function(t,e,r){var n=$.pem.decode(t)[0];if(n.type!=="CERTIFICATE REQUEST"){var i=new Error('Could not convert certification request from PEM; PEM header type is not "CERTIFICATE REQUEST".');throw i.headerType=n.type,i}if(n.procType&&n.procType.type==="ENCRYPTED")throw new Error("Could not convert certification request from PEM; PEM is encrypted.");var s=m.fromDer(n.body,r);return P.certificationRequestFromAsn1(s,e)};P.certificationRequestToPem=function(t,e){var r={type:"CERTIFICATE REQUEST",body:m.toDer(P.certificationRequestToAsn1(t)).getBytes()};return $.pem.encode(r,{maxline:e})};P.createCertificate=function(){var t={};return t.version=2,t.serialNumber="00",t.signatureOid=null,t.signature=null,t.siginfo={},t.siginfo.algorithmOid=null,t.validity={},t.validity.notBefore=new Date,t.validity.notAfter=new Date,t.issuer={},t.issuer.getField=function(e){return Rn(t.issuer,e)},t.issuer.addField=function(e){Wt([e]),t.issuer.attributes.push(e)},t.issuer.attributes=[],t.issuer.hash=null,t.subject={},t.subject.getField=function(e){return Rn(t.subject,e)},t.subject.addField=function(e){Wt([e]),t.subject.attributes.push(e)},t.subject.attributes=[],t.subject.hash=null,t.extensions=[],t.publicKey=null,t.md=null,t.setSubject=function(e,r){Wt(e),t.subject.attributes=e,delete t.subject.uniqueId,r&&(t.subject.uniqueId=r),t.subject.hash=null},t.setIssuer=function(e,r){Wt(e),t.issuer.attributes=e,delete t.issuer.uniqueId,r&&(t.issuer.uniqueId=r),t.issuer.hash=null},t.setExtensions=function(e){for(var r=0;r<e.length;++r)Yg(e[r],{cert:t});t.extensions=e},t.getExtension=function(e){typeof e=="string"&&(e={name:e});for(var r=null,n,i=0;r===null&&i<t.extensions.length;++i)n=t.extensions[i],(e.id&&n.id===e.id||e.name&&n.name===e.name)&&(r=n);return r},t.sign=function(e,r){t.md=r||$.md.sha1.create();var n=le[t.md.algorithm+"WithRSAEncryption"];if(!n){var i=new Error("Could not compute certificate digest. Unknown message digest algorithm OID.");throw i.algorithm=t.md.algorithm,i}t.signatureOid=t.siginfo.algorithmOid=n,t.tbsCertificate=P.getTBSCertificate(t);var s=m.toDer(t.tbsCertificate);t.md.update(s.getBytes()),t.signature=e.sign(t.md)},t.verify=function(e){var r=!1;if(!t.issued(e)){var n=e.issuer,i=t.subject,s=new Error("The parent certificate did not issue the given child certificate; the child certificate's issuer does not match the parent's subject.");throw s.expectedIssuer=i.attributes,s.actualIssuer=n.attributes,s}var o=e.md;if(o===null){o=bc({signatureOid:e.signatureOid,type:"certificate"});var a=e.tbsCertificate||P.getTBSCertificate(e),c=m.toDer(a);o.update(c.getBytes())}return o!==null&&(r=Gg({certificate:t,md:o,signature:e.signature})),r},t.isIssuer=function(e){var r=!1,n=t.issuer,i=e.subject;if(n.hash&&i.hash)r=n.hash===i.hash;else if(n.attributes.length===i.attributes.length){r=!0;for(var s,o,a=0;r&&a<n.attributes.length;++a)s=n.attributes[a],o=i.attributes[a],(s.type!==o.type||s.value!==o.value)&&(r=!1)}return r},t.issued=function(e){return e.isIssuer(t)},t.generateSubjectKeyIdentifier=function(){return P.getPublicKeyFingerprint(t.publicKey,{type:"RSAPublicKey"})},t.verifySubjectKeyIdentifier=function(){for(var e=le.subjectKeyIdentifier,r=0;r<t.extensions.length;++r){var n=t.extensions[r];if(n.id===e){var i=t.generateSubjectKeyIdentifier().getBytes();return $.util.hexToBytes(n.subjectKeyIdentifier)===i}}return!1},t};P.certificateFromAsn1=function(t,e){var r={},n=[];if(!m.validate(t,WA,r,n)){var i=new Error("Cannot read X.509 certificate. ASN.1 object is not an X509v3 Certificate.");throw i.errors=n,i}var s=m.derToOid(r.publicKeyOid);if(s!==P.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var o=P.createCertificate();o.version=r.certVersion?r.certVersion.charCodeAt(0):0;var a=$.util.createBuffer(r.certSerialNumber);o.serialNumber=a.toHex(),o.signatureOid=$.asn1.derToOid(r.certSignatureOid),o.signatureParameters=xc(o.signatureOid,r.certSignatureParams,!0),o.siginfo.algorithmOid=$.asn1.derToOid(r.certinfoSignatureOid),o.siginfo.parameters=xc(o.siginfo.algorithmOid,r.certinfoSignatureParams,!1),o.signature=r.certSignature;var c=[];if(r.certValidity1UTCTime!==void 0&&c.push(m.utcTimeToDate(r.certValidity1UTCTime)),r.certValidity2GeneralizedTime!==void 0&&c.push(m.generalizedTimeToDate(r.certValidity2GeneralizedTime)),r.certValidity3UTCTime!==void 0&&c.push(m.utcTimeToDate(r.certValidity3UTCTime)),r.certValidity4GeneralizedTime!==void 0&&c.push(m.generalizedTimeToDate(r.certValidity4GeneralizedTime)),c.length>2)throw new Error("Cannot read notBefore/notAfter validity times; more than two times were provided in the certificate.");if(c.length<2)throw new Error("Cannot read notBefore/notAfter validity times; they were not provided as either UTCTime or GeneralizedTime.");if(o.validity.notBefore=c[0],o.validity.notAfter=c[1],o.tbsCertificate=r.tbsCertificate,e){o.md=bc({signatureOid:o.signatureOid,type:"certificate"});var u=m.toDer(o.tbsCertificate);o.md.update(u.getBytes())}var l=$.md.sha1.create(),f=m.toDer(r.certIssuer);l.update(f.getBytes()),o.issuer.getField=function(p){return Rn(o.issuer,p)},o.issuer.addField=function(p){Wt([p]),o.issuer.attributes.push(p)},o.issuer.attributes=P.RDNAttributesAsArray(r.certIssuer),r.certIssuerUniqueId&&(o.issuer.uniqueId=r.certIssuerUniqueId),o.issuer.hash=l.digest().toHex();var d=$.md.sha1.create(),h=m.toDer(r.certSubject);return d.update(h.getBytes()),o.subject.getField=function(p){return Rn(o.subject,p)},o.subject.addField=function(p){Wt([p]),o.subject.attributes.push(p)},o.subject.attributes=P.RDNAttributesAsArray(r.certSubject),r.certSubjectUniqueId&&(o.subject.uniqueId=r.certSubjectUniqueId),o.subject.hash=d.digest().toHex(),r.certExtensions?o.extensions=P.certificateExtensionsFromAsn1(r.certExtensions):o.extensions=[],o.publicKey=P.publicKeyFromAsn1(r.subjectPublicKeyInfo),o};P.certificateExtensionsFromAsn1=function(t){for(var e=[],r=0;r<t.value.length;++r)for(var n=t.value[r],i=0;i<n.value.length;++i)e.push(P.certificateExtensionFromAsn1(n.value[i]));return e};P.certificateExtensionFromAsn1=function(t){var e={};if(e.id=m.derToOid(t.value[0].value),e.critical=!1,t.value[1].type===m.Type.BOOLEAN?(e.critical=t.value[1].value.charCodeAt(0)!==0,e.value=t.value[2].value):e.value=t.value[1].value,e.id in le){if(e.name=le[e.id],e.name==="keyUsage"){var r=m.fromDer(e.value),n=0,i=0;r.value.length>1&&(n=r.value.charCodeAt(1),i=r.value.length>2?r.value.charCodeAt(2):0),e.digitalSignature=(n&128)===128,e.nonRepudiation=(n&64)===64,e.keyEncipherment=(n&32)===32,e.dataEncipherment=(n&16)===16,e.keyAgreement=(n&8)===8,e.keyCertSign=(n&4)===4,e.cRLSign=(n&2)===2,e.encipherOnly=(n&1)===1,e.decipherOnly=(i&128)===128}else if(e.name==="basicConstraints"){var r=m.fromDer(e.value);r.value.length>0&&r.value[0].type===m.Type.BOOLEAN?e.cA=r.value[0].value.charCodeAt(0)!==0:e.cA=!1;var s=null;r.value.length>0&&r.value[0].type===m.Type.INTEGER?s=r.value[0].value:r.value.length>1&&(s=r.value[1].value),s!==null&&(e.pathLenConstraint=m.derToInteger(s))}else if(e.name==="extKeyUsage")for(var r=m.fromDer(e.value),o=0;o<r.value.length;++o){var a=m.derToOid(r.value[o].value);a in le?e[le[a]]=!0:e[a]=!0}else if(e.name==="nsCertType"){var r=m.fromDer(e.value),n=0;r.value.length>1&&(n=r.value.charCodeAt(1)),e.client=(n&128)===128,e.server=(n&64)===64,e.email=(n&32)===32,e.objsign=(n&16)===16,e.reserved=(n&8)===8,e.sslCA=(n&4)===4,e.emailCA=(n&2)===2,e.objCA=(n&1)===1}else if(e.name==="subjectAltName"||e.name==="issuerAltName"){e.altNames=[];for(var c,r=m.fromDer(e.value),u=0;u<r.value.length;++u){c=r.value[u];var l={type:c.type,value:c.value};switch(e.altNames.push(l),c.type){case 1:case 2:case 6:break;case 7:l.ip=$.util.bytesToIP(c.value);break;case 8:l.oid=m.derToOid(c.value);break;default:}}}else if(e.name==="subjectKeyIdentifier"){var r=m.fromDer(e.value);e.subjectKeyIdentifier=$.util.bytesToHex(r.value)}}return e};P.certificationRequestFromAsn1=function(t,e){var r={},n=[];if(!m.validate(t,jA,r,n)){var i=new Error("Cannot read PKCS#10 certificate request. ASN.1 object is not a PKCS#10 CertificationRequest.");throw i.errors=n,i}var s=m.derToOid(r.publicKeyOid);if(s!==P.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var o=P.createCertificationRequest();if(o.version=r.csrVersion?r.csrVersion.charCodeAt(0):0,o.signatureOid=$.asn1.derToOid(r.csrSignatureOid),o.signatureParameters=xc(o.signatureOid,r.csrSignatureParams,!0),o.siginfo.algorithmOid=$.asn1.derToOid(r.csrSignatureOid),o.siginfo.parameters=xc(o.siginfo.algorithmOid,r.csrSignatureParams,!1),o.signature=r.csrSignature,o.certificationRequestInfo=r.certificationRequestInfo,e){o.md=bc({signatureOid:o.signatureOid,type:"certification request"});var a=m.toDer(o.certificationRequestInfo);o.md.update(a.getBytes())}var c=$.md.sha1.create();return o.subject.getField=function(u){return Rn(o.subject,u)},o.subject.addField=function(u){Wt([u]),o.subject.attributes.push(u)},o.subject.attributes=P.RDNAttributesAsArray(r.certificationRequestInfoSubject,c),o.subject.hash=c.digest().toHex(),o.publicKey=P.publicKeyFromAsn1(r.subjectPublicKeyInfo),o.getAttribute=function(u){return Rn(o,u)},o.addAttribute=function(u){Wt([u]),o.attributes.push(u)},o.attributes=P.CRIAttributesAsArray(r.certificationRequestInfoAttributes||[]),o};P.createCertificationRequest=function(){var t={};return t.version=0,t.signatureOid=null,t.signature=null,t.siginfo={},t.siginfo.algorithmOid=null,t.subject={},t.subject.getField=function(e){return Rn(t.subject,e)},t.subject.addField=function(e){Wt([e]),t.subject.attributes.push(e)},t.subject.attributes=[],t.subject.hash=null,t.publicKey=null,t.attributes=[],t.getAttribute=function(e){return Rn(t,e)},t.addAttribute=function(e){Wt([e]),t.attributes.push(e)},t.md=null,t.setSubject=function(e){Wt(e),t.subject.attributes=e,t.subject.hash=null},t.setAttributes=function(e){Wt(e),t.attributes=e},t.sign=function(e,r){t.md=r||$.md.sha1.create();var n=le[t.md.algorithm+"WithRSAEncryption"];if(!n){var i=new Error("Could not compute certification request digest. Unknown message digest algorithm OID.");throw i.algorithm=t.md.algorithm,i}t.signatureOid=t.siginfo.algorithmOid=n,t.certificationRequestInfo=P.getCertificationRequestInfo(t);var s=m.toDer(t.certificationRequestInfo);t.md.update(s.getBytes()),t.signature=e.sign(t.md)},t.verify=function(){var e=!1,r=t.md;if(r===null){r=bc({signatureOid:t.signatureOid,type:"certification request"});var n=t.certificationRequestInfo||P.getCertificationRequestInfo(t),i=m.toDer(n);r.update(i.getBytes())}return r!==null&&(e=Gg({certificate:t,md:r,signature:t.signature})),e},t};function us(t){for(var e=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]),r,n,i=t.attributes,s=0;s<i.length;++s){r=i[s];var o=r.value,a=m.Type.PRINTABLESTRING;"valueTagClass"in r&&(a=r.valueTagClass,a===m.Type.UTF8&&(o=$.util.encodeUtf8(o))),n=m.create(m.Class.UNIVERSAL,m.Type.SET,!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(r.type).getBytes()),m.create(m.Class.UNIVERSAL,a,!1,o)])]),e.value.push(n)}return e}function Wt(t){for(var e,r=0;r<t.length;++r){if(e=t[r],typeof e.name>"u"&&(e.type&&e.type in P.oids?e.name=P.oids[e.type]:e.shortName&&e.shortName in Ge&&(e.name=P.oids[Ge[e.shortName]])),typeof e.type>"u")if(e.name&&e.name in P.oids)e.type=P.oids[e.name];else{var n=new Error("Attribute type not specified.");throw n.attribute=e,n}if(typeof e.shortName>"u"&&e.name&&e.name in Ge&&(e.shortName=Ge[e.name]),e.type===le.extensionRequest&&(e.valueConstructed=!0,e.valueTagClass=m.Type.SEQUENCE,!e.value&&e.extensions)){e.value=[];for(var i=0;i<e.extensions.length;++i)e.value.push(P.certificateExtensionToAsn1(Yg(e.extensions[i])))}if(typeof e.value>"u"){var n=new Error("Attribute value not specified.");throw n.attribute=e,n}}}function Yg(t,e){if(e=e||{},typeof t.name>"u"&&t.id&&t.id in P.oids&&(t.name=P.oids[t.id]),typeof t.id>"u")if(t.name&&t.name in P.oids)t.id=P.oids[t.name];else{var r=new Error("Extension ID not specified.");throw r.extension=t,r}if(typeof t.value<"u")return t;if(t.name==="keyUsage"){var n=0,i=0,s=0;t.digitalSignature&&(i|=128,n=7),t.nonRepudiation&&(i|=64,n=6),t.keyEncipherment&&(i|=32,n=5),t.dataEncipherment&&(i|=16,n=4),t.keyAgreement&&(i|=8,n=3),t.keyCertSign&&(i|=4,n=2),t.cRLSign&&(i|=2,n=1),t.encipherOnly&&(i|=1,n=0),t.decipherOnly&&(s|=128,n=7);var o=String.fromCharCode(n);s!==0?o+=String.fromCharCode(i)+String.fromCharCode(s):i!==0&&(o+=String.fromCharCode(i)),t.value=m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,o)}else if(t.name==="basicConstraints")t.value=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]),t.cA&&t.value.value.push(m.create(m.Class.UNIVERSAL,m.Type.BOOLEAN,!1,String.fromCharCode(255))),"pathLenConstraint"in t&&t.value.value.push(m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,m.integerToDer(t.pathLenConstraint).getBytes()));else if(t.name==="extKeyUsage"){t.value=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);var a=t.value.value;for(var c in t)t[c]===!0&&(c in le?a.push(m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(le[c]).getBytes())):c.indexOf(".")!==-1&&a.push(m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(c).getBytes())))}else if(t.name==="nsCertType"){var n=0,i=0;t.client&&(i|=128,n=7),t.server&&(i|=64,n=6),t.email&&(i|=32,n=5),t.objsign&&(i|=16,n=4),t.reserved&&(i|=8,n=3),t.sslCA&&(i|=4,n=2),t.emailCA&&(i|=2,n=1),t.objCA&&(i|=1,n=0);var o=String.fromCharCode(n);i!==0&&(o+=String.fromCharCode(i)),t.value=m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,o)}else if(t.name==="subjectAltName"||t.name==="issuerAltName"){t.value=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);for(var u,l=0;l<t.altNames.length;++l){u=t.altNames[l];var o=u.value;if(u.type===7&&u.ip){if(o=$.util.bytesFromIP(u.ip),o===null){var r=new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.');throw r.extension=t,r}}else u.type===8&&(u.oid?o=m.oidToDer(m.oidToDer(u.oid)):o=m.oidToDer(o));t.value.value.push(m.create(m.Class.CONTEXT_SPECIFIC,u.type,!1,o))}}else if(t.name==="nsComment"&&e.cert){if(!/^[\x00-\x7F]*$/.test(t.comment)||t.comment.length<1||t.comment.length>128)throw new Error('Invalid "nsComment" content.');t.value=m.create(m.Class.UNIVERSAL,m.Type.IA5STRING,!1,t.comment)}else if(t.name==="subjectKeyIdentifier"&&e.cert){var f=e.cert.generateSubjectKeyIdentifier();t.subjectKeyIdentifier=f.toHex(),t.value=m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,f.getBytes())}else if(t.name==="authorityKeyIdentifier"&&e.cert){t.value=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);var a=t.value.value;if(t.keyIdentifier){var d=t.keyIdentifier===!0?e.cert.generateSubjectKeyIdentifier().getBytes():t.keyIdentifier;a.push(m.create(m.Class.CONTEXT_SPECIFIC,0,!1,d))}if(t.authorityCertIssuer){var h=[m.create(m.Class.CONTEXT_SPECIFIC,4,!0,[us(t.authorityCertIssuer===!0?e.cert.issuer:t.authorityCertIssuer)])];a.push(m.create(m.Class.CONTEXT_SPECIFIC,1,!0,h))}if(t.serialNumber){var p=$.util.hexToBytes(t.serialNumber===!0?e.cert.serialNumber:t.serialNumber);a.push(m.create(m.Class.CONTEXT_SPECIFIC,2,!1,p))}}else if(t.name==="cRLDistributionPoints"){t.value=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);for(var a=t.value.value,y=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]),g=m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[]),u,l=0;l<t.altNames.length;++l){u=t.altNames[l];var o=u.value;if(u.type===7&&u.ip){if(o=$.util.bytesFromIP(u.ip),o===null){var r=new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.');throw r.extension=t,r}}else u.type===8&&(u.oid?o=m.oidToDer(m.oidToDer(u.oid)):o=m.oidToDer(o));g.value.push(m.create(m.Class.CONTEXT_SPECIFIC,u.type,!1,o))}y.value.push(m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[g])),a.push(y)}if(typeof t.value>"u"){var r=new Error("Extension value not specified.");throw r.extension=t,r}return t}function kf(t,e){switch(t){case le["RSASSA-PSS"]:var r=[];return e.hash.algorithmOid!==void 0&&r.push(m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(e.hash.algorithmOid).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.NULL,!1,"")])])),e.mgf.algorithmOid!==void 0&&r.push(m.create(m.Class.CONTEXT_SPECIFIC,1,!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(e.mgf.algorithmOid).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(e.mgf.hash.algorithmOid).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.NULL,!1,"")])])])),e.saltLength!==void 0&&r.push(m.create(m.Class.CONTEXT_SPECIFIC,2,!0,[m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,m.integerToDer(e.saltLength).getBytes())])),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,r);default:return m.create(m.Class.UNIVERSAL,m.Type.NULL,!1,"")}}function ZA(t){var e=m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[]);if(t.attributes.length===0)return e;for(var r=t.attributes,n=0;n<r.length;++n){var i=r[n],s=i.value,o=m.Type.UTF8;"valueTagClass"in i&&(o=i.valueTagClass),o===m.Type.UTF8&&(s=$.util.encodeUtf8(s));var a=!1;"valueConstructed"in i&&(a=i.valueConstructed);var c=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(i.type).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.SET,!0,[m.create(m.Class.UNIVERSAL,o,a,s)])]);e.value.push(c)}return e}var JA=new Date("1950-01-01T00:00:00Z"),eC=new Date("2050-01-01T00:00:00Z");function zg(t){return t>=JA&&t<eC?m.create(m.Class.UNIVERSAL,m.Type.UTCTIME,!1,m.dateToUtcTime(t)):m.create(m.Class.UNIVERSAL,m.Type.GENERALIZEDTIME,!1,m.dateToGeneralizedTime(t))}P.getTBSCertificate=function(t){var e=zg(t.validity.notBefore),r=zg(t.validity.notAfter),n=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,m.integerToDer(t.version).getBytes())]),m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,$.util.hexToBytes(t.serialNumber)),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(t.siginfo.algorithmOid).getBytes()),kf(t.siginfo.algorithmOid,t.siginfo.parameters)]),us(t.issuer),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[e,r]),us(t.subject),P.publicKeyToAsn1(t.publicKey)]);return t.issuer.uniqueId&&n.value.push(m.create(m.Class.CONTEXT_SPECIFIC,1,!0,[m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.issuer.uniqueId)])),t.subject.uniqueId&&n.value.push(m.create(m.Class.CONTEXT_SPECIFIC,2,!0,[m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.subject.uniqueId)])),t.extensions.length>0&&n.value.push(P.certificateExtensionsToAsn1(t.extensions)),n};P.getCertificationRequestInfo=function(t){var e=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,m.integerToDer(t.version).getBytes()),us(t.subject),P.publicKeyToAsn1(t.publicKey),ZA(t)]);return e};P.distinguishedNameToAsn1=function(t){return us(t)};P.certificateToAsn1=function(t){var e=t.tbsCertificate||P.getTBSCertificate(t);return m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[e,m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(t.signatureOid).getBytes()),kf(t.signatureOid,t.signatureParameters)]),m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.signature)])};P.certificateExtensionsToAsn1=function(t){var e=m.create(m.Class.CONTEXT_SPECIFIC,3,!0,[]),r=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);e.value.push(r);for(var n=0;n<t.length;++n)r.value.push(P.certificateExtensionToAsn1(t[n]));return e};P.certificateExtensionToAsn1=function(t){var e=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[]);e.value.push(m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(t.id).getBytes())),t.critical&&e.value.push(m.create(m.Class.UNIVERSAL,m.Type.BOOLEAN,!1,String.fromCharCode(255)));var r=t.value;return typeof t.value!="string"&&(r=m.toDer(r).getBytes()),e.value.push(m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,r)),e};P.certificationRequestToAsn1=function(t){var e=t.certificationRequestInfo||P.getCertificationRequestInfo(t);return m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[e,m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(t.signatureOid).getBytes()),kf(t.signatureOid,t.signatureParameters)]),m.create(m.Class.UNIVERSAL,m.Type.BITSTRING,!1,String.fromCharCode(0)+t.signature)])};P.createCaStore=function(t){var e={certs:{}};e.getIssuer=function(o){var a=r(o.issuer);return a},e.addCertificate=function(o){if(typeof o=="string"&&(o=$.pki.certificateFromPem(o)),n(o.subject),!e.hasCertificate(o))if(o.subject.hash in e.certs){var a=e.certs[o.subject.hash];$.util.isArray(a)||(a=[a]),a.push(o),e.certs[o.subject.hash]=a}else e.certs[o.subject.hash]=o},e.hasCertificate=function(o){typeof o=="string"&&(o=$.pki.certificateFromPem(o));var a=r(o.subject);if(!a)return!1;$.util.isArray(a)||(a=[a]);for(var c=m.toDer(P.certificateToAsn1(o)).getBytes(),u=0;u<a.length;++u){var l=m.toDer(P.certificateToAsn1(a[u])).getBytes();if(c===l)return!0}return!1},e.listAllCertificates=function(){var o=[];for(var a in e.certs)if(e.certs.hasOwnProperty(a)){var c=e.certs[a];if(!$.util.isArray(c))o.push(c);else for(var u=0;u<c.length;++u)o.push(c[u])}return o},e.removeCertificate=function(o){var a;if(typeof o=="string"&&(o=$.pki.certificateFromPem(o)),n(o.subject),!e.hasCertificate(o))return null;var c=r(o.subject);if(!$.util.isArray(c))return a=e.certs[o.subject.hash],delete e.certs[o.subject.hash],a;for(var u=m.toDer(P.certificateToAsn1(o)).getBytes(),l=0;l<c.length;++l){var f=m.toDer(P.certificateToAsn1(c[l])).getBytes();u===f&&(a=c[l],c.splice(l,1))}return c.length===0&&delete e.certs[o.subject.hash],a};function r(o){return n(o),e.certs[o.hash]||null}function n(o){if(!o.hash){var a=$.md.sha1.create();o.attributes=P.RDNAttributesAsArray(us(o),a),o.hash=a.digest().toHex()}}if(t)for(var i=0;i<t.length;++i){var s=t[i];e.addCertificate(s)}return e};P.certificateError={bad_certificate:"forge.pki.BadCertificate",unsupported_certificate:"forge.pki.UnsupportedCertificate",certificate_revoked:"forge.pki.CertificateRevoked",certificate_expired:"forge.pki.CertificateExpired",certificate_unknown:"forge.pki.CertificateUnknown",unknown_ca:"forge.pki.UnknownCertificateAuthority"};P.verifyCertificateChain=function(t,e,r){typeof r=="function"&&(r={verify:r}),r=r||{},e=e.slice(0);var n=e.slice(0),i=r.validityCheckDate;typeof i>"u"&&(i=new Date);var s=!0,o=null,a=0;do{var c=e.shift(),u=null,l=!1;if(i&&(i<c.validity.notBefore||i>c.validity.notAfter)&&(o={message:"Certificate is not valid yet or has expired.",error:P.certificateError.certificate_expired,notBefore:c.validity.notBefore,notAfter:c.validity.notAfter,now:i}),o===null){if(u=e[0]||t.getIssuer(c),u===null&&c.isIssuer(c)&&(l=!0,u=c),u){var f=u;$.util.isArray(f)||(f=[f]);for(var d=!1;!d&&f.length>0;){u=f.shift();try{d=u.verify(c)}catch{}}d||(o={message:"Certificate signature is invalid.",error:P.certificateError.bad_certificate})}o===null&&(!u||l)&&!t.hasCertificate(c)&&(o={message:"Certificate is not trusted.",error:P.certificateError.unknown_ca})}if(o===null&&u&&!c.isIssuer(u)&&(o={message:"Certificate issuer is invalid.",error:P.certificateError.bad_certificate}),o===null)for(var h={keyUsage:!0,basicConstraints:!0},p=0;o===null&&p<c.extensions.length;++p){var y=c.extensions[p];y.critical&&!(y.name in h)&&(o={message:"Certificate has an unsupported critical extension.",error:P.certificateError.unsupported_certificate})}if(o===null&&(!s||e.length===0&&(!u||l))){var g=c.getExtension("basicConstraints"),E=c.getExtension("keyUsage");if(E!==null&&(!E.keyCertSign||g===null)&&(o={message:"Certificate keyUsage or basicConstraints conflict or indicate that the certificate is not a CA. If the certificate is the only one in the chain or isn't the first then the certificate must be a valid CA.",error:P.certificateError.bad_certificate}),o===null&&g!==null&&!g.cA&&(o={message:"Certificate basicConstraints indicates the certificate is not a CA.",error:P.certificateError.bad_certificate}),o===null&&E!==null&&"pathLenConstraint"in g){var x=a-1;x>g.pathLenConstraint&&(o={message:"Certificate basicConstraints pathLenConstraint violated.",error:P.certificateError.bad_certificate})}}var _=o===null?!0:o.error,B=r.verify?r.verify(_,a,n):_;if(B===!0)o=null;else throw _===!0&&(o={message:"The application rejected the certificate.",error:P.certificateError.bad_certificate}),(B||B===0)&&(typeof B=="object"&&!$.util.isArray(B)?(B.message&&(o.message=B.message),B.error&&(o.error=B.error)):typeof B=="string"&&(o.error=B)),o;s=!1,++a}while(e.length>0);return!0}});var jg=N((z4,Xg)=>{var O=ie();ns();An();uc();is();hc();ig();ci();De();Uf();var v=O.asn1,wt=Xg.exports=O.pkcs7=O.pkcs7||{};wt.messageFromPem=function(t){var e=O.pem.decode(t)[0];if(e.type!=="PKCS7"){var r=new Error('Could not convert PKCS#7 message from PEM; PEM header type is not "PKCS#7".');throw r.headerType=e.type,r}if(e.procType&&e.procType.type==="ENCRYPTED")throw new Error("Could not convert PKCS#7 message from PEM; PEM is encrypted.");var n=v.fromDer(e.body);return wt.messageFromAsn1(n)};wt.messageToPem=function(t,e){var r={type:"PKCS7",body:v.toDer(t.toAsn1()).getBytes()};return O.pem.encode(r,{maxline:e})};wt.messageFromAsn1=function(t){var e={},r=[];if(!v.validate(t,wt.asn1.contentInfoValidator,e,r)){var n=new Error("Cannot read PKCS#7 message. ASN.1 object is not an PKCS#7 ContentInfo.");throw n.errors=r,n}var i=v.derToOid(e.contentType),s;switch(i){case O.pki.oids.envelopedData:s=wt.createEnvelopedData();break;case O.pki.oids.encryptedData:s=wt.createEncryptedData();break;case O.pki.oids.signedData:s=wt.createSignedData();break;default:throw new Error("Cannot read PKCS#7 message. ContentType with OID "+i+" is not (yet) supported.")}return s.fromAsn1(e.content.value[0]),s};wt.createSignedData=function(){var t=null;return t={type:O.pki.oids.signedData,version:1,certificates:[],crls:[],signers:[],digestAlgorithmIdentifiers:[],contentInfo:null,signerInfos:[],fromAsn1:function(n){if(Ff(t,n,wt.asn1.signedDataValidator),t.certificates=[],t.crls=[],t.digestAlgorithmIdentifiers=[],t.contentInfo=null,t.signerInfos=[],t.rawCapture.certificates)for(var i=t.rawCapture.certificates.value,s=0;s<i.length;++s)t.certificates.push(O.pki.certificateFromAsn1(i[s]))},toAsn1:function(){t.contentInfo||t.sign();for(var n=[],i=0;i<t.certificates.length;++i)n.push(O.pki.certificateToAsn1(t.certificates[i]));var s=[],o=v.create(v.Class.CONTEXT_SPECIFIC,0,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(t.version).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SET,!0,t.digestAlgorithmIdentifiers),t.contentInfo])]);return n.length>0&&o.value[0].value.push(v.create(v.Class.CONTEXT_SPECIFIC,0,!0,n)),s.length>0&&o.value[0].value.push(v.create(v.Class.CONTEXT_SPECIFIC,1,!0,s)),o.value[0].value.push(v.create(v.Class.UNIVERSAL,v.Type.SET,!0,t.signerInfos)),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.type).getBytes()),o])},addSigner:function(n){var i=n.issuer,s=n.serialNumber;if(n.certificate){var o=n.certificate;typeof o=="string"&&(o=O.pki.certificateFromPem(o)),i=o.issuer.attributes,s=o.serialNumber}var a=n.key;if(!a)throw new Error("Could not add PKCS#7 signer; no private key specified.");typeof a=="string"&&(a=O.pki.privateKeyFromPem(a));var c=n.digestAlgorithm||O.pki.oids.sha1;switch(c){case O.pki.oids.sha1:case O.pki.oids.sha256:case O.pki.oids.sha384:case O.pki.oids.sha512:case O.pki.oids.md5:break;default:throw new Error("Could not add PKCS#7 signer; unknown message digest algorithm: "+c)}var u=n.authenticatedAttributes||[];if(u.length>0){for(var l=!1,f=!1,d=0;d<u.length;++d){var h=u[d];if(!l&&h.type===O.pki.oids.contentType){if(l=!0,f)break;continue}if(!f&&h.type===O.pki.oids.messageDigest){if(f=!0,l)break;continue}}if(!l||!f)throw new Error("Invalid signer.authenticatedAttributes. If signer.authenticatedAttributes is specified, then it must contain at least two attributes, PKCS #9 content-type and PKCS #9 message-digest.")}t.signers.push({key:a,version:1,issuer:i,serialNumber:s,digestAlgorithm:c,signatureAlgorithm:O.pki.oids.rsaEncryption,signature:null,authenticatedAttributes:u,unauthenticatedAttributes:[]})},sign:function(n){if(n=n||{},(typeof t.content!="object"||t.contentInfo===null)&&(t.contentInfo=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(O.pki.oids.data).getBytes())]),"content"in t)){var i;t.content instanceof O.util.ByteBuffer?i=t.content.bytes():typeof t.content=="string"&&(i=O.util.encodeUtf8(t.content)),n.detached?t.detachedContent=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,i):t.contentInfo.value.push(v.create(v.Class.CONTEXT_SPECIFIC,0,!0,[v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,i)]))}if(t.signers.length!==0){var s=e();r(s)}},verify:function(){throw new Error("PKCS#7 signature verification not yet implemented.")},addCertificate:function(n){typeof n=="string"&&(n=O.pki.certificateFromPem(n)),t.certificates.push(n)},addCertificateRevokationList:function(n){throw new Error("PKCS#7 CRL support not yet implemented.")}},t;function e(){for(var n={},i=0;i<t.signers.length;++i){var s=t.signers[i],o=s.digestAlgorithm;o in n||(n[o]=O.md[O.pki.oids[o]].create()),s.authenticatedAttributes.length===0?s.md=n[o]:s.md=O.md[O.pki.oids[o]].create()}t.digestAlgorithmIdentifiers=[];for(var o in n)t.digestAlgorithmIdentifiers.push(v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(o).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]));return n}function r(n){var i;if(t.detachedContent?i=t.detachedContent:(i=t.contentInfo.value[1],i=i.value[0]),!i)throw new Error("Could not sign PKCS#7 message; there is no content to sign.");var s=v.derToOid(t.contentInfo.value[0].value),o=v.toDer(i);o.getByte(),v.getBerValueLength(o),o=o.getBytes();for(var a in n)n[a].start().update(o);for(var c=new Date,u=0;u<t.signers.length;++u){var l=t.signers[u];if(l.authenticatedAttributes.length===0){if(s!==O.pki.oids.data)throw new Error("Invalid signer; authenticatedAttributes must be present when the ContentInfo content type is not PKCS#7 Data.")}else{l.authenticatedAttributesAsn1=v.create(v.Class.CONTEXT_SPECIFIC,0,!0,[]);for(var f=v.create(v.Class.UNIVERSAL,v.Type.SET,!0,[]),d=0;d<l.authenticatedAttributes.length;++d){var h=l.authenticatedAttributes[d];h.type===O.pki.oids.messageDigest?h.value=n[l.digestAlgorithm].digest():h.type===O.pki.oids.signingTime&&(h.value||(h.value=c)),f.value.push(Mf(h)),l.authenticatedAttributesAsn1.value.push(Mf(h))}o=v.toDer(f).getBytes(),l.md.start().update(o)}l.signature=l.key.sign(l.md,"RSASSA-PKCS1-V1_5")}t.signerInfos=oC(t.signers)}};wt.createEncryptedData=function(){var t=null;return t={type:O.pki.oids.encryptedData,version:0,encryptedContent:{algorithm:O.pki.oids["aes256-CBC"]},fromAsn1:function(e){Ff(t,e,wt.asn1.encryptedDataValidator)},decrypt:function(e){e!==void 0&&(t.encryptedContent.key=e),Qg(t)}},t};wt.createEnvelopedData=function(){var t=null;return t={type:O.pki.oids.envelopedData,version:0,recipients:[],encryptedContent:{algorithm:O.pki.oids["aes256-CBC"]},fromAsn1:function(e){var r=Ff(t,e,wt.asn1.envelopedDataValidator);t.recipients=nC(r.recipientInfos.value)},toAsn1:function(){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.type).getBytes()),v.create(v.Class.CONTEXT_SPECIFIC,0,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(t.version).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SET,!0,iC(t.recipients)),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,aC(t.encryptedContent))])])])},findRecipient:function(e){for(var r=e.issuer.attributes,n=0;n<t.recipients.length;++n){var i=t.recipients[n],s=i.issuer;if(i.serialNumber===e.serialNumber&&s.length===r.length){for(var o=!0,a=0;a<r.length;++a)if(s[a].type!==r[a].type||s[a].value!==r[a].value){o=!1;break}if(o)return i}}return null},decrypt:function(e,r){if(t.encryptedContent.key===void 0&&e!==void 0&&r!==void 0)switch(e.encryptedContent.algorithm){case O.pki.oids.rsaEncryption:case O.pki.oids.desCBC:var n=r.decrypt(e.encryptedContent.content);t.encryptedContent.key=O.util.createBuffer(n);break;default:throw new Error("Unsupported asymmetric cipher, OID "+e.encryptedContent.algorithm)}Qg(t)},addRecipient:function(e){t.recipients.push({version:0,issuer:e.issuer.attributes,serialNumber:e.serialNumber,encryptedContent:{algorithm:O.pki.oids.rsaEncryption,key:e.publicKey}})},encrypt:function(e,r){if(t.encryptedContent.content===void 0){r=r||t.encryptedContent.algorithm,e=e||t.encryptedContent.key;var n,i,s;switch(r){case O.pki.oids["aes128-CBC"]:n=16,i=16,s=O.aes.createEncryptionCipher;break;case O.pki.oids["aes192-CBC"]:n=24,i=16,s=O.aes.createEncryptionCipher;break;case O.pki.oids["aes256-CBC"]:n=32,i=16,s=O.aes.createEncryptionCipher;break;case O.pki.oids["des-EDE3-CBC"]:n=24,i=8,s=O.des.createEncryptionCipher;break;default:throw new Error("Unsupported symmetric cipher, OID "+r)}if(e===void 0)e=O.util.createBuffer(O.random.getBytes(n));else if(e.length()!=n)throw new Error("Symmetric key has wrong length; got "+e.length()+" bytes, expected "+n+".");t.encryptedContent.algorithm=r,t.encryptedContent.key=e,t.encryptedContent.parameter=O.util.createBuffer(O.random.getBytes(i));var o=s(e);if(o.start(t.encryptedContent.parameter.copy()),o.update(t.content),!o.finish())throw new Error("Symmetric encryption failed.");t.encryptedContent.content=o.output}for(var a=0;a<t.recipients.length;++a){var c=t.recipients[a];if(c.encryptedContent.content===void 0)switch(c.encryptedContent.algorithm){case O.pki.oids.rsaEncryption:c.encryptedContent.content=c.encryptedContent.key.encrypt(t.encryptedContent.key.data);break;default:throw new Error("Unsupported asymmetric cipher, OID "+c.encryptedContent.algorithm)}}}},t};function tC(t){var e={},r=[];if(!v.validate(t,wt.asn1.recipientInfoValidator,e,r)){var n=new Error("Cannot read PKCS#7 RecipientInfo. ASN.1 object is not an PKCS#7 RecipientInfo.");throw n.errors=r,n}return{version:e.version.charCodeAt(0),issuer:O.pki.RDNAttributesAsArray(e.issuer),serialNumber:O.util.createBuffer(e.serial).toHex(),encryptedContent:{algorithm:v.derToOid(e.encAlgorithm),parameter:e.encParameter?e.encParameter.value:void 0,content:e.encKey}}}function rC(t){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(t.version).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[O.pki.distinguishedNameToAsn1({attributes:t.issuer}),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,O.util.hexToBytes(t.serialNumber))]),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.encryptedContent.algorithm).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.encryptedContent.content)])}function nC(t){for(var e=[],r=0;r<t.length;++r)e.push(tC(t[r]));return e}function iC(t){for(var e=[],r=0;r<t.length;++r)e.push(rC(t[r]));return e}function sC(t){var e=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(t.version).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[O.pki.distinguishedNameToAsn1({attributes:t.issuer}),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,O.util.hexToBytes(t.serialNumber))]),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.digestAlgorithm).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")])]);if(t.authenticatedAttributesAsn1&&e.value.push(t.authenticatedAttributesAsn1),e.value.push(v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.signatureAlgorithm).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")])),e.value.push(v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.signature)),t.unauthenticatedAttributes.length>0){for(var r=v.create(v.Class.CONTEXT_SPECIFIC,1,!0,[]),n=0;n<t.unauthenticatedAttributes.length;++n){var i=t.unauthenticatedAttributes[n];r.values.push(Mf(i))}e.value.push(r)}return e}function oC(t){for(var e=[],r=0;r<t.length;++r)e.push(sC(t[r]));return e}function Mf(t){var e;if(t.type===O.pki.oids.contentType)e=v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.value).getBytes());else if(t.type===O.pki.oids.messageDigest)e=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.value.bytes());else if(t.type===O.pki.oids.signingTime){var r=new Date("1950-01-01T00:00:00Z"),n=new Date("2050-01-01T00:00:00Z"),i=t.value;if(typeof i=="string"){var s=Date.parse(i);isNaN(s)?i.length===13?i=v.utcTimeToDate(i):i=v.generalizedTimeToDate(i):i=new Date(s)}i>=r&&i<n?e=v.create(v.Class.UNIVERSAL,v.Type.UTCTIME,!1,v.dateToUtcTime(i)):e=v.create(v.Class.UNIVERSAL,v.Type.GENERALIZEDTIME,!1,v.dateToGeneralizedTime(i))}return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.type).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SET,!0,[e])])}function aC(t){return[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(O.pki.oids.data).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(t.algorithm).getBytes()),t.parameter?v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.parameter.getBytes()):void 0]),v.create(v.Class.CONTEXT_SPECIFIC,0,!0,[v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,t.content.getBytes())])]}function Ff(t,e,r){var n={},i=[];if(!v.validate(e,r,n,i)){var s=new Error("Cannot read PKCS#7 message. ASN.1 object is not a supported PKCS#7 message.");throw s.errors=s,s}var o=v.derToOid(n.contentType);if(o!==O.pki.oids.data)throw new Error("Unsupported PKCS#7 message. Only wrapped ContentType Data supported.");if(n.encryptedContent){var a="";if(O.util.isArray(n.encryptedContent))for(var c=0;c<n.encryptedContent.length;++c){if(n.encryptedContent[c].type!==v.Type.OCTETSTRING)throw new Error("Malformed PKCS#7 message, expecting encrypted content constructed of only OCTET STRING objects.");a+=n.encryptedContent[c].value}else a=n.encryptedContent;t.encryptedContent={algorithm:v.derToOid(n.encAlgorithm),parameter:O.util.createBuffer(n.encParameter.value),content:O.util.createBuffer(a)}}if(n.content){var a="";if(O.util.isArray(n.content))for(var c=0;c<n.content.length;++c){if(n.content[c].type!==v.Type.OCTETSTRING)throw new Error("Malformed PKCS#7 message, expecting content constructed of only OCTET STRING objects.");a+=n.content[c].value}else a=n.content;t.content=O.util.createBuffer(a)}return t.version=n.version.charCodeAt(0),t.rawCapture=n,n}function Qg(t){if(t.encryptedContent.key===void 0)throw new Error("Symmetric key not available.");if(t.content===void 0){var e;switch(t.encryptedContent.algorithm){case O.pki.oids["aes128-CBC"]:case O.pki.oids["aes192-CBC"]:case O.pki.oids["aes256-CBC"]:e=O.aes.createDecryptionCipher(t.encryptedContent.key);break;case O.pki.oids.desCBC:case O.pki.oids["des-EDE3-CBC"]:e=O.des.createDecryptionCipher(t.encryptedContent.key);break;default:throw new Error("Unsupported symmetric cipher, OID "+t.encryptedContent.algorithm)}if(e.start(t.encryptedContent.parameter),e.update(t.encryptedContent.content),!e.finish())throw new Error("Symmetric decryption failed.");t.content=e.output}}});var Jg=N(($4,Zg)=>{var Wr=ie();Cn();De();var cC=Zg.exports=Wr.hmac=Wr.hmac||{};cC.create=function(){var t=null,e=null,r=null,n=null,i={};return i.start=function(s,o){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in Wr.md.algorithms)e=Wr.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else e=s;if(o===null)o=t;else{if(typeof o=="string")o=Wr.util.createBuffer(o);else if(Wr.util.isArray(o)){var a=o;o=Wr.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>e.blockLength&&(e.start(),e.update(o.bytes()),o=e.digest()),r=Wr.util.createBuffer(),n=Wr.util.createBuffer(),u=o.length();for(var c=0;c<u;++c){var a=o.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<e.blockLength)for(var a=e.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);t=o,r=r.bytes(),n=n.bytes()}e.start(),e.update(r)},i.update=function(s){e.update(s)},i.getMac=function(){var s=e.digest().bytes();return e.start(),e.update(n),e.update(s),e.digest()},i.digest=i.getMac,i}});var Kf=N((G4,eE)=>{var xt=ie();Jg();Cn();De();var uC=xt.pkcs5=xt.pkcs5||{},Qr;xt.util.isNodejs&&!xt.options.usePureJavaScript&&(Qr=ei());eE.exports=xt.pbkdf2=uC.pbkdf2=function(t,e,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),xt.util.isNodejs&&!xt.options.usePureJavaScript&&Qr.pbkdf2&&(i===null||typeof i!="object")&&(Qr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),t=Buffer.from(t,"binary"),e=Buffer.from(e,"binary"),s?Qr.pbkdf2Sync.length===4?Qr.pbkdf2(t,e,r,n,function(_,B){if(_)return s(_);s(null,B.toString("binary"))}):Qr.pbkdf2(t,e,r,n,i,function(_,B){if(_)return s(_);s(null,B.toString("binary"))}):Qr.pbkdf2Sync.length===4?Qr.pbkdf2Sync(t,e,r,n).toString("binary"):Qr.pbkdf2Sync(t,e,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in xt.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=xt.md[i].create()}var o=i.digestLength;if(n>4294967295*o){var a=new Error("Derived key is too long.");if(s)return s(a);throw a}var c=Math.ceil(n/o),u=n-(c-1)*o,l=xt.hmac.create();l.start(i,t);var f="",d,h,p;if(!s){for(var y=1;y<=c;++y){l.start(null,null),l.update(e),l.update(xt.util.int32ToBytes(y)),d=p=l.digest().getBytes();for(var g=2;g<=r;++g)l.start(null,null),l.update(p),h=l.digest().getBytes(),d=xt.util.xorBytes(d,h,o),p=h;f+=y<c?d:d.substr(0,u)}return f}var y=1,g;function E(){if(y>c)return s(null,f);l.start(null,null),l.update(e),l.update(xt.util.int32ToBytes(y)),d=p=l.digest().getBytes(),g=2,x()}function x(){if(g<=r)return l.start(null,null),l.update(p),h=l.digest().getBytes(),d=xt.util.xorBytes(d,h,o),p=h,++g,xt.util.setImmediate(x);f+=y<c?d:d.substr(0,u),++y,E()}E()}});var iE=N((Y4,nE)=>{var _t=ie();De();var Vf=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],tE=[1,2,3,5],lC=function(t,e){return t<<e&65535|(t&65535)>>16-e},fC=function(t,e){return(t&65535)>>e|t<<16-e&65535};nE.exports=_t.rc2=_t.rc2||{};_t.rc2.expandKey=function(t,e){typeof t=="string"&&(t=_t.util.createBuffer(t)),e=e||128;var r=t,n=t.length(),i=e,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(Vf[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,Vf[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,Vf[r.at(a+1)^r.at(a+s)]);return r};var rE=function(t,e,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(t=_t.rc2.expandKey(t,e),u=0;u<64;u++)f.push(t.getInt16Le());r?(a=function(p){for(u=0;u<4;u++)p[u]+=f[l]+(p[(u+3)%4]&p[(u+2)%4])+(~p[(u+3)%4]&p[(u+1)%4]),p[u]=lC(p[u],tE[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]=fC(p[u],tE[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 d=function(p){var y=[];for(u=0;u<4;u++){var g=i.getInt16Le();o!==null&&(r?g^=o.getInt16Le():o.putInt16Le(g)),y.push(g&65535)}l=r?0:63;for(var E=0;E<p.length;E++)for(var x=0;x<p[E][0];x++)p[E][1](y);for(u=0;u<4;u++)o!==null&&(r?o.putInt16Le(y[u]):y[u]^=o.getInt16Le()),s.putInt16Le(y[u])},h=null;return h={start:function(p,y){p&&typeof p=="string"&&(p=_t.util.createBuffer(p)),n=!1,i=_t.util.createBuffer(),s=y||new _t.util.createBuffer,o=p,h.output=s},update:function(p){for(n||i.putBuffer(p);i.length()>=8;)d([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(p){var y=!0;if(r)if(p)y=p(8,i,!r);else{var g=i.length()===8?8:8-i.length();i.fillWithByte(g,g)}if(y&&(n=!0,h.update()),!r&&(y=i.length()===0,y))if(p)y=p(8,s,!r);else{var E=s.length(),x=s.at(E-1);x>E?y=!1:s.truncate(x)}return y}},h};_t.rc2.startEncrypting=function(t,e,r){var n=_t.rc2.createEncryptionCipher(t,128);return n.start(e,r),n};_t.rc2.createEncryptionCipher=function(t,e){return rE(t,e,!0)};_t.rc2.startDecrypting=function(t,e,r){var n=_t.rc2.createDecryptionCipher(t,128);return n.start(e,r),n};_t.rc2.createDecryptionCipher=function(t,e){return rE(t,e,!1)}});var qf=N((W4,uE)=>{var F=ie();ns();An();uc();Cn();is();Kf();hc();ci();iE();co();De();typeof sE>"u"&&(sE=F.jsbn.BigInteger);var sE,A=F.asn1,J=F.pki=F.pki||{};uE.exports=J.pbe=F.pbe=F.pbe||{};var di=J.oids,hC={name:"EncryptedPrivateKeyInfo",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},dC={name:"PBES2Algorithms",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},pC={name:"pkcs-12PbeParams",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"iterations"}]};J.encryptPrivateKeyInfo=function(t,e,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=F.random.getBytesSync(r.saltSize),i=r.count,s=A.integerToDer(i),o,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,l,f;switch(r.algorithm){case"aes128":o=16,u=16,l=di["aes128-CBC"],f=F.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=di["aes192-CBC"],f=F.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=di["aes256-CBC"],f=F.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=di.desCBC,f=F.des.createEncryptionCipher;break;default:var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var h="hmacWith"+r.prfAlgorithm.toUpperCase(),p=cE(h),y=F.pkcs5.pbkdf2(e,n,i,o,p),g=F.random.getBytesSync(u),E=f(y);E.start(g),E.update(A.toDer(t)),E.finish(),c=E.output.getBytes();var x=mC(n,s,o,h);a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(di.pkcs5PBES2).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(di.pkcs5PBKDF2).getBytes()),x]),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(l).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,g)])])])}else if(r.algorithm==="3des"){o=24;var _=new F.util.ByteBuffer(n),y=J.pbe.generatePkcs12Key(e,_,1,i,o),g=J.pbe.generatePkcs12Key(e,_,2,i,o),E=F.des.createEncryptionCipher(y);E.start(g),E.update(A.toDer(t)),E.finish(),c=E.output.getBytes(),a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(di["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,n),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,s.getBytes())])])}else{var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var B=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[a,A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,c)]);return B};J.decryptPrivateKeyInfo=function(t,e){var r=null,n={},i=[];if(!A.validate(t,hC,n,i)){var s=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=A.derToOid(n.encryptionOid),a=J.pbe.getCipher(o,n.encryptionParams,e),c=F.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=A.fromDer(a.output)),r};J.encryptedPrivateKeyToPem=function(t,e){var r={type:"ENCRYPTED PRIVATE KEY",body:A.toDer(t).getBytes()};return F.pem.encode(r,{maxline:e})};J.encryptedPrivateKeyFromPem=function(t){var e=F.pem.decode(t)[0];if(e.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=e.type,r}if(e.procType&&e.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return A.fromDer(e.body)};J.encryptRsaPrivateKey=function(t,e,r){if(r=r||{},!r.legacy){var n=J.wrapRsaPrivateKey(J.privateKeyToAsn1(t));return n=J.encryptPrivateKeyInfo(n,e,r),J.encryptedPrivateKeyToPem(n)}var i,s,o,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",o=16,s=F.random.getBytesSync(16),a=F.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",o=24,s=F.random.getBytesSync(16),a=F.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",o=32,s=F.random.getBytesSync(16),a=F.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",o=24,s=F.random.getBytesSync(8),a=F.des.createEncryptionCipher;break;case"des":i="DES-CBC",o=8,s=F.random.getBytesSync(8),a=F.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=F.pbe.opensslDeriveBytes(e,s.substr(0,8),o),l=a(u);l.start(s),l.update(A.toDer(J.privateKeyToAsn1(t))),l.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:F.util.bytesToHex(s).toUpperCase()},body:l.output.getBytes()};return F.pem.encode(f)};J.decryptRsaPrivateKey=function(t,e){var r=null,n=F.pem.decode(t)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var s,o;switch(n.dekInfo.algorithm){case"DES-CBC":s=8,o=F.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,o=F.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,o=F.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,o=F.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,o=F.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,o=function(f){return F.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":s=8,o=function(f){return F.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":s=16,o=function(f){return F.rc2.createDecryptionCipher(f,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=F.util.hexToBytes(n.dekInfo.parameters),c=F.pbe.opensslDeriveBytes(e,a.substr(0,8),s),u=o(c);if(u.start(a),u.update(F.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=J.decryptPrivateKeyInfo(A.fromDer(r),e):r=A.fromDer(r),r!==null&&(r=J.privateKeyFromAsn1(r)),r};J.pbe.generatePkcs12Key=function(t,e,r,n,i,s){var o,a;if(typeof s>"u"||s===null){if(!("sha1"in F.md))throw new Error('"sha1" hash algorithm unavailable.');s=F.md.sha1.create()}var c=s.digestLength,u=s.blockLength,l=new F.util.ByteBuffer,f=new F.util.ByteBuffer;if(t!=null){for(a=0;a<t.length;a++)f.putInt16(t.charCodeAt(a));f.putInt16(0)}var d=f.length(),h=e.length(),p=new F.util.ByteBuffer;p.fillWithByte(r,u);var y=u*Math.ceil(h/u),g=new F.util.ByteBuffer;for(a=0;a<y;a++)g.putByte(e.at(a%h));var E=u*Math.ceil(d/u),x=new F.util.ByteBuffer;for(a=0;a<E;a++)x.putByte(f.at(a%d));var _=g;_.putBuffer(x);for(var B=Math.ceil(i/c),D=1;D<=B;D++){var L=new F.util.ByteBuffer;L.putBytes(p.bytes()),L.putBytes(_.bytes());for(var te=0;te<n;te++)s.start(),s.update(L.getBytes()),L=s.digest();var ce=new F.util.ByteBuffer;for(a=0;a<u;a++)ce.putByte(L.at(a%c));var st=Math.ceil(h/u)+Math.ceil(d/u),Jt=new F.util.ByteBuffer;for(o=0;o<st;o++){var It=new F.util.ByteBuffer(_.getBytes(u)),Et=511;for(a=ce.length()-1;a>=0;a--)Et=Et>>8,Et+=ce.at(a)+It.at(a),It.setAt(a,Et&255);Jt.putBuffer(It)}_=Jt,l.putBuffer(L)}return l.truncate(l.length()-i),l};J.pbe.getCipher=function(t,e,r){switch(t){case J.oids.pkcs5PBES2:return J.pbe.getCipherForPBES2(t,e,r);case J.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case J.oids["pbewithSHAAnd40BitRC2-CBC"]:return J.pbe.getCipherForPKCS12PBE(t,e,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=t,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};J.pbe.getCipherForPBES2=function(t,e,r){var n={},i=[];if(!A.validate(e,dC,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}if(t=A.derToOid(n.kdfOid),t!==J.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=t,s.supportedOids=["pkcs5PBKDF2"],s}if(t=A.derToOid(n.encOid),t!==J.oids["aes128-CBC"]&&t!==J.oids["aes192-CBC"]&&t!==J.oids["aes256-CBC"]&&t!==J.oids["des-EDE3-CBC"]&&t!==J.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=t,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var o=n.kdfSalt,a=F.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(J.oids[t]){case"aes128-CBC":c=16,u=F.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=F.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=F.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=F.des.createDecryptionCipher;break;case"desCBC":c=8,u=F.des.createDecryptionCipher;break}var l=aE(n.prfOid),f=F.pkcs5.pbkdf2(r,o,a,c,l),d=n.encIv,h=u(f);return h.start(d),h};J.pbe.getCipherForPKCS12PBE=function(t,e,r){var n={},i=[];if(!A.validate(e,pC,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=F.util.createBuffer(n.salt),a=F.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,l;switch(t){case J.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=F.des.startDecrypting;break;case J.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(y,g){var E=F.rc2.createDecryptionCipher(y,40);return E.start(g,null),E};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=t,s}var f=aE(n.prfOid),d=J.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var h=J.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(d,h)};J.pbe.opensslDeriveBytes=function(t,e,r,n){if(typeof n>"u"||n===null){if(!("md5"in F.md))throw new Error('"md5" hash algorithm unavailable.');n=F.md.md5.create()}e===null&&(e="");for(var i=[oE(n,t+e)],s=16,o=1;s<r;++o,s+=16)i.push(oE(n,i[o-1]+t+e));return i.join("").substr(0,r)};function oE(t,e){return t.start().update(e).digest().getBytes()}function aE(t){var e;if(!t)e="hmacWithSHA1";else if(e=J.oids[A.derToOid(t)],!e){var r=new Error("Unsupported PRF OID.");throw r.oid=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return cE(e)}function cE(t){var e=F.md;switch(t){case"hmacWithSHA224":e=F.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":t=t.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!e||!(t in e))throw new Error("Unknown hash algorithm: "+t);return e[t].create()}function mC(t,e,r,n){var i=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,t),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,e.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,F.util.hexToBytes(r.toString(16))),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(J.oids[n]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.NULL,!1,"")])),i}});var SE=N((k8,bE)=>{var Oe=ie();Cn();De();var uo=bE.exports=Oe.sha512=Oe.sha512||{};Oe.md.sha512=Oe.md.algorithms.sha512=uo;var wE=Oe.sha384=Oe.sha512.sha384=Oe.sha512.sha384||{};wE.create=function(){return uo.create("SHA-384")};Oe.md.sha384=Oe.md.algorithms.sha384=wE;Oe.sha512.sha256=Oe.sha512.sha256||{create:function(){return uo.create("SHA-512/256")}};Oe.md["sha512/256"]=Oe.md.algorithms["sha512/256"]=Oe.sha512.sha256;Oe.sha512.sha224=Oe.sha512.sha224||{create:function(){return uo.create("SHA-512/224")}};Oe.md["sha512/224"]=Oe.md.algorithms["sha512/224"]=Oe.sha512.sha224;uo.create=function(t){if(xE||xC(),typeof t>"u"&&(t="SHA-512"),!(t in pi))throw new Error("Invalid SHA-512 algorithm: "+t);for(var e=pi[t],r=null,n=Oe.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(t){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:t.replace("-","").toLowerCase(),blockLength:128,digestLength:o,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=Oe.util.createBuffer(),r=new Array(e.length);for(var u=0;u<e.length;++u)r[u]=e[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=Oe.util.encodeUtf8(c));var l=c.length;a.messageLength+=l,l=[l/4294967296>>>0,l>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=l[1],l[1]=l[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,l[0]=l[1]/4294967296>>>0;return n.putBytes(c),vE(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=Oe.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes($f.substr(0,a.blockLength-l));for(var f,d,h=a.fullMessageLength[0]*8,p=0;p<a.fullMessageLength.length-1;++p)f=a.fullMessageLength[p+1]*8,d=f/4294967296>>>0,h+=d,c.putInt32(h>>>0),h=f>>>0;c.putInt32(h);for(var y=new Array(r.length),p=0;p<r.length;++p)y[p]=r[p].slice(0);vE(y,i,c);var g=Oe.util.createBuffer(),E;t==="SHA-512"?E=y.length:t==="SHA-384"?E=y.length-2:E=y.length-4;for(var p=0;p<E;++p)g.putInt32(y[p][0]),(p!==E-1||t!=="SHA-512/224")&&g.putInt32(y[p][1]);return g},a};var $f=null,xE=!1,Gf=null,pi=null;function xC(){$f=String.fromCharCode(128),$f+=Oe.util.fillString(String.fromCharCode(0),128),Gf=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],pi={},pi["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],pi["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],pi["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],pi["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],xE=!0}function vE(t,e,r){for(var n,i,s,o,a,c,u,l,f,d,h,p,y,g,E,x,_,B,D,L,te,ce,st,Jt,It,Et,Ti,Zo,Je,St,G,Tu,Ru,Nu,Du,vd=r.length();vd>=128;){for(Je=0;Je<16;++Je)e[Je][0]=r.getInt32()>>>0,e[Je][1]=r.getInt32()>>>0;for(;Je<80;++Je)Tu=e[Je-2],St=Tu[0],G=Tu[1],n=((St>>>19|G<<13)^(G>>>29|St<<3)^St>>>6)>>>0,i=((St<<13|G>>>19)^(G<<3|St>>>29)^(St<<26|G>>>6))>>>0,Nu=e[Je-15],St=Nu[0],G=Nu[1],s=((St>>>1|G<<31)^(St>>>8|G<<24)^St>>>7)>>>0,o=((St<<31|G>>>1)^(St<<24|G>>>8)^(St<<25|G>>>7))>>>0,Ru=e[Je-7],Du=e[Je-16],G=i+Ru[1]+o+Du[1],e[Je][0]=n+Ru[0]+s+Du[0]+(G/4294967296>>>0)>>>0,e[Je][1]=G>>>0;for(y=t[0][0],g=t[0][1],E=t[1][0],x=t[1][1],_=t[2][0],B=t[2][1],D=t[3][0],L=t[3][1],te=t[4][0],ce=t[4][1],st=t[5][0],Jt=t[5][1],It=t[6][0],Et=t[6][1],Ti=t[7][0],Zo=t[7][1],Je=0;Je<80;++Je)u=((te>>>14|ce<<18)^(te>>>18|ce<<14)^(ce>>>9|te<<23))>>>0,l=((te<<18|ce>>>14)^(te<<14|ce>>>18)^(ce<<23|te>>>9))>>>0,f=(It^te&(st^It))>>>0,d=(Et^ce&(Jt^Et))>>>0,a=((y>>>28|g<<4)^(g>>>2|y<<30)^(g>>>7|y<<25))>>>0,c=((y<<4|g>>>28)^(g<<30|y>>>2)^(g<<25|y>>>7))>>>0,h=(y&E|_&(y^E))>>>0,p=(g&x|B&(g^x))>>>0,G=Zo+l+d+Gf[Je][1]+e[Je][1],n=Ti+u+f+Gf[Je][0]+e[Je][0]+(G/4294967296>>>0)>>>0,i=G>>>0,G=c+p,s=a+h+(G/4294967296>>>0)>>>0,o=G>>>0,Ti=It,Zo=Et,It=st,Et=Jt,st=te,Jt=ce,G=L+i,te=D+n+(G/4294967296>>>0)>>>0,ce=G>>>0,D=_,L=B,_=E,B=x,E=y,x=g,G=i+o,y=n+s+(G/4294967296>>>0)>>>0,g=G>>>0;G=t[0][1]+g,t[0][0]=t[0][0]+y+(G/4294967296>>>0)>>>0,t[0][1]=G>>>0,G=t[1][1]+x,t[1][0]=t[1][0]+E+(G/4294967296>>>0)>>>0,t[1][1]=G>>>0,G=t[2][1]+B,t[2][0]=t[2][0]+_+(G/4294967296>>>0)>>>0,t[2][1]=G>>>0,G=t[3][1]+L,t[3][0]=t[3][0]+D+(G/4294967296>>>0)>>>0,t[3][1]=G>>>0,G=t[4][1]+ce,t[4][0]=t[4][0]+te+(G/4294967296>>>0)>>>0,t[4][1]=G>>>0,G=t[5][1]+Jt,t[5][0]=t[5][0]+st+(G/4294967296>>>0)>>>0,t[5][1]=G>>>0,G=t[6][1]+Et,t[6][0]=t[6][0]+It+(G/4294967296>>>0)>>>0,t[6][1]=G>>>0,G=t[7][1]+Zo,t[7][0]=t[7][0]+Ti+(G/4294967296>>>0)>>>0,t[7][1]=G>>>0,vd-=128}}});var iw=N((p6,nw)=>{function BI(){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)}nw.exports=BI});var Ew=N((d5,Fh)=>{"use strict";var MI=Object.prototype.hasOwnProperty,bt="~";function qo(){}Object.create&&(qo.prototype=Object.create(null),new qo().__proto__||(bt=!1));function FI(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function gw(t,e,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new FI(r,n||t,i),o=bt?bt+e:e;return t._events[o]?t._events[o].fn?t._events[o]=[t._events[o],s]:t._events[o].push(s):(t._events[o]=s,t._eventsCount++),t}function uu(t,e){--t._eventsCount===0?t._events=new qo:delete t._events[e]}function gt(){this._events=new qo,this._eventsCount=0}gt.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)MI.call(r,n)&&e.push(bt?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};gt.prototype.listeners=function(e){var r=bt?bt+e:e,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i<s;i++)o[i]=n[i].fn;return o};gt.prototype.listenerCount=function(e){var r=bt?bt+e:e,n=this._events[r];return n?n.fn?1:n.length:0};gt.prototype.emit=function(e,r,n,i,s,o){var a=bt?bt+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,s),!0;case 6:return c.fn.call(c.context,r,n,i,s,o),!0}for(f=1,l=new Array(u-1);f<u;f++)l[f-1]=arguments[f];c.fn.apply(c.context,l)}else{var d=c.length,h;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),u){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,r);break;case 3:c[f].fn.call(c[f].context,r,n);break;case 4:c[f].fn.call(c[f].context,r,n,i);break;default:if(!l)for(h=1,l=new Array(u-1);h<u;h++)l[h-1]=arguments[h];c[f].fn.apply(c[f].context,l)}}return!0};gt.prototype.on=function(e,r,n){return gw(this,e,r,n,!1)};gt.prototype.once=function(e,r,n){return gw(this,e,r,n,!0)};gt.prototype.removeListener=function(e,r,n,i){var s=bt?bt+e:e;if(!this._events[s])return this;if(!r)return uu(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&uu(this,s);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==r||i&&!o[a].once||n&&o[a].context!==n)&&c.push(o[a]);c.length?this._events[s]=c.length===1?c[0]:c:uu(this,s)}return this};gt.prototype.removeAllListeners=function(e){var r;return e?(r=bt?bt+e:e,this._events[r]&&uu(this,r)):(this._events=new qo,this._eventsCount=0),this};gt.prototype.off=gt.prototype.removeListener;gt.prototype.addListener=gt.prototype.on;gt.prefixed=bt;gt.EventEmitter=gt;typeof Fh<"u"&&(Fh.exports=gt)});var Mw=N((nU,Uw)=>{"use strict";Uw.exports=kw;var zI=Lu(),qn=kw.prototype,$I=new Date%1e9;function GI(){return(Math.random()*1e9>>>0)+$I++}function kw(t){t=t||{},this.id=t.id||GI(),this.max=t.max||1/0,this.items=t.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(t.lastModified||new Date);for(var e,r,n=this.items.length;n--;)e=this.items[n],r=new Date(e.expires)-new Date,this._lookup[e.key]=e,r>0?this.expire(e.key,r):r<=0&&this.delete(e.key)}qn.has=function(t){return t in this._lookup};qn.get=function(t){if(!this.has(t))return null;var e=this._lookup[t];return e.refresh&&this.expire(t,e.refresh),this.items.splice(this.items.indexOf(e),1),this.items.push(e),e.value};qn.meta=function(t){if(!this.has(t))return null;var e=this._lookup[t];return"meta"in e?e.meta:null};qn.set=function(t,e,r){var n=this._lookup[t],i=this._lookup[t]={key:t,value:e};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),r&&("ttl"in r&&this.expire(t,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};qn.delete=function(t){var e=this._lookup[t];return e?(this.lastModified=new Date,this.items.splice(this.items.indexOf(e),1),clearTimeout(e.timeout),delete this._lookup[t],this.size--,this):!1};qn.expire=function(t,e){var r=e||0,n=this._lookup[t];if(!n)return this;if(typeof r=="string"&&(r=zI(e)),typeof r!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),r),n.expires=Number(new Date)+r,this};qn.clear=function(){for(var t=this.items.length;t--;)this.delete(this.items[t].key);return this};qn.toJSON=function(){for(var t=new Array(this.items.length),e,r=t.length;r--;)e=this.items[r],t[r]={key:e.key,meta:e.meta,value:e.value,expires:e.expires,refresh:e.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:t}}});var md=N((UU,pd)=>{function Ww(t){let e=new globalThis.AbortController;function r(){e.abort();for(let n of t)!n||!n.removeEventListener||n.removeEventListener("abort",r)}for(let n of t)if(!(!n||!n.addEventListener)){if(n.aborted){r();break}n.addEventListener("abort",r)}return e.signal}pd.exports=Ww;pd.exports.anySignal=Ww});var Xw=N((FU,Qw)=>{Qw.exports=class{constructor(e){if(!(e>0)||e-1&e)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var Jw=N((VU,Zw)=>{var jw=Xw();Zw.exports=class{constructor(e){this.hwm=e||16,this.head=new jw(this.hwm),this.tail=this.head}push(e){if(!this.head.push(e)){let r=this.head;this.head=r.next=new jw(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next){let r=this.tail.next;return this.tail.next=null,this.tail=r,this.tail.shift()}return e}peek(){return this.tail.peek()}isEmpty(){return this.head.isEmpty()}}});var t1=N((qU,e1)=>{"use strict";var tT=()=>{let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t};e1.exports=tT});var s1=N((zU,i1)=>{var r1=Jw(),n1=t1();i1.exports=class{constructor(){this._buffer=new r1,this._waitingConsumers=new r1}push(e){let{promise:r,resolve:n}=n1();return this._buffer.push({chunk:e,resolve:n}),this._consume(),r}_consume(){for(;!this._waitingConsumers.isEmpty()&&!this._buffer.isEmpty();){let e=this._waitingConsumers.shift(),r=this._buffer.shift();e.resolve(r.chunk),r.resolve()}}shift(){let{promise:e,resolve:r}=n1();return this._waitingConsumers.push({resolve:r}),this._consume(),e}isEmpty(){return this._buffer.isEmpty()}}});var sT={};pt(sT,{createLibp2p:()=>iT});var dr=C(Pu(),1);var Mu={};pt(Mu,{base58btc:()=>We,base58flickr:()=>k1});function D1(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var y=0,g=0,E=0,x=p.length;E!==x&&p[E]===0;)E++,y++;for(var _=(x-E)*l+1>>>0,B=new Uint8Array(_);E!==x;){for(var D=p[E],L=0,te=_-1;(D!==0||L<g)&&te!==-1;te--,L++)D+=256*B[te]>>>0,B[te]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");g=L,E++}for(var ce=_-g;ce!==_&&B[ce]===0;)ce++;for(var st=c.repeat(y);ce<_;++ce)st+=t.charAt(B[ce]);return st}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var y=0;if(p[y]!==" "){for(var g=0,E=0;p[y]===c;)g++,y++;for(var x=(p.length-y)*u+1>>>0,_=new Uint8Array(x);p[y];){var B=r[p.charCodeAt(y)];if(B===255)return;for(var D=0,L=x-1;(B!==0||D<E)&&L!==-1;L--,D++)B+=a*_[L]>>>0,_[L]=B%256>>>0,B=B/256>>>0;if(B!==0)throw new Error("Non-zero carry");E=D,y++}if(p[y]!==" "){for(var te=x-E;te!==x&&_[te]===0;)te++;for(var ce=new Uint8Array(g+(x-te)),st=g;te!==x;)ce[st++]=_[te++];return ce}}}function h(p){var y=d(p);if(y)return y;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:d,decode:h}}var L1=D1,P1=L1,_d=P1;var lT=new Uint8Array(0);var Ad=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},Or=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Cd=t=>new TextEncoder().encode(t),Id=t=>new TextDecoder().decode(t);var Bu=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")}},Ou=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Rd(this,e)}},ku=class{constructor(e){this.decoders=e}or(e){return Rd(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Rd=(t,e)=>new ku({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),Uu=class{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Bu(e,r,n),this.decoder=new Ou(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Li=({name:t,prefix:e,encode:r,decode:n})=>new Uu(t,e,r,n),ln=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:i}=_d(r,e);return Li({prefix:t,name:e,encode:n,decode:s=>Or(i(s))})},B1=(t,e,r,n)=>{let i={};for(let l=0;l<e.length;++l)i[e[l]]=l;let s=t.length;for(;t[s-1]==="=";)--s;let o=new Uint8Array(s*r/8|0),a=0,c=0,u=0;for(let l=0;l<s;++l){let f=i[t[l]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|f,a+=r,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},O1=(t,e,r)=>{let n=e[e.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>r;)o-=r,s+=e[i&a>>o];if(o&&(s+=e[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},He=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>Li({prefix:e,name:t,encode(i){return O1(i,n,r)},decode(i){return B1(i,n,r,t)}});var We=ln({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),k1=ln({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Fu={};pt(Fu,{base32:()=>Rt,base32hex:()=>K1,base32hexpad:()=>q1,base32hexpadupper:()=>H1,base32hexupper:()=>V1,base32pad:()=>M1,base32padupper:()=>F1,base32upper:()=>U1,base32z:()=>z1});var Rt=He({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),U1=He({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),M1=He({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),F1=He({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),K1=He({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),V1=He({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),q1=He({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),H1=He({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),z1=He({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ku={};pt(Ku,{base64:()=>zn,base64pad:()=>$1,base64url:()=>G1,base64urlpad:()=>Y1});var zn=He({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),$1=He({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),G1=He({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Y1=He({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});dr.default.formatters.b=t=>t==null?"undefined":We.baseEncode(t);dr.default.formatters.t=t=>t==null?"undefined":Rt.baseEncode(t);dr.default.formatters.m=t=>t==null?"undefined":zn.baseEncode(t);dr.default.formatters.p=t=>t==null?"undefined":t.toString();dr.default.formatters.c=t=>t==null?"undefined":t.toString();dr.default.formatters.k=t=>t==null?"undefined":t.toString();function M(t){return Object.assign((0,dr.default)(t),{error:(0,dr.default)(`${t}:error`),trace:(0,dr.default)(`${t}:trace`)})}var $n=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},kr,Ue=class extends EventTarget{constructor(){super(...arguments),kr.set(this,new Map)}listenerCount(e){let r=$n(this,kr,"f").get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=$n(this,kr,"f").get(e);i==null&&(i=[],$n(this,kr,"f").set(e,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let i=$n(this,kr,"f").get(e);i!=null&&(i=i.filter(({callback:s})=>s!==r),$n(this,kr,"f").set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=$n(this,kr,"f").get(e.type);return n==null||(n=n.filter(({once:i})=>!i),$n(this,kr,"f").set(e.type,n)),r}safeDispatchEvent(e,r){return this.dispatchEvent(new X(e,r))}};kr=new WeakMap;var Vu=class extends Event{constructor(e,r){super(e,r),this.detail=r?.detail}},X=globalThis.CustomEvent??Vu;function Ur(t){return t!=null&&typeof t.start=="function"&&typeof t.stop=="function"}var ra=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,r,n,i){return this.readAtomically(()=>{let s=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let l=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,e);if(!Number.isNaN(d))return d});if(l===void 0)break;if(s*=e,s+=l,s>u||(o+=1,r!==void 0&&o>r))return}if(o!==0)return!n&&c&&o>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return r[i]=o[0],r[i+1]=o[1],r[i+2]=o[2],r[i+3]=o[3],[i+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[i,!1];r[i]=s>>8,r[i+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=e(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),o=16-(n+2),[a]=e(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Nd=45,W1=15,Pi=new ra;function Dd(t){if(!(t.length>W1))return Pi.new(t).parseWith(()=>Pi.readIPv4Addr())}function Ld(t){if(!(t.length>Nd))return Pi.new(t).parseWith(()=>Pi.readIPv6Addr())}function Pd(t){if(!(t.length>Nd))return Pi.new(t).parseWith(()=>Pi.readIPAddr())}function Bd(t){return Boolean(Dd(t))}function Od(t){return Boolean(Ld(t))}function Bi(t){return Boolean(Pd(t))}var qu={};pt(qu,{identity:()=>Q1});var Q1=Li({prefix:"\0",name:"identity",encode:t=>Id(t),decode:t=>Cd(t)});var Hu={};pt(Hu,{base2:()=>X1});var X1=He({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var zu={};pt(zu,{base8:()=>j1});var j1=He({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var $u={};pt($u,{base10:()=>Z1});var Z1=ln({prefix:"9",name:"base10",alphabet:"0123456789"});var Gu={};pt(Gu,{base16:()=>J1,base16upper:()=>ex});var J1=He({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),ex=He({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Yu={};pt(Yu,{base36:()=>tx,base36upper:()=>rx});var tx=ln({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),rx=ln({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Wu={};pt(Wu,{base256emoji:()=>ax});var kd=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),nx=kd.reduce((t,e,r)=>(t[r]=e,t),[]),ix=kd.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function sx(t){return t.reduce((e,r)=>(e+=nx[r],e),"")}function ox(t){let e=[];for(let r of t){let n=ix[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var ax=Li({prefix:"\u{1F680}",name:"base256emoji",encode:sx,decode:ox});var Zu={};pt(Zu,{sha256:()=>ot,sha512:()=>Cx});var cx=Fd,Ud=128,ux=127,lx=~ux,fx=Math.pow(2,31);function Fd(t,e,r){e=e||[],r=r||0;for(var n=r;t>=fx;)e[r++]=t&255|Ud,t/=128;for(;t&lx;)e[r++]=t&255|Ud,t>>>=7;return e[r]=t|0,Fd.bytes=r-n+1,e}var hx=Qu,dx=128,Md=127;function Qu(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a)throw Qu.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&Md)<<i:(o&Md)*Math.pow(2,i),i+=7}while(o>=dx);return Qu.bytes=s-n,r}var px=Math.pow(2,7),mx=Math.pow(2,14),yx=Math.pow(2,21),gx=Math.pow(2,28),Ex=Math.pow(2,35),vx=Math.pow(2,42),wx=Math.pow(2,49),xx=Math.pow(2,56),bx=Math.pow(2,63),Sx=function(t){return t<px?1:t<mx?2:t<yx?3:t<gx?4:t<Ex?5:t<vx?6:t<wx?7:t<xx?8:t<bx?9:10},_x={encode:cx,decode:hx,encodingLength:Sx},Ax=_x,Ns=Ax;var Ds=(t,e=0)=>[Ns.decode(t,e),Ns.decode.bytes],Oi=(t,e,r=0)=>(Ns.encode(t,e,r),e),ki=t=>Ns.encodingLength(t);var pr=(t,e)=>{let r=e.byteLength,n=ki(t),i=n+ki(r),s=new Uint8Array(i+r);return Oi(t,s,0),Oi(r,s,n),s.set(e,i),new Ui(t,r,e,s)},Gn=t=>{let e=Or(t),[r,n]=Ds(e),[i,s]=Ds(e.subarray(n)),o=e.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new Ui(r,i,o,e)},Kd=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Ad(t.bytes,r.bytes)}},Ui=class{constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}};var ju=({name:t,code:e,encode:r})=>new Xu(t,e,r),Xu=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?pr(this.code,r):r.then(n=>pr(this.code,n))}else throw Error("Unknown type, must be binary type")}};var qd=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),ot=ju({name:"sha2-256",code:18,encode:qd("SHA-256")}),Cx=ju({name:"sha2-512",code:19,encode:qd("SHA-512")});var Ju={};pt(Ju,{identity:()=>fn});var Hd=0,Ix="identity",zd=Or,Tx=t=>pr(Hd,zd(t)),fn={code:Hd,name:Ix,encode:zd,digest:Tx};var qT=new TextEncoder,HT=new TextDecoder;var $d=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return Lx(r,el(t),e||We.encoder);default:return Px(r,el(t),e||Rt.encoder)}};var Gd=new WeakMap,el=t=>{let e=Gd.get(t);if(e==null){let r=new Map;return Gd.set(t,r),r}return e},we=class{constructor(e,r,n,i){this.code=r,this.version=e,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:r}=this;if(e!==Ls)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Bx)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return we.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:r}=this.multihash,n=pr(e,r);return we.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return we.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Kd(e.multihash,n.multihash)}toString(e){return $d(this,e)}toJSON(){return{"/":$d(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof we)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new we(n,i,s,o||Yd(n,i,s.bytes))}else if(r[Ox]===!0){let{version:n,multihash:i,code:s}=r,o=Gn(i);return we.create(n,s,o)}else return null}static create(e,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(r!==Ls)throw new Error(`Version 0 CID must use dag-pb (code: ${Ls}) block encoding`);return new we(e,r,n,n.bytes)}case 1:{let i=Yd(e,r,n.bytes);return new we(e,r,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return we.create(0,Ls,e)}static createV1(e,r){return we.create(1,e,r)}static decode(e){let[r,n]=we.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=we.inspectBytes(e),n=r.size-r.multihashSize,i=Or(e.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=i.subarray(r.multihashSize-r.digestSize),o=new Ui(r.multihashCode,r.digestSize,s,i);return[r.version===0?we.createV0(o):we.createV1(r.codec,o),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[f,d]=Ds(e.subarray(r));return r+=d,f},i=n(),s=Ls;if(i===18?(i=0,r=0):s=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let o=r,a=n(),c=n(),u=r+c,l=u-o;return{version:i,codec:s,multihashCode:a,digestSize:c,multihashSize:l,size:u}}static parse(e,r){let[n,i]=Dx(e,r),s=we.decode(i);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return el(s).set(n,e),s}},Dx=(t,e)=>{switch(t[0]){case"Q":{let r=e||We;return[We.prefix,r.decode(`${We.prefix}${t}`)]}case We.prefix:{let r=e||We;return[We.prefix,r.decode(t)]}case Rt.prefix:{let r=e||Rt;return[Rt.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},Lx=(t,e,r)=>{let{prefix:n}=r;if(n!==We.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=e.get(n);if(i==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return i},Px=(t,e,r)=>{let{prefix:n}=r,i=e.get(n);if(i==null){let s=r.encode(t);return e.set(n,s),s}else return i},Ls=112,Bx=18,Yd=(t,e,r)=>{let n=ki(t),i=n+ki(e),s=new Uint8Array(i+r.byteLength);return Oi(t,s,0),Oi(e,s,n),s.set(r,i),s},Ox=Symbol.for("@ipld/js-cid/CID");var hn={...qu,...Hu,...zu,...$u,...Gu,...Fu,...Yu,...Mu,...Ku,...Wu},JT={...Zu,...Ju};function Wn(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Mr(t=0){return globalThis.Buffer?.alloc!=null?Wn(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function Fr(t=0){return globalThis.Buffer?.allocUnsafe!=null?Wn(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Qd(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Wd=Qd("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),tl=Qd("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=Fr(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),kx={utf8:Wd,"utf-8":Wd,hex:hn.base16,latin1:tl,ascii:tl,binary:tl,...hn},ia=kx;function Q(t,e="utf8"){let r=ia[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}var Xd=Bd,Ux=Od,rl=function(t){let e=0;if(t=t.toString().trim(),Xd(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(Ux(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=Xd(r[n]),o;s&&(o=rl(r[n]),r[n]=Q(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,Q(o.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let i=new Uint8Array(e+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[e++]=s>>8&255,i[e++]=s&255}return i}throw new Error("invalid ip address")},jd=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let i=[];for(let s=0;s<r;s++)i.push(t[e+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(e+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Ps={},nl={},Fx=[[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"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];Fx.forEach(t=>{let e=Kx(...t);nl[e.code]=e,Ps[e.name]=e});function Kx(t,e,r,n,i){return{code:t,size:e,name:r,resolvable:Boolean(n),path:Boolean(i)}}function xe(t){if(typeof t=="number"){if(nl[t]!=null)return nl[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(Ps[t]!=null)return Ps[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var mr=C(sa(),1);function q(t,e="utf8"){let r=ia[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Wn(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}function Qe(t,e){e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=Fr(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return Wn(r)}function fp(t,e){switch(xe(t).code){case 4:case 41:return tb(e);case 42:return up(e);case 6:case 273:case 33:case 132:return dp(e).toString();case 53:case 54:case 55:case 56:case 400:case 777:return up(e);case 421:return sb(e);case 444:return lp(e);case 445:return lp(e);case 466:return ib(e);default:return Q(e,"base16")}}function hp(t,e){switch(xe(t).code){case 4:return ap(e);case 41:return ap(e);case 42:return cp(e);case 6:case 273:case 33:case 132:return al(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 777:return cp(e);case 421:return rb(e);case 444:return ob(e);case 445:return ab(e);case 466:return nb(e);default:return q(e,"base16")}}var ol=Object.values(hn).map(t=>t.decoder),eb=function(){let t=ol[0].or(ol[1]);return ol.slice(2).forEach(e=>t=t.or(e)),t}();function ap(t){if(!Bi(t))throw new Error("invalid ip address");return rl(t)}function tb(t){let e=jd(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Bi(e))throw new Error("invalid ip address");return e}function al(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function dp(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function cp(t){let e=q(t),r=Uint8Array.from(mr.default.encode(e.length));return Qe([r,e],r.length+e.length)}function up(t){let e=mr.default.decode(t);if(t=t.slice(mr.default.decode.bytes),t.length!==e)throw new Error("inconsistent lengths");return Q(t)}function rb(t){let e;t[0]==="Q"||t[0]==="1"?e=Gn(We.decode(`z${t}`)).bytes:e=we.parse(t).multihash.bytes;let r=Uint8Array.from(mr.default.encode(e.length));return Qe([r,e],r.length+e.length)}function nb(t){let e=eb.decode(t),r=Uint8Array.from(mr.default.encode(e.length));return Qe([r,e],r.length+e.length)}function ib(t){let e=mr.default.decode(t),r=t.slice(mr.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return"u"+Q(r,"base64url")}function sb(t){let e=mr.default.decode(t),r=t.slice(mr.default.decode.bytes);if(r.length!==e)throw new Error("inconsistent lengths");return Q(r,"base58btc")}function ob(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let r=Rt.decode("b"+e[0]),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=al(n);return Qe([r,i],r.length+i.length)}function ab(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let r=Rt.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=al(n);return Qe([r,i],r.length+i.length)}function lp(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=Q(e,"base32"),i=dp(r);return`${n}:${i}`}var Mi=C(sa(),1);function cb(t){let e=[],r=t.split("/").slice(1);if(r.length===1&&r[0]==="")return[];for(let n=0;n<r.length;n++){let i=r[n],s=xe(i);if(s.size===0){e.push([i]);continue}if(n++,n>=r.length)throw mp("invalid address: "+t);if(s.path===!0){e.push([i,hl(r.slice(n).join("/"))]);break}e.push([i,r[n]])}return e}function ub(t){let e=[];return t.map(r=>{let n=ca(r);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),hl(e.join("/"))}function lb(t){return t.map(e=>{Array.isArray(e)||(e=[e]);let r=ca(e);return e.length>1?[r.code,hp(r.code,e[1])]:[r.code]})}function cl(t){return t.map(e=>{let r=ca(e);return e[1]!=null?[r.code,fp(r.code,e[1])]:[r.code]})}function ul(t){return aa(Qe(t.map(e=>{let r=ca(e),n=Uint8Array.from(Mi.default.encode(r.code));return e.length>1&&e[1]!=null&&(n=Qe([n,e[1]])),n})))}function ll(t,e){return t.size>0?t.size/8:t.size===0?0:Mi.default.decode(e)+(Mi.default.decode.bytes??0)}function oa(t){let e=[],r=0;for(;r<t.length;){let n=Mi.default.decode(t,r),i=Mi.default.decode.bytes??0,s=xe(n),o=ll(s,t.slice(r+i));if(o===0){e.push([n]),r+=i;continue}let a=t.slice(r+i,r+i+o);if(r+=o+i,r>t.length)throw mp("Invalid address Uint8Array: "+Q(t,"base16"));e.push([n,a])}return e}function fl(t){let e=oa(t),r=cl(e);return ub(r)}function fb(t){t=hl(t);let e=cb(t),r=lb(e);return ul(r)}function pp(t){return fb(t)}function aa(t){let e=hb(t);if(e!=null)throw e;return Uint8Array.from(t)}function hb(t){try{oa(t)}catch(e){return e}}function hl(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function mp(t){return new Error("Error parsing address: "+t)}function ca(t){return xe(t[0])}var pl=C(sa(),1);var vp=C(Y(),1);function Ae(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)},dl=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},Bs,Os,ks,Ep,mb=Symbol.for("nodejs.util.inspect.custom"),yb=[xe("dns").code,xe("dns4").code,xe("dns6").code,xe("dnsaddr").code],ml=new Map,wp=Symbol.for("@multiformats/js-multiaddr/multiaddr");function xp(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 yr("/"+[r,n,e,t.port].join("/"))}function Kt(t){return Boolean(t?.[wp])}var yr=class{constructor(e){if(Bs.set(this,void 0),Os.set(this,void 0),ks.set(this,void 0),this[Ep]=!0,e==null&&(e=""),e instanceof Uint8Array)this.bytes=aa(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);this.bytes=pp(e)}else if(Kt(e))this.bytes=aa(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return Fi(this,Bs,"f")==null&&dl(this,Bs,fl(this.bytes),"f"),Fi(this,Bs,"f")}toJSON(){return this.toString()}toOptions(){let e,r,n,i,s="",o=xe("tcp"),a=xe("udp"),c=xe("ip4"),u=xe("ip6"),l=xe("dns6"),f=xe("ip6zone");for(let[h,p]of this.stringTuples())h===f.code&&(s=`%${p??""}`),yb.includes(h)&&(r=o.name,i=443,n=`${p??""}${s}`,e=h===l.code?6:4),(h===o.code||h===a.code)&&(r=xe(h).name,i=parseInt(p??"")),(h===c.code||h===u.code)&&(r=xe(h).name,n=`${p??""}${s}`,e=h===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({},xe(e)))}protoCodes(){let e=[],r=this.bytes,n=0;for(;n<r.length;){let i=pl.default.decode(r,n),s=pl.default.decode.bytes??0,o=xe(i),a=ll(o,r.slice(n+s));n+=a+s,e.push(i)}return e}protoNames(){return this.protos().map(e=>e.name)}tuples(){return Fi(this,Os,"f")==null&&dl(this,Os,oa(this.bytes),"f"),Fi(this,Os,"f")}stringTuples(){return Fi(this,ks,"f")==null&&dl(this,ks,cl(this.tuples()),"f"),Fi(this,ks,"f")}encapsulate(e){return e=new yr(e),new yr(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new yr(n.slice(0,i))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new yr(ul(r.slice(0,n)));return this}getPeerId(){try{let r=this.stringTuples().filter(n=>n[0]===Ps.ipfs.code).pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?Q(We.decode(`z${n}`),"base58btc"):Q(we.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){let e=null;try{e=this.stringTuples().filter(r=>xe(r[0]).path===!0)[0][1],e==null&&(e=null)}catch{e=null}return e}equals(e){return Ae(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=ml.get(r.name);if(n==null)throw(0,vp.default)(new Error(`no available resolver for ${r.name}`),"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new yr(s))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[(Bs=new WeakMap,Os=new WeakMap,ks=new WeakMap,Ep=wp,mb)](){return`Multiaddr(${fl(this.bytes)})`}};function oe(t){return new yr(t)}async function er(t){let e=[];for await(let r of t)e.push(r);return e}var yl=(t,e)=>async function*(){yield*(await er(t)).sort(e)}();async function tr(t){for await(let e of t);}async function*mt(t,e){for await(let r of t)await e(r)&&(yield r)}async function*ua(t,e){let r=0;if(!(e<1)){for await(let n of t)if(yield n,r++,r===e)return}}var la=class{open(){return Promise.reject(new Error(".open is not implemented"))}close(){return Promise.reject(new Error(".close is not implemented"))}put(e,r,n){return Promise.reject(new Error(".put is not implemented"))}get(e,r){return Promise.reject(new Error(".get is not implemented"))}has(e,r){return Promise.reject(new Error(".has is not implemented"))}delete(e,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,r={}){for await(let{key:n,value:i}of e)await this.put(n,i,r),yield{key:n,value:i}}async*getMany(e,r={}){for await(let n of e)yield this.get(n,r)}async*deleteMany(e,r={}){for await(let n of e)await this.delete(n,r),yield n}batch(){let e=[],r=[];return{put(n,i){e.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await tr(this.putMany(e,n)),e=[],await tr(this.deleteMany(r,n)),r=[]}}}async*_all(e,r){throw new Error("._all is not implemented")}async*_allKeys(e,r){throw new Error("._allKeys is not implemented")}query(e,r){let n=this._all(e,r);if(e.prefix!=null&&(n=mt(n,i=>i.key.toString().startsWith(e.prefix))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>mt(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>yl(i,s),n)),e.offset!=null){let i=0;n=mt(n,()=>i++>=e.offset)}return e.limit!=null&&(n=ua(n,e.limit)),n}queryKeys(e,r){let n=this._allKeys(e,r);if(e.prefix!=null&&(n=mt(n,i=>i.toString().startsWith(e.prefix))),Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>mt(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>yl(i,s),n)),e.offset!=null){let i=0;n=mt(n,()=>i++>=e.offset)}return e.limit!=null&&(n=ua(n,e.limit)),n}};var fa=(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 Kr="/",bp=new TextEncoder().encode(Kr),ha=bp[0],ze=class{constructor(e,r){if(typeof e=="string")this._buf=q(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==ha)throw new Error("Invalid key")}toString(e="utf8"){return Q(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new ze(e.join(Kr))}static random(){return new ze(fa().replace(/-/g,""))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new ze(e):typeof e.uint8Array=="function"?new ze(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=bp),this._buf[0]!==ha){let e=new Uint8Array(this._buf.byteLength+1);e.fill(ha,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===ha;)this._buf=this._buf.subarray(0,-1)}less(e){let r=this.list(),n=e.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let s=r[i],o=n[i];if(s<o)return!0;if(s>o)return!1}return r.length<n.length}reverse(){return ze.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(Kr).slice(1)}type(){return gb(this.baseNamespace())}name(){return Eb(this.baseNamespace())}instance(e){return new ze(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(Kr)||(e+=Kr),e+=this.type(),new ze(e)}parent(){let e=this.list();return e.length===1?new ze(Kr):new ze(e.slice(0,-1).join(Kr))}child(e){return this.toString()===Kr?e:e.toString()===Kr?this:new ze(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return ze.withNamespaces([...this.namespaces(),...vb(e.map(r=>r.namespaces()))])}};function gb(t){let e=t.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Eb(t){let e=t.split(":");return e[e.length-1]}function vb(t){return[].concat(...t)}var Sp=C(Y(),1);function _p(t){return t=t||new Error("Not Found"),(0,Sp.default)(t,"ERR_NOT_FOUND")}var da=class extends la{constructor(){super(),this.data={}}open(){return Promise.resolve()}close(){return Promise.resolve()}async put(e,r){this.data[e.toString()]=r}async get(e){if(!await this.has(e))throw _p();return this.data[e.toString()]}async has(e){return this.data[e.toString()]!==void 0}async delete(e){delete this.data[e.toString()]}async*_all(){yield*Object.entries(this.data).map(([e,r])=>({key:new ze(e),value:r}))}async*_allKeys(){yield*Object.entries(this.data).map(([e])=>new ze(e))}};var Ks=C(Y(),1);var ne;(function(t){t.NOT_STARTED_YET="The libp2p node is not started yet",t.DHT_DISABLED="DHT is not available",t.PUBSUB_DISABLED="PubSub is not available",t.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",t.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",t.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",t.NOT_FOUND="Not found"})(ne||(ne={}));var b;(function(t){t.DHT_DISABLED="ERR_DHT_DISABLED",t.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",t.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",t.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",t.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",t.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",t.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",t.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",t.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",t.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",t.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",t.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",t.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",t.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",t.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",t.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",t.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",t.ERR_DIALED_SELF="ERR_DIALED_SELF",t.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",t.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",t.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",t.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",t.ERR_INVALID_KEY="ERR_INVALID_KEY",t.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",t.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",t.ERR_INVALID_PEER="ERR_INVALID_PEER",t.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",t.ERR_NOT_FOUND="ERR_NOT_FOUND",t.ERR_TIMEOUT="ERR_TIMEOUT",t.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",t.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",t.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",t.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",t.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",t.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",t.ERR_FIND_SELF="ERR_FIND_SELF",t.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",t.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",t.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",t.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",t.ERR_INVALID_CMS="ERR_INVALID_CMS",t.ERR_MISSING_KEYS="ERR_MISSING_KEYS",t.ERR_NO_KEY="ERR_NO_KEY",t.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",t.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",t.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",t.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",t.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",t.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",t.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",t.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",t.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",t.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",t.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",t.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",t.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",t.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",t.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",t.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",t.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",t.ERR_INVALID_RECORD="ERR_INVALID_RECORD",t.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",t.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",t.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",t.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",t.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED"})(b||(b={}));var Ap=C(Y(),1);async function*Us(t,e){for await(let r of t)yield e(r)}async function*Ms(t,e){yield*Us(t,async r=>(await e.addressBook.add(r.id,r.multiaddrs),r))}function pa(t){let e=new Set;return mt(t,r=>e.has(r.id.toString())?!1:(e.add(r.id.toString()),!0))}async function*ma(t,e=1){let r=0;for await(let n of t)r++,yield n;if(r<e)throw(0,Ap.default)(new Error("not found"),"NOT_FOUND")}var zp=C(Vr(),1);var ga=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}},Ki=class{constructor(e={}){this.hwm=e.splitLimit??16,this.head=new ga(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 ga(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};function Qn(t={}){return Sb(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 Sb(t,e){e=e??{};let r=e.onEnd,n=new Ki,i,s,o,a=async()=>n.isEmpty()?o?{done:!0}:await new Promise((y,g)=>{s=E=>{s=null,n.push(E);try{y(t(n))}catch(x){g(x)}return i}}):t(n),c=y=>s!=null?s(y):(n.push(y),i),u=y=>(n=new Ki,s!=null?s({error:y}):(n.push({error:y}),i)),l=y=>{if(o)return i;if(e?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return c({done:!1,value:y})},f=y=>o?i:(o=!0,y!=null?u(y):c({done:!0})),d=()=>(n=new Ki,f(),{done:!0}),h=y=>(f(y),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:a,return:d,throw:h,push:l,end:f,get readableLength(){return n.size}},r==null)return i;let p=i;return i={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(y){return p.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return p.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(y){return p.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return p.readableLength}},i}async function*qr(...t){let e=Qn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async r=>{for await(let n of r)e.push(n)})),e.end()}catch(r){e.end(r)}}),yield*e}var _b=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},Dp=t=>t!=null&&(typeof t[Symbol.asyncIterator]=="function"||typeof t[Symbol.iterator]=="function"||typeof t.next=="function"),vl=t=>t!=null&&typeof t.sink=="function"&&Dp(t.source),Ab=t=>e=>{let r=t.sink(e);if(r.then!=null){let n=Qn({objectMode:!0});return r.then(()=>{n.end()},s=>{n.end(s)}),qr(n,async function*(){yield*t.source,n.end()}())}return t.source};function Ie(t,...e){if(vl(t)){let n=t;t=()=>n.source}else if(Dp(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&vl(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++)vl(r[n])&&(r[n]=Ab(r[n]));return _b(...r)}async function Nt(t){for await(let e of t)return e}var xa=C(wl(),1),$p=C(gr(),1),Hp=M("libp2p:peer-routing"),wa=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,xa.setDelayedInterval)(this._findClosestPeersTask,this.refreshManagerInit.interval,this.refreshManagerInit.bootDelay),this.started=!0)}async _findClosestPeersTask(){if(this.abortController==null)try{this.abortController=new zp.TimeoutController(this.refreshManagerInit.timeout??1e4);try{(0,$p.setMaxListeners)?.(1/0,this.abortController.signal)}catch{}await tr(this.getClosestPeers(this.components.peerId.toBytes(),{signal:this.abortController.signal}))}catch(e){Hp.error(e)}finally{this.abortController?.clear(),this.abortController=void 0}}async stop(){(0,xa.clearDelayedInterval)(this.timeoutId),this.abortController?.abort(),this.started=!1}async findPeer(e,r){if(this.routers.length===0)throw(0,Ks.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.components.peerId.toString())throw(0,Ks.default)(new Error("Should not try to find self"),b.ERR_FIND_SELF);let n=await Ie(qr(...this.routers.map(i=>async function*(){try{yield await i.findPeer(e,r)}catch(s){Hp.error(s)}}())),i=>mt(i,Boolean),i=>Ms(i,this.components.peerStore),async i=>await Nt(i));if(n!=null)return n;throw(0,Ks.default)(new Error(ne.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(e,r){if(this.routers.length===0)throw(0,Ks.default)(new Error("No peer routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Ie(qr(...this.routers.map(n=>n.getClosestPeers(e,r))),n=>Ms(n,this.components.peerStore),n=>pa(n),n=>ma(n))}};var dn=C(Y(),1);var ba=class{constructor(e,r){this.routers=r.routers??[],this.started=!1,this.components=e}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(e,r={}){if(this.routers.length===0)throw(0,dn.default)(new Error("No content this.routers available"),b.ERR_NO_ROUTERS_AVAILABLE);yield*Ie(qr(...this.routers.map(n=>n.findProviders(e,r))),n=>Ms(n,this.components.peerStore),n=>pa(n),n=>ma(n))}async provide(e,r={}){if(this.routers.length===0)throw(0,dn.default)(new Error("No content routers available"),b.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>await n.provide(e,r)))}async put(e,r,n){if(!this.isStarted())throw(0,dn.default)(new Error(ne.NOT_STARTED_YET),b.DHT_NOT_STARTED);let i=this.components.dht;i!=null&&await tr(i.put(e,r,n))}async get(e,r){if(!this.isStarted())throw(0,dn.default)(new Error(ne.NOT_STARTED_YET),b.DHT_NOT_STARTED);let n=this.components.dht;if(n!=null){for await(let i of n.get(e,r))if(i.name==="VALUE")return i.value}throw(0,dn.default)(new Error(ne.NOT_FOUND),b.ERR_NOT_FOUND)}async*getMany(e,r,n){if(!this.isStarted())throw(0,dn.default)(new Error(ne.NOT_STARTED_YET),b.DHT_NOT_STARTED);if(r==null||r===0)return;let i=0,s=this.components.dht;if(s!=null){for await(let o of s.get(e,n))if(o.name==="VALUE"&&(yield{from:o.from,val:o.value},i++,i===r))break}if(i===0)throw(0,dn.default)(new Error(ne.NOT_FOUND),b.ERR_NOT_FOUND)}};var Sa=class extends Error{constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var bl=Symbol.for("@libp2p/peer-id");function Xn(t){return t!=null&&Boolean(t[bl])}var kb=Symbol.for("nodejs.util.inspect.custom"),Gp=Object.values(hn).map(t=>t.decoder).reduce((t,e)=>t.or(e),hn.identity.decoder),Yp=114,Sl=36,_l=37,Vs=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[bl](){return!0}toString(){return this.string==null&&(this.string=We.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return we.createV1(Yp,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e instanceof Uint8Array)return Ae(this.multihash.bytes,e);if(typeof e=="string")return ae(e).equals(this);if(e?.multihash?.bytes!=null)return Ae(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[kb](){return`PeerId(${this.toString()})`}},jn=class extends Vs{constructor(e){super({...e,type:"RSA"}),this.type="RSA",this.publicKey=e.publicKey}},Zn=class extends Vs{constructor(e){super({...e,type:"Ed25519"}),this.type="Ed25519",this.publicKey=e.multihash.digest}},Jn=class extends Vs{constructor(e){super({...e,type:"secp256k1"}),this.type="secp256k1",this.publicKey=e.multihash.digest}};function Xe(t){if(t.type==="RSA")return new jn(t);if(t.type==="Ed25519")return new Zn(t);if(t.type==="secp256k1")return new Jn(t);throw new Sa("Not a PeerId","ERR_INVALID_PARAMETERS")}function ae(t,e){if(e=e??Gp,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=Gn(We.decode(`z${t}`));return t.startsWith("12D")?new Zn({multihash:r}):t.startsWith("16U")?new Jn({multihash:r}):new jn({multihash:r})}return pn(Gp.decode(t))}function pn(t){try{let e=Gn(t);if(e.code===fn.code){if(e.digest.length===Sl)return new Zn({multihash:e});if(e.digest.length===_l)return new Jn({multihash:e})}if(e.code===ot.code)return new jn({multihash:e})}catch{return Ub(we.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function Ub(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==Yp)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===ot.code)return new jn({multihash:t.multihash});if(e.code===fn.code){if(e.digest.length===Sl)return new Zn({multihash:t.multihash});if(e.digest.length===_l)return new Jn({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function mn(t,e){return t.length===Sl?new Zn({multihash:pr(fn.code,t),privateKey:e}):t.length===_l?new Jn({multihash:pr(fn.code,t),privateKey:e}):new jn({multihash:await ot.digest(t),publicKey:t,privateKey:e})}var Mb=t=>t,_a=class extends Ue{constructor(e,r){super();let{listen:n=[],announce:i=[]}=r;this.components=e,this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Set,this.announceFilter=r.announceFilter??Mb}getListenAddrs(){return Array.from(this.listen).map(e=>oe(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>oe(e))}getObservedAddrs(){return Array.from(this.observed).map(e=>oe(e))}confirmObservedAddr(e){}removeObservedAddr(e){}addObservedAddr(e){let r=oe(e),n=r.getPeerId();n!=null&&ae(n).equals(this.components.peerId)&&(r=r.decapsulate(oe(`/p2p/${this.components.peerId.toString()}`)));let i=r.toString();this.observed.has(i)||(this.observed.add(i),this.dispatchEvent(new X("change:addresses")))}getAddresses(){let e=this.getAnnounceAddrs().map(n=>n.toString());e.length===0&&(e=this.components.transportManager.getAddrs().map(n=>n.toString())),e=e.concat(this.getObservedAddrs().map(n=>n.toString()));let r=new Set(e);return this.announceFilter(Array.from(r).map(n=>oe(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var Pa=C(Y(),1);var r0=C(t0(),1),Er=r0.default;var n0=M("libp2p:connection-manager:latency-monitor:visibility-change-emitter"),Ia=class extends Ue{constructor(){super(),this.hidden="hidden",this.visibilityChange="visibilityChange",globalThis.document!=null&&(this._initializeVisibilityVarNames(),this._addVisibilityChangeListener())}_initializeVisibilityVarNames(){let e="hidden",r="visibilitychange";typeof globalThis.document.hidden<"u"?(e="hidden",r="visibilitychange"):typeof globalThis.document.mozHidden<"u"?(e="mozHidden",r="mozvisibilitychange"):typeof globalThis.document.msHidden<"u"?(e="msHidden",r="msvisibilitychange"):typeof globalThis.document.webkitHidden<"u"&&(e="webkitHidden",r="webkitvisibilitychange"),this.hidden=e,this.visibilityChange=r}_addVisibilityChangeListener(){typeof globalThis.document.addEventListener>"u"||typeof document[this.hidden]>"u"?n0("Checking page visibility requires a browser that supports the Page Visibility API."):globalThis.document.addEventListener(this.visibilityChange,this._handleVisibilityChange.bind(this),!1)}isVisible(){if(!(this.hidden===void 0||document[this.hidden]===void 0))return document[this.hidden]==null}_handleVisibilityChange(){let e=globalThis.document[this.hidden]===!1;n0(e?"Page Visible":"Page Hidden"),this.dispatchEvent(new X("visibilityChange",{detail:e}))}};var Hr=M("libp2p:connection-manager:latency-monitor"),Ta=class extends Ue{constructor(e={}){super();let{latencyCheckIntervalMs:r,dataEmitIntervalMs:n,asyncTestFn:i,latencyRandomPercentage:s}=e;this.latencyCheckIntervalMs=r??500,this.latencyRandomPercentage=s??10,this.latencyCheckMultiply=2*(this.latencyRandomPercentage/100)*this.latencyCheckIntervalMs,this.latencyCheckSubtract=this.latencyCheckMultiply/2,this.dataEmitIntervalMs=n===null||n===0?void 0:n??5*1e3,Hr("latencyCheckIntervalMs: %s dataEmitIntervalMs: %s",this.latencyCheckIntervalMs,this.dataEmitIntervalMs),this.dataEmitIntervalMs!=null?Hr("Expecting ~%s events per summary",this.latencyCheckIntervalMs/this.dataEmitIntervalMs):Hr("Not emitting summaries"),this.asyncTestFn=i,globalThis.process?.hrtime!=null?(Hr("Using process.hrtime for timing"),this.now=globalThis.process.hrtime,this.getDeltaMS=o=>{let a=this.now(o);return a[0]*1e3+a[1]/1e6}):typeof window<"u"&&window.performance?.now!=null?(Hr("Using performance.now for timing"),this.now=window.performance.now.bind(window.performance),this.getDeltaMS=o=>Math.round(this.now()-o)):(Hr("Using Date.now for timing"),this.now=Date.now,this.getDeltaMS=o=>this.now()-o),this.latencyData=this.initLatencyData()}start(){zb()&&(this.visibilityChangeEmitter=new Ia,this.visibilityChangeEmitter.addEventListener("visibilityChange",e=>{let{detail:r}=e;r?this._startTimers():(this._emitSummary(),this._stopTimers())})),this.visibilityChangeEmitter?.isVisible()===!0&&this._startTimers()}stop(){this._stopTimers()}_startTimers(){this.checkLatencyID==null&&(this.checkLatency(),this.dataEmitIntervalMs!=null&&(this.emitIntervalID=setInterval(()=>this._emitSummary(),this.dataEmitIntervalMs),typeof this.emitIntervalID.unref=="function"&&this.emitIntervalID.unref()))}_stopTimers(){this.checkLatencyID!=null&&(clearTimeout(this.checkLatencyID),this.checkLatencyID=void 0),this.emitIntervalID!=null&&(clearInterval(this.emitIntervalID),this.emitIntervalID=void 0)}_emitSummary(){let e=this.getSummary();e.events>0&&this.dispatchEvent(new X("data",{detail:e}))}getSummary(){let e={events:this.latencyData.events,minMs:this.latencyData.minMs,maxMs:this.latencyData.maxMs,avgMs:this.latencyData.events>0?this.latencyData.totalMs/this.latencyData.events:Number.POSITIVE_INFINITY,lengthMs:this.getDeltaMS(this.latencyData.startTime)};return this.latencyData=this.initLatencyData(),Hr.trace("Summary: %O",e),e}checkLatency(){let e=Math.random()*this.latencyCheckMultiply-this.latencyCheckSubtract,r={deltaOffset:Math.ceil(this.latencyCheckIntervalMs+e),startTime:this.now()},n=()=>{if(this.checkLatencyID==null)return;let i=this.getDeltaMS(r.startTime)-r.deltaOffset;this.checkLatency(),this.latencyData.events++,this.latencyData.minMs=Math.min(this.latencyData.minMs,i),this.latencyData.maxMs=Math.max(this.latencyData.maxMs,i),this.latencyData.totalMs+=i,Hr.trace("MS: %s Data: %O",i,this.latencyData)};Hr.trace("localData: %O",r),this.checkLatencyID=setTimeout(()=>{this.asyncTestFn!=null?(r.deltaOffset=0,r.startTime=this.now(),this.asyncTestFn(n)):(r.deltaOffset-=1,n())},r.deltaOffset),typeof this.checkLatencyID.unref=="function"&&this.checkLatencyID.unref()}initLatencyData(){return{startTime:this.now(),minMs:Number.POSITIVE_INFINITY,maxMs:Number.NEGATIVE_INFINITY,events:0,totalMs:0}}};function zb(){return typeof globalThis.window<"u"}var Ba=C(gr(),1);var Ra="OPEN",Cl="CLOSING",Na="CLOSED";function zr(t,e){let r={[Symbol.iterator]:()=>r,next:()=>{let n=t.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:e(i)}}};return r}var qs=class{constructor(e){if(this.map=new Map,e!=null)for(let[r,n]of e.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){this.map.delete(e.toString())}entries(){return zr(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 zr(this.map.keys(),e=>ae(e))}values(){return this.map.values()}get size(){return this.map.size}};var $r=class{constructor(e){if(this.set=new Set,e!=null)for(let r of e)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return zr(this.set.entries(),e=>{let r=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 zr(this.set.values(),e=>ae(e))}intersection(e){let r=new $r;for(let n of e)this.has(n)&&r.add(n);return r}difference(e){let r=new $r;for(let n of this)e.has(n)||r.add(n);return r}union(e){let r=new $r;for(let n of e)r.add(n);for(let n of this)r.add(n);return r}};var $i=class{constructor(e){if(this.list=[],e!=null)for(let r of e)this.list.push(r.toString())}[Symbol.iterator](){return zr(this.list.entries(),e=>ae(e[1]))}concat(e){let r=new $i(this);for(let n of e)r.push(n);return r}entries(){return zr(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 $i;return this.list.forEach((n,i)=>{let s=ae(n);e(s,i,this)&&r.push(s)}),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 Kl=C(Vr(),1);var i0="keep-alive";var tm=C(J0(),1);var em=C(Y(),1);function La(t){if(Xn(t))return{peerId:t};if(Kt(t)){let e=t.getPeerId();return{multiaddr:t,peerId:e==null?void 0:ae(e)}}throw(0,em.default)(new Error(`${t} is not a PeerId or a Multiaddr`),b.ERR_INVALID_MULTIADDR)}var et=M("libp2p:connection-manager"),I2={maxConnections:1/0,minConnections:0,maxEventLoopDelay:1/0,pollInterval:2e3,autoDialInterval:1e4,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},T2=6e4,Oa=class extends Ue{constructor(e,r){if(super(),this.opts=Er.call({ignoreUndefined:!0},I2,r),this.opts.maxConnections<this.opts.minConnections)throw(0,Pa.default)(new Error("Connection Manager maxConnections must be greater than minConnections"),b.ERR_INVALID_PARAMETERS);et("options: %o",this.opts),this.components=e,this.connections=new Map,this.started=!1,r.maxEventLoopDelay!=null&&r.maxEventLoopDelay>0&&r.maxEventLoopDelay!==1/0&&(this.latencyMonitor=new Ta({latencyCheckIntervalMs:r.pollInterval,dataEmitIntervalMs:r.pollInterval}));try{(0,Ba.setMaxListeners)?.(1/0,this)}catch{}this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.startupReconnectTimeout=r.startupReconnectTimeout??T2,this.dialTimeout=r.dialTimeout??3e4,this.allow=(r.allow??[]).map(n=>oe(n)),this.deny=(r.deny??[]).map(n=>oe(n)),this.inboundConnectionRateLimiter=new tm.RateLimiterMemory({points:this.opts.inboundConnectionThreshold,duration:1}),this.incomingPendingConnections=0}isStarted(){return this.started}async start(){this.components.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.stat.direction==="inbound"?e.inbound++:e.outbound++;return e}}),this.components.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let r of this.connections.values())for(let n of r)for(let i of n.streams){let s=`${i.stat.direction} ${i.stat.protocol??"unnegotiated"}`;e[s]=(e[s]??0)+1}return e}}),this.components.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let i of n){let s={};for(let o of i.streams){let a=`${o.stat.direction} ${o.stat.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[o,a]of Object.entries(s))e[o]=e[o]??[],e[o].push(a)}let r={};for(let[n,i]of Object.entries(e)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);r[n]=i[s]}return r}}),this.latencyMonitor?.start(),this._onLatencyMeasure=this._onLatencyMeasure.bind(this),this.latencyMonitor?.addEventListener("data",this._onLatencyMeasure),this.started=!0,et("started")}async afterStart(){this.components.upgrader.addEventListener("connection",this.onConnect),this.components.upgrader.addEventListener("connectionEnd",this.onDisconnect),Promise.resolve().then(async()=>{let e=[];for(let r of await this.components.peerStore.all())(await this.components.peerStore.getTags(r.id)).filter(s=>s.name===i0).length>0&&e.push(r.id);this.connectOnStartupController?.clear(),this.connectOnStartupController=new Kl.TimeoutController(this.startupReconnectTimeout);try{(0,Ba.setMaxListeners)?.(1/0,this.connectOnStartupController.signal)}catch{}await Promise.all(e.map(async r=>{await this.openConnection(r,{signal:this.connectOnStartupController?.signal}).catch(n=>{et.error(n)})}))}).catch(e=>{et.error(e)}).finally(()=>{this.connectOnStartupController?.clear()})}async beforeStop(){this.connectOnStartupController?.abort(),this.components.upgrader.removeEventListener("connection",this.onConnect),this.components.upgrader.removeEventListener("connectionEnd",this.onDisconnect)}async stop(){this.latencyMonitor?.removeEventListener("data",this._onLatencyMeasure),this.latencyMonitor?.stop(),this.started=!1,await this._close(),et("stopped")}async _close(){let e=[];for(let r of this.connections.values())for(let n of r)e.push((async()=>{try{await n.close()}catch(i){et.error(i)}})());et("closing %d connections",e.length),await Promise.all(e),this.connections.clear()}onConnect(e){this._onConnect(e).catch(r=>{et.error(r)})}async _onConnect(e){let{detail:r}=e;if(!this.started){await r.close();return}let n=r.remotePeer,i=n.toString(),s=this.connections.get(i);s!=null?s.push(r):this.connections.set(i,[r]),n.publicKey!=null&&await this.components.peerStore.keyBook.set(n,n.publicKey);let o=this.getConnections().length,a=o-this.opts.maxConnections;await this._checkMaxLimit("maxConnections",o,a),this.dispatchEvent(new X("peer:connect",{detail:r}))}onDisconnect(e){let{detail:r}=e;if(!this.started)return;let n=r.remotePeer.toString(),i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(s=>s.id!==r.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.dispatchEvent(new X("peer:disconnect",{detail:r})))}getConnections(e){if(e!=null)return this.connections.get(e.toString())??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}async openConnection(e,r={}){let{peerId:n,multiaddr:i}=La(e);if(n==null&&i==null)throw(0,Pa.default)(new TypeError("Can only open connections to PeerIds or Multiaddrs"),b.ERR_INVALID_PARAMETERS);if(n!=null){et("dial to",n);let o=this.getConnections(n);if(o.length>0)return et("had an existing connection to %p",n),o[0]}let s;if(r?.signal==null){s=new Kl.TimeoutController(this.dialTimeout),r.signal=s.signal;try{(0,Ba.setMaxListeners)?.(1/0,s.signal)}catch{}}try{let o=await this.components.dialer.dial(e,r),a=this.connections.get(o.remotePeer.toString());a==null&&(a=[],this.connections.set(o.remotePeer.toString(),a));let c=!1;for(let u of a)u.id===o.id&&(c=!0);return c||a.push(o),o}finally{s?.clear()}}async closeConnections(e){let r=this.connections.get(e.toString())??[];await Promise.all(r.map(async n=>await n.close()))}getAll(e){if(!Xn(e))throw(0,Pa.default)(new Error("peerId must be an instance of peer-id"),b.ERR_INVALID_PARAMETERS);let r=e.toString(),n=this.connections.get(r);return n!=null?n.filter(i=>i.stat.status===Ra):[]}_onLatencyMeasure(e){let{detail:r}=e;this._checkMaxLimit("maxEventLoopDelay",r.avgMs,1).catch(n=>{et.error(n)})}async _checkMaxLimit(e,r,n=1){let i=this.opts[e];if(i==null){et.trace("limit %s was not set so it cannot be applied",e);return}et.trace("checking limit of %s. current value: %d of %d",e,r,i),r>i&&(et("%s: limit exceeded: %p, %d/%d, pruning %d connection(s)",this.components.peerId,e,r,i,n),await this._pruneConnections(n))}async _pruneConnections(e){let r=this.getConnections(),n=new qs;for(let o of r){let a=o.remotePeer;if(n.has(a))continue;let c=await this.components.peerStore.getTags(a);n.set(a,c.reduce((u,l)=>u+l.value,0))}let i=r.sort((o,a)=>{let c=n.get(o.remotePeer)??0,u=n.get(a.remotePeer)??0;if(c>u)return 1;if(c<u)return-1;let l=o.stat.timeline.open,f=a.stat.timeline.open;return l<f?1:l>f?-1:0}),s=[];for(let o of i)if(et("too many connections open - closing a connection to %p",o.remotePeer),s.push(o),s.length===e)break;await Promise.all(s.map(async o=>{try{await o.close()}catch(a){et.error(a)}this.onDisconnect(new X("connectionEnd",{detail:o}))}))}async acceptIncomingConnection(e){if(this.deny.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return et("connection from %s refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.opts.maxIncomingPendingConnections)return et("connection from %s refused - incomingPendingConnections exceeded by peer %s",e.remoteAddr),!1;if(e.remoteAddr.isThinWaistAddress()){let i=e.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return et("connection from %s refused - inboundConnectionThreshold exceeded by host %s",i,e.remoteAddr),!1}}return this.getConnections().length<this.opts.maxConnections?(this.incomingPendingConnections++,!0):(et("connection from %s refused - maxConnections exceeded",e.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}};var Vl=C(El(),1);async function*$s(t,e){yield*(await er(t)).sort(e)}var yn=M("libp2p:connection-manager:auto-dialler"),R2={enabled:!0,minConnections:0,autoDialInterval:1e4},ka=class{constructor(e,r){this.components=e,this.options=Er.call({ignoreUndefined:!0},R2,r),this.running=!1,this._autoDial=this._autoDial.bind(this),yn("options: %j",this.options)}isStarted(){return this.running}async start(){if(!this.options.enabled){yn("not enabled");return}this.running=!0,this._autoDial().catch(e=>{yn.error("could start autodial",e)}),yn("started")}async stop(){if(!this.options.enabled){yn("not enabled");return}this.running=!1,this.autoDialTimeout!=null&&this.autoDialTimeout.clear(),yn("stopped")}async _autoDial(){this.autoDialTimeout!=null&&this.autoDialTimeout.clear();let e=this.options.minConnections;if(this.components.connectionManager.getConnections().length>=e){this.autoDialTimeout=(0,Vl.default)(this._autoDial,this.options.autoDialInterval);return}let r=await this.components.peerStore.all(),n=await Ie(r.sort(()=>Math.random()>.5?1:-1),i=>mt(i,s=>!s.id.equals(this.components.peerId)),i=>$s(i,(s,o)=>o.protocols.length>s.protocols.length||o.id.publicKey!=null&&s.id.publicKey==null?1:-1),async i=>await er(i));for(let i=0;this.running&&i<n.length&&this.components.connectionManager.getConnections().length<e;i++){if(!this.running)return;let s=n[i];if(this.components.connectionManager.getConnections(s.id).length===0){yn("connecting to a peerStore stored peer %p",s.id);try{await this.components.connectionManager.openConnection(s.id)}catch(o){yn.error("could not connect to peerStore stored peer",o)}}}this.running&&(this.autoDialTimeout=(0,Vl.default)(this._autoDial,this.options.autoDialInterval))}};var hy=C(Y(),1);var N2=W("dns4"),D2=W("dns6"),L2=W("dnsaddr"),Xi=yt(W("dns"),L2,N2,D2),Ua=yt(W("ip4"),W("ip6")),Qs=yt(ee(Ua,W("tcp")),ee(Xi,W("tcp"))),nm=ee(Ua,W("udp")),P2=ee(nm,W("utp")),B2=ee(nm,W("quic")),Gs=yt(ee(Qs,W("ws")),ee(Xi,W("ws"))),Ys=yt(ee(Qs,W("wss")),ee(Xi,W("wss"))),ql=yt(ee(Qs,W("http")),ee(Ua,W("http")),ee(Xi,W("http"))),Hl=yt(ee(Qs,W("https")),ee(Ua,W("https")),ee(Xi,W("https"))),im=yt(ee(Gs,W("p2p-webrtc-star"),W("p2p")),ee(Ys,W("p2p-webrtc-star"),W("p2p")),ee(Gs,W("p2p-webrtc-star")),ee(Ys,W("p2p-webrtc-star"))),OL=yt(ee(Gs,W("p2p-websocket-star"),W("p2p")),ee(Ys,W("p2p-websocket-star"),W("p2p")),ee(Gs,W("p2p-websocket-star")),ee(Ys,W("p2p-websocket-star"))),sm=yt(ee(ql,W("p2p-webrtc-direct"),W("p2p")),ee(Hl,W("p2p-webrtc-direct"),W("p2p")),ee(ql,W("p2p-webrtc-direct")),ee(Hl,W("p2p-webrtc-direct"))),Ws=yt(Gs,Ys,ql,Hl,im,sm,Qs,P2,B2,Xi),kL=yt(ee(Ws,W("p2p-stardust"),W("p2p")),ee(Ws,W("p2p-stardust"))),gn=yt(ee(Ws,W("p2p")),im,sm,W("p2p")),rm=yt(ee(gn,W("p2p-circuit"),gn),ee(gn,W("p2p-circuit")),ee(W("p2p-circuit"),gn),ee(Ws,W("p2p-circuit")),ee(W("p2p-circuit"),Ws),W("p2p-circuit")),om=()=>yt(ee(rm,om),rm),ti=om(),UL=yt(ee(ti,gn,ti),ee(gn,ti),ee(ti,gn),ti,gn);function am(t){function e(r){let n;try{n=oe(r)}catch{return!1}let i=t(n.protoNames());return i===null?!1:i===!0||i===!1?i:i.length===0}return e}function ee(...t){function e(r){if(r.length<t.length)return null;let n=r;return t.some(i=>(n=typeof i=="function"?i().partialMatch(r):i.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:am(e),partialMatch:e}}function yt(...t){function e(n){let i=null;return t.some(s=>{let o=typeof s=="function"?s().partialMatch(n):s.partialMatch(n);return o!=null?(i=o,!0):!1}),i}return{toString:function(){return"{ "+t.join(" ")+" }"},input:t,matches:am(e),partialMatch:e}}function W(t){let e=t;function r(i){let s;try{s=oe(i)}catch{return!1}let o=s.protoNames();return o.length===1&&o[0]===e}function n(i){return i.length===0?null:i[0]===e?i.slice(1):null}return{toString:function(){return e},matches:r,partialMatch:n}}var rf=C(Wl(),1),Wm=C(Km(),1),nf=C(tf(),1),Qm=C(Ym(),1),Xm=C(ni(),1);function z2(){Xm.default._configure(),rf.default._configure(Wm.default),nf.default._configure(Qm.default)}z2();var jm=["uint64","int64","sint64","fixed64","sfixed64"];function $2(t){for(let e of jm){if(t[e]==null)continue;let r=t[e];t[e]=function(){return BigInt(r.call(this).toString())}}return t}function sf(t){return $2(new rf.default(t))}function G2(t){for(let e of jm){if(t[e]==null)continue;let r=t[e];t[e]=function(n){return r.call(this,n.toString())}}return t}function of(){return G2(nf.default.create())}function Te(t,e){let r=sf(t instanceof Uint8Array?t:t.subarray());return e.decode(r)}function Re(t,e){let r=of();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var Zi;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})(Zi||(Zi={}));function qa(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function wn(t){function e(i){if(t[i.toString()]==null)throw new Error("Invalid enum value");return t[i]}let r=function(s,o){let a=e(s);o.int32(a)},n=function(s){let o=s.int32();return e(o)};return qa("enum",Zi.VARINT,r,n)}function Ne(t,e){return qa("message",Zi.LENGTH_DELIMITED,t,e)}var j;(function(t){let e;(function(a){a.SUCCESS="SUCCESS",a.HOP_SRC_ADDR_TOO_LONG="HOP_SRC_ADDR_TOO_LONG",a.HOP_DST_ADDR_TOO_LONG="HOP_DST_ADDR_TOO_LONG",a.HOP_SRC_MULTIADDR_INVALID="HOP_SRC_MULTIADDR_INVALID",a.HOP_DST_MULTIADDR_INVALID="HOP_DST_MULTIADDR_INVALID",a.HOP_NO_CONN_TO_DST="HOP_NO_CONN_TO_DST",a.HOP_CANT_DIAL_DST="HOP_CANT_DIAL_DST",a.HOP_CANT_OPEN_DST_STREAM="HOP_CANT_OPEN_DST_STREAM",a.HOP_CANT_SPEAK_RELAY="HOP_CANT_SPEAK_RELAY",a.HOP_CANT_RELAY_TO_SELF="HOP_CANT_RELAY_TO_SELF",a.STOP_SRC_ADDR_TOO_LONG="STOP_SRC_ADDR_TOO_LONG",a.STOP_DST_ADDR_TOO_LONG="STOP_DST_ADDR_TOO_LONG",a.STOP_SRC_MULTIADDR_INVALID="STOP_SRC_MULTIADDR_INVALID",a.STOP_DST_MULTIADDR_INVALID="STOP_DST_MULTIADDR_INVALID",a.STOP_RELAY_REFUSED="STOP_RELAY_REFUSED",a.MALFORMED_MESSAGE="MALFORMED_MESSAGE"})(e=t.Status||(t.Status={}));let r;(function(a){a[a.SUCCESS=100]="SUCCESS",a[a.HOP_SRC_ADDR_TOO_LONG=220]="HOP_SRC_ADDR_TOO_LONG",a[a.HOP_DST_ADDR_TOO_LONG=221]="HOP_DST_ADDR_TOO_LONG",a[a.HOP_SRC_MULTIADDR_INVALID=250]="HOP_SRC_MULTIADDR_INVALID",a[a.HOP_DST_MULTIADDR_INVALID=251]="HOP_DST_MULTIADDR_INVALID",a[a.HOP_NO_CONN_TO_DST=260]="HOP_NO_CONN_TO_DST",a[a.HOP_CANT_DIAL_DST=261]="HOP_CANT_DIAL_DST",a[a.HOP_CANT_OPEN_DST_STREAM=262]="HOP_CANT_OPEN_DST_STREAM",a[a.HOP_CANT_SPEAK_RELAY=270]="HOP_CANT_SPEAK_RELAY",a[a.HOP_CANT_RELAY_TO_SELF=280]="HOP_CANT_RELAY_TO_SELF",a[a.STOP_SRC_ADDR_TOO_LONG=320]="STOP_SRC_ADDR_TOO_LONG",a[a.STOP_DST_ADDR_TOO_LONG=321]="STOP_DST_ADDR_TOO_LONG",a[a.STOP_SRC_MULTIADDR_INVALID=350]="STOP_SRC_MULTIADDR_INVALID",a[a.STOP_DST_MULTIADDR_INVALID=351]="STOP_DST_MULTIADDR_INVALID",a[a.STOP_RELAY_REFUSED=390]="STOP_RELAY_REFUSED",a[a.MALFORMED_MESSAGE=400]="MALFORMED_MESSAGE"})(r||(r={})),function(a){a.codec=()=>wn(r)}(e=t.Status||(t.Status={}));let n;(function(a){a.HOP="HOP",a.STOP="STOP",a.STATUS="STATUS",a.CAN_HOP="CAN_HOP"})(n=t.Type||(t.Type={}));let i;(function(a){a[a.HOP=1]="HOP",a[a.STOP=2]="STOP",a[a.STATUS=3]="STATUS",a[a.CAN_HOP=4]="CAN_HOP"})(i||(i={})),function(a){a.codec=()=>wn(i)}(n=t.Type||(t.Type={}));let s;(function(a){let c;a.codec=()=>(c==null&&(c=Ne((u,l,f={})=>{if(f.lengthDelimited!==!1&&l.fork(),(f.writeDefaults===!0||u.id!=null&&u.id.byteLength>0)&&(l.uint32(10),l.bytes(u.id)),u.addrs!=null)for(let d of u.addrs)l.uint32(18),l.bytes(d);f.lengthDelimited!==!1&&l.ldelim()},(u,l)=>{let f={id:new Uint8Array(0),addrs:[]},d=l==null?u.len:u.pos+l;for(;u.pos<d;){let h=u.uint32();switch(h>>>3){case 1:f.id=u.bytes();break;case 2:f.addrs.push(u.bytes());break;default:u.skipType(h&7);break}}return f})),c),a.encode=u=>Re(u,a.codec()),a.decode=u=>Te(u,a.codec())})(s=t.Peer||(t.Peer={}));let o;t.codec=()=>(o==null&&(o=Ne((a,c,u={})=>{u.lengthDelimited!==!1&&c.fork(),a.type!=null&&(c.uint32(8),t.Type.codec().encode(a.type,c)),a.srcPeer!=null&&(c.uint32(18),t.Peer.codec().encode(a.srcPeer,c,{writeDefaults:!1})),a.dstPeer!=null&&(c.uint32(26),t.Peer.codec().encode(a.dstPeer,c,{writeDefaults:!1})),a.code!=null&&(c.uint32(32),t.Status.codec().encode(a.code,c)),u.lengthDelimited!==!1&&c.ldelim()},(a,c)=>{let u={},l=c==null?a.len:a.pos+c;for(;a.pos<l;){let f=a.uint32();switch(f>>>3){case 1:u.type=t.Type.codec().decode(a);break;case 2:u.srcPeer=t.Peer.codec().decode(a,a.uint32());break;case 3:u.dstPeer=t.Peer.codec().decode(a,a.uint32());break;case 4:u.code=t.Status.codec().decode(a);break;default:a.skipType(f&7);break}}return u})),o),t.encode=a=>Re(a,t.codec()),t.decode=a=>Te(a,t.codec())})(j||(j={}));var Zs=class extends Error{constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Zm(t){if(t!=null){if(typeof t[Symbol.iterator]=="function")return t[Symbol.iterator]();if(typeof t[Symbol.asyncIterator]=="function")return t[Symbol.asyncIterator]();if(typeof t.next=="function")return t}throw new Error("argument is not an iterator or iterable")}function si(t,e,r){let n=r??{},i=Zm(t);async function*s(){let o,a=()=>{o?.()};for(e.addEventListener("abort",a);;){let c;try{if(e.aborted){let{abortMessage:l,abortCode:f}=n;throw new Zs(l,f)}let u=new Promise((l,f)=>{o=()=>{let{abortMessage:d,abortCode:h}=n;f(new Zs(d,h))}});c=await Promise.race([u,i.next()]),o=null}catch(u){e.removeEventListener("abort",a);let l=u.type==="aborted"&&e.aborted;if(l&&n.onAbort!=null&&await n.onAbort(t),typeof i.return=="function")try{let f=i.return();f instanceof Promise&&f.catch(d=>{n.onReturnError!=null&&n.onReturnError(d)})}catch(f){n.onReturnError!=null&&n.onReturnError(f)}if(l&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}e.removeEventListener("abort",a)}return s()}function Y2(t,e,r){return n=>t(si(n,e,r))}function Lt(t,e,r){return{sink:Y2(t.sink,e,{...r,onAbort:void 0}),source:si(t.source,e,r)}}var W2=M("libp2p:stream:converter");function af(t,e={}){let{stream:r,remoteAddr:n}=t,{sink:i,source:s}=r,o=async function*(){for await(let u of s)yield*u}(),a={async sink(u){e.signal!=null&&(u=si(u,e.signal));try{await i(u),await c()}catch(l){l.type!=="aborted"&&W2(l)}},source:e.signal!=null?si(o,e.signal):o,remoteAddr:n,timeline:{open:Date.now(),close:void 0},async close(){await i(async function*(){yield new Uint8Array(0)}()),await c()}};async function c(){return a.timeline.close==null&&(a.timeline.close=Date.now()),await Promise.resolve()}return a}var xr="/libp2p/circuit/relay/0.1.0";function Jm(t){let e=new Map;async function r(s){let o=s.toString().split("/p2p-circuit").find(d=>d!==""),a=oe(o),c=a.getPeerId();if(c==null)throw new Error("Could not determine relay peer from multiaddr");let u=ae(c);await t.peerStore.addressBook.add(u,[a]);let l=await t.connectionManager.openConnection(u),f=l.remoteAddr.encapsulate("/p2p-circuit");e.set(l.remotePeer.toString(),f),i.dispatchEvent(new X("listening"))}function n(){let s=[];for(let o of e.values())s.push(o);return s}let i=Object.assign(new Ue,{close:async()=>await Promise.resolve(),listen:r,getAddrs:n});return t.connectionManager.addEventListener("peer:disconnect",s=>{let{detail:o}=s;e.delete(o.remotePeer.toString())&&i.dispatchEvent(new X("close"))}),i}var ff=C(Y(),1);function ey(t,e){t.write({type:j.Type.STATUS,code:e})}function Ha(t,e){try{t.dstPeer?.addrs!=null&&t.dstPeer.addrs.forEach(r=>oe(r))}catch(r){throw ey(e,t.type===j.Type.HOP?j.Status.HOP_DST_MULTIADDR_INVALID:j.Status.STOP_DST_MULTIADDR_INVALID),r}try{t.srcPeer?.addrs!=null&&t.srcPeer.addrs.forEach(r=>oe(r))}catch(r){throw ey(e,t.type===j.Type.HOP?j.Status.HOP_SRC_MULTIADDR_INVALID:j.Status.STOP_SRC_MULTIADDR_INVALID),r}}var ry=Symbol.for("@achingbrain/uint8arraylist");function ty(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 za(t){return Boolean(t?.[ry])}var $e=class{constructor(...e){Object.defineProperty(this,ry,{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(za(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(za(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=ty(this.bufs,e);return r.buf[r.index]}set(e,r){let n=ty(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(za(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 Qe(n,i)}subarray(e,r){let{bufs:n,length:i}=this._subList(e,r);return n.length===1?n[0]:Qe(n,i)}sublist(e,r){let{bufs:n,length:i}=this._subList(e,r),s=new $e;return s.length=i,s.bufs=n,s}_subList(e,r){if(e=e??0,r=r??this.length,e<0&&(e=this.length+e),r<0&&(r=this.length+r),e<0||r>this.length)throw new RangeError("index is out of bounds");if(e===r)return{bufs:[],length:0};if(e===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let s=0;s<this.bufs.length;s++){let o=this.bufs[s],a=i,c=a+o.byteLength;if(i=c,e>=c)continue;let u=e>=a&&e<c,l=r>a&&r<=c;if(u&&l){if(e===a&&r===c){n.push(o);break}let f=e-a;n.push(o.subarray(f,f+(r-e)));break}if(u){if(e===0){n.push(o);continue}n.push(o.subarray(e-a));continue}if(l){if(r===c){n.push(o);break}n.push(o.subarray(0,r-a));break}n.push(o)}return{bufs:n,length:r-e}}indexOf(e,r=0){if(!za(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),e.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let s=256,o=new Int32Array(s);for(let f=0;f<s;f++)o[f]=-1;for(let f=0;f<i;f++)o[n[f]]=f;let a=o,c=this.byteLength-n.byteLength,u=n.byteLength-1,l;for(let f=r;f<=c;f+=l){l=0;for(let d=u;d>=0;d--){let h=this.get(f+d);if(n[d]!==h){l=Math.max(1,d-a[h]);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=Fr(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=Mr(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=Mr(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=Mr(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=Fr(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=Mr(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=Mr(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=Mr(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=Mr(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=Mr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof $e)||e.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Ae(this.bufs[r],e.bufs[r]))return!1;return!0}static fromUint8Arrays(e,r){let n=new $e;return n.bufs=e,r==null&&(r=e.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};function $a(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 ny=4294967296,Pt=class{constructor(e=0,r=0){this.hi=e,this.lo=r}toBigInt(e){if(e===!0)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toNumber(e){return Number(this.toBigInt(e))}zzDecode(){let e=-(this.lo&1),r=((this.lo>>>1|this.hi<<31)^e)>>>0,n=(this.hi>>>1^e)>>>0;return new Pt(n,r)}zzEncode(){let e=this.hi>>31,r=((this.hi<<1|this.lo>>>31)^e)>>>0,n=(this.lo<<1^e)>>>0;return new Pt(r,n)}toBytes(e,r=0){let n=$a(e);for(;this.hi>0;)n.set(r++,this.lo&127|128),this.lo=(this.lo>>>7|this.hi<<25)>>>0,this.hi>>>=7;for(;this.lo>127;)n.set(r++,this.lo&127|128),this.lo=this.lo>>>7;n.set(r++,this.lo)}static fromBigInt(e){if(e===0n)return new Pt;let r=e<0;r&&(e=-e);let n=Number(e>>32n)|0,i=Number(e-(BigInt(n)<<32n))|0;return r&&(n=~n>>>0,i=~i>>>0,++i>ny&&(i=0,++n>ny&&(n=0))),new Pt(n,i)}static fromNumber(e){if(e===0)return new Pt;let r=e<0;r&&(e=-e);let n=e>>>0,i=(e-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new Pt(i,n)}static fromBytes(e,r=0){let n=$a(e),i=new Pt,s=0;if(e.length-r>4){for(;s<4;++s)if(i.lo=(i.lo|(n.get(r)&127)<<s*7)>>>0,n.get(r++)<128)return i;if(i.lo=(i.lo|(n.get(r)&127)<<28)>>>0,i.hi=(i.hi|(n.get(r)&127)>>4)>>>0,n.get(r++)<128)return i;s=0}else for(;s<4;++s){if(r>=e.length)throw RangeError(`index out of range: ${r} > ${e.length}`);if(i.lo=(i.lo|(n.get(r)&127)<<s*7)>>>0,n.get(r++)<128)return i}if(e.length-r>4){for(;s<5;++s)if(i.hi=(i.hi|(n.get(r)&127)<<s*7+3)>>>0,n.get(r++)<128)return i}else if(r<e.byteLength)for(;s<5;++s){if(r>=e.length)throw RangeError(`index out of range: ${r} > ${e.length}`);if(i.hi=(i.hi|(n.get(r)&127)<<s*7+3)>>>0,n.get(r++)<128)return i}throw RangeError("invalid varint encoding")}};var Q2=Math.pow(2,7),X2=Math.pow(2,14),j2=Math.pow(2,21),Z2=Math.pow(2,28),J2=Math.pow(2,35),eS=Math.pow(2,42),tS=Math.pow(2,49),rS=Math.pow(2,56),nS=Math.pow(2,63),ir={encodingLength(t){return t<Q2?1:t<X2?2:t<j2?3:t<Z2?4:t<J2?5:t<eS?6:t<tS?7:t<rS?8:t<nS?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=Fr(ir.encodingLength(t))),Pt.fromNumber(t).toBytes(e,r),e},decode(t,e=0){return Pt.fromBytes(t,e).toNumber(!0)}};function iy(t){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(t):new Uint8Array(t)}var Ga=t=>{let e=ir.encodingLength(t),r=iy(e);return ir.encode(t,r),Ga.bytes=e,r};Ga.bytes=0;function Ht(t){t=t??{};let e=t.lengthEncoder??Ga;return async function*(n){for await(let i of n){let s=e(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}}}Ht.single=(t,e)=>{e=e??{};let r=e.lengthEncoder??Ga;return new $e(r(t.byteLength),t)};var Js=C(Y(),1),iS=8,sS=1024*1024*4,oi;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(oi||(oi={}));var cf=t=>{let e=ir.decode(t);return cf.bytes=ir.encodingLength(e),e};cf.bytes=0;function Bt(t){return async function*(r){let n=new $e,i=oi.LENGTH,s=-1,o=t?.lengthDecoder??cf,a=t?.maxLengthLength??iS,c=t?.maxDataLength??sS;for await(let u of r)for(n.append(u);n.byteLength>0;){if(i===oi.LENGTH)try{if(s=o(n),s<0)throw(0,Js.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(s>c)throw(0,Js.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let l=o.bytes;n.consume(l),t?.onLength!=null&&t.onLength(s),i=oi.DATA}catch(l){if(l instanceof RangeError){if(n.byteLength>a)throw(0,Js.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw l}if(i===oi.DATA){if(n.byteLength<s)break;let l=n.sublist(0,s);n.consume(s),t?.onData!=null&&t.onData(l),yield l,i=oi.LENGTH}}if(n.byteLength>0)throw(0,Js.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}}Bt.fromReader=(t,e)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await t.next(r);if(s===!0)return;o!=null&&(yield o)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{r=1}}();return Bt({...e??{},onLength:s=>{r=s}})(n)};function uf(t){let e=async function*(){let r=yield,n=new $e;for await(let i of t){if(r==null){n.append(i),r=yield n,n=new $e;continue}for(n.append(i);n.length>=r;){let s=n.sublist(0,r);if(n.consume(r),r=yield s,r==null){n.length>0&&(r=yield n,n=new $e);break}}}if(r!=null)throw Object.assign(new Error(`stream ended before ${r} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return e.next(),e}function lf(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}function Ji(t){let e=Qn(),r=uf(t.source),n=lf(),i,s=t.sink(async function*(){yield*e,yield*await n.promise}());return s.catch(a=>{i=a}),{reader:r,writer:e,stream:{sink:async a=>i!=null?await Promise.reject(i):(n.resolve(a),await s),source:r},rest:()=>e.end(),write:e.push,read:async()=>{let a=await r.next();if(a.value!=null)return a.value}}}var eo=M("libp2p:circuit:stream-handler"),Gr=class{constructor(e){let{stream:r,maxLength:n=4096}=e;this.stream=r,this.shake=Ji(this.stream),this.decoder=Bt.fromReader(this.shake.reader,{maxDataLength:n})}async read(){let e=await this.decoder.next();if(e.value!=null){let r=j.decode(e.value);return eo("read message type",r.type),r}eo("read received no value, closing stream"),this.close()}write(e){eo("write message type %s",e.type),this.shake.write(Ht.single(j.encode(e)))}rest(){return this.shake.rest(),this.shake.stream}end(e){this.write(e),this.close()}close(){eo("closing the stream"),this.rest().sink([]).catch(e=>{eo.error(e)})}};var to=M("libp2p:circuit:stop");function sy(t){let{connection:e,request:r,streamHandler:n}=t;try{Ha(r,n)}catch(i){to.error("invalid stop request via peer %p %o",e.remotePeer,i);return}return to("stop request is valid"),n.write({type:j.Type.STATUS,code:j.Status.SUCCESS}),n.rest()}async function oy(t){let{connection:e,request:r,signal:n}=t,i=await e.newStream(xr,{signal:n});to("starting stop request to %p",e.remotePeer);let s=new Gr({stream:i});s.write(r);let o=await s.read();if(o==null){s.close();return}if(o.code===j.Status.SUCCESS)return to("stop request to %p was successful",e.remotePeer),s.rest();to("stop request failed with code %d",o.code),s.close()}var zt=M("libp2p:circuit:hop");async function ay(t){let{connection:e,request:r,streamHandler:n,circuit:i,connectionManager:s}=t;if(!i.hopEnabled())return zt("HOP request received but we are not acting as a relay"),n.end({type:j.Type.STATUS,code:j.Status.HOP_CANT_SPEAK_RELAY});try{Ha(r,n)}catch(f){zt.error("invalid hop request via peer %p %o",e.remotePeer,f);return}if(r.dstPeer==null){zt("HOP request received but we do not receive a dstPeer");return}let o=pn(r.dstPeer.id),a=s.getConnections(o);if(a.length===0&&!i.hopActive())return zt("HOP request received but we are not connected to the destination peer"),n.end({type:j.Type.STATUS,code:j.Status.HOP_NO_CONN_TO_DST});if(a.length===0)return zt("did not have connection to remote peer"),n.end({type:j.Type.STATUS,code:j.Status.HOP_NO_CONN_TO_DST});let c={type:j.Type.STOP,dstPeer:r.dstPeer,srcPeer:r.srcPeer},u;try{zt("performing STOP request");let f=await oy({connection:a[0],request:c});if(f==null)throw new Error("Could not stop");u=f}catch(f){zt.error(f);return}zt("hop request from %p is valid",e.remotePeer),n.write({type:j.Type.STATUS,code:j.Status.SUCCESS});let l=n.rest();return zt("creating related connections"),await Ie(l,u,l)}async function cy(t){let{connection:e,request:r,signal:n}=t,i=await e.newStream(xr,{signal:n}),s=new Gr({stream:i});s.write(r);let o=await s.read();if(o==null)throw(0,ff.default)(new Error("HOP request had no response"),b.ERR_HOP_REQUEST_FAILED);if(o.code===j.Status.SUCCESS)return zt("hop request was successful"),s.rest();throw zt("hop request failed with code %d, closing stream",o.code),s.close(),(0,ff.default)(new Error(`HOP request failed with code "${o.code??"unknown"}"`),b.ERR_HOP_REQUEST_FAILED)}async function uy(t){let{connection:e,signal:r}=t,n=await e.newStream(xr,{signal:r}),i=new Gr({stream:n});i.write({type:j.Type.CAN_HOP});let s=await i.read();return await i.close(),!(s==null||s.code!==j.Status.SUCCESS)}function ly(t){let{connection:e,streamHandler:r,circuit:n}=t,i=n.hopEnabled();zt("can hop (%s) request from %p",i,e.remotePeer),r.end({type:j.Type.STATUS,code:i?j.Status.SUCCESS:j.Status.HOP_CANT_SPEAK_RELAY})}var fy=Symbol.for("@libp2p/transport");var xn;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(xn||(xn={}));var dy=C(Vr(),1),py=C(gr(),1),$t=M("libp2p:circuit"),Wa=class{constructor(e,r){this._init=r,this.components=e,this._started=!1}isStarted(){return this._started}async start(){this._started||(this._started=!0,await this.components.registrar.handle(xr,e=>{this._onProtocol(e).catch(r=>{$t.error(r)})},{...this._init}).catch(e=>{$t.error(e)}))}async stop(){await this.components.registrar.unhandle(xr)}hopEnabled(){return!0}hopActive(){return!0}get[fy](){return!0}get[Symbol.toStringTag](){return"libp2p/circuit-relay-v1"}async _onProtocol(e){let{connection:r,stream:n}=e,i=new dy.TimeoutController(this._init.hop.timeout);try{(0,py.setMaxListeners)?.(1/0,i.signal)}catch{}try{let s=Lt(n,i.signal),o=new Gr({stream:{...n,...s}}),a=await o.read();if(a==null){$t("request was invalid, could not read from stream"),o.write({type:j.Type.STATUS,code:j.Status.MALFORMED_MESSAGE}),o.close();return}let c;switch(a.type){case j.Type.CAN_HOP:{$t("received CAN_HOP request from %p",r.remotePeer),await ly({circuit:this,connection:r,streamHandler:o});break}case j.Type.HOP:{$t("received HOP request from %p",r.remotePeer),await ay({connection:r,request:a,streamHandler:o,circuit:this,connectionManager:this.components.connectionManager});break}case j.Type.STOP:{$t("received STOP request from %p",r.remotePeer),c=await sy({connection:r,request:a,streamHandler:o});break}default:{$t("Request of type %s not supported",a.type),o.write({type:j.Type.STATUS,code:j.Status.MALFORMED_MESSAGE}),o.close();return}}if(c!=null){let u=r.remoteAddr.encapsulate("/p2p-circuit").encapsulate(oe(a.dstPeer?.addrs[0])),l=oe(a.srcPeer?.addrs[0]),f=af({stream:c,remoteAddr:u,localAddr:l}),d=a.type===j.Type.HOP?"relay":"inbound";$t("new %s connection %s",d,f.remoteAddr);let h=await this.components.upgrader.upgradeInbound(f);$t("%s connection %s upgraded",d,f.remoteAddr),this.handler!=null&&this.handler(h)}}finally{i.clear()}}async dial(e,r={}){let n=e.toString().split("/p2p-circuit"),i=oe(n[0]),s=oe(n[n.length-1]),o=i.getPeerId(),a=s.getPeerId();if(o==null||a==null){let h="Circuit relay dial failed as addresses did not have peer id";throw $t.error(h),(0,hy.default)(new Error(h),b.ERR_RELAYED_DIAL)}let c=ae(o),u=ae(a),l=!1,d=this.components.connectionManager.getConnections(c)[0];d==null&&(await this.components.peerStore.addressBook.add(c,[i]),d=await this.components.connectionManager.openConnection(c,r),l=!0);try{let h=await cy({...r,connection:d,request:{type:j.Type.HOP,srcPeer:{id:this.components.peerId.toBytes(),addrs:this.components.addressManager.getAddresses().map(g=>g.bytes)},dstPeer:{id:u.toBytes(),addrs:[oe(s).bytes]}}}),p=i.encapsulate(`/p2p-circuit/p2p/${this.components.peerId.toString()}`),y=af({stream:h,remoteAddr:e,localAddr:p});return $t("new outbound connection %s",y.remoteAddr),await this.components.upgrader.upgradeOutbound(y)}catch(h){throw $t.error("Circuit relay dial failed",h),l&&await d.close(),h}}createListener(e){return this.handler=e.handler,Jm({connectionManager:this.components.connectionManager,peerStore:this.components.peerStore})}filter(e){return e=Array.isArray(e)?e:[e],e.filter(r=>ti.matches(r))}};var rc=C(wl(),1);async function Qa(t){let e=new TextEncoder().encode(t),r=await ot.digest(e);return we.createV0(r)}var hf="hop_relay",df="true",Xa="/libp2p/relay";var xy=C(my(),1);var yy="[a-fA-F\\d:]",bn=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${yy})|(?<=${yy})(?=\\s|$))`:"",sr="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",tt="[a-fA-F\\d]{1,4}",ja=`
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"))}};z0.exports=vl});var G0=T(()=>{});var Rn=T(()=>{});var W0=T((GT,Y0)=>{Y0.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 X0=T((WT,Q0)=>{var Bx=W0(),bl=ve();Q0.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 bl(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 Bx(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 bl(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 bl(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 Sl=T((QT,J0)=>{var Dx=ts(),Lx=X0(),Z0=ve(),_l=class extends Dx{constructor(t={}){super(t),this._memoryStorage=new Lx}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 Z0(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 Z0(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)))}};J0.exports=_l});var sd=T((XT,id)=>{var j0=G0(),Px=Rn(),Nx=ts(),ed=Sl(),kx=ve(),Be="rate_limiter_flexible",Ei=null,td=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:Be,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:e,data:i})},rd=function(r){setTimeout(()=>{this._initiated?process.send(r):typeof this._promises[r.promiseId]<"u"&&rd.call(this,r)},30)},gi=function(r,t,e,n,i){let s={channel:Be,keyPrefix:this.keyPrefix,func:r,promiseId:t,data:{key:e,arg:n,opts:i}};this._initiated?process.send(s):rd.call(this,s)},nd=function(r,t){if(!t||t.channel!==Be||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=>{td(r,t,"resolve",n)}).catch(n=>{td(r,t,"reject",n)})},Ox=function(r){if(!r||r.channel!==Be||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 kx(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]}},Mx=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+=Px.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},Al=class{constructor(){if(Ei)return Ei;this._rateLimiters={},j0.setMaxListeners(0),j0.on("message",(t,e)=>{e&&e.channel===Be&&e.type==="init"?(typeof this._rateLimiters[e.opts.keyPrefix]>"u"&&(this._rateLimiters[e.opts.keyPrefix]=new ed(e.opts)),t.send({channel:Be,type:"init",keyPrefix:e.opts.keyPrefix})):nd.call(this,t,e)}),Ei=this}},Rl=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===Be&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new ed(s.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:Be,channel:Be,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=Be,typeof c.data>"u"&&(c.data={}),t.sendDataToProcessId(i.process.pm_id,c,(l,u)=>{l&&console.log(l,u)})}};nd.call(this,o,s)}})}),Ei=this}},Il=class extends Nx{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===Be&&e.type==="init"&&e.keyPrefix===this.keyPrefix?this._initiated=!0:Ox.call(this,e)}),process.send({channel:Be,type:"init",opts:Mx.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)})}};id.exports={RateLimiterClusterMaster:Al,RateLimiterClusterMasterPM2:Rl,RateLimiterCluster:Il}});var ad=T((ZT,od)=>{var Ux=yi(),Fx=ve(),Tl=class extends Ux{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,e,n){let i=new Fx;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)})})})}};od.exports=Tl});var ud=T((jT,ld)=>{var cd=ve();ld.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 cd(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new cd(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 hd=T((eC,fd)=>{var Kx=ts();fd.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 Kx))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 pd=T((nC,dd)=>{dd.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 wd=T((sC,gd)=>{var md=pd(),yd=4294967295,Cl="limiter";gd.exports=class{constructor(t,e={maxQueueSize:yd}){this._queueLimiters={KEY_DEFAULT:new Do(t,e)},this._limiterFlexible=t,this._maxQueueSize=e.maxQueueSize}getTokensRemaining(t=Cl){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,e=Cl){return this._queueLimiters[e]||(this._queueLimiters[e]=new Do(this._limiterFlexible,{key:e,maxQueueSize:this._maxQueueSize})),this._queueLimiters[e].removeTokens(t)}};var Do=class{constructor(t,e={maxQueueSize:yd,key:Cl}){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 md(`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 md(`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 xd=T((aC,Ed)=>{var Bl=ve();Ed.exports=class{constructor(t,e){this._rateLimiter=t,this._burstLimiter=e}_combineRes(t,e){return new Bl(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 Bl?this._burstLimiter.consume(t,e,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Bl?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 bd=T((cC,vd)=>{var Vx=U0(),qx=V0(),$x=$0(),zx=H0(),{RateLimiterClusterMaster:Hx,RateLimiterClusterMasterPM2:Gx,RateLimiterCluster:Yx}=sd(),Wx=Sl(),Qx=ad(),Xx=ud(),Zx=hd(),Jx=wd(),jx=xd(),tv=ve();vd.exports={RateLimiterRedis:Vx,RateLimiterMongo:qx,RateLimiterMySQL:$x,RateLimiterPostgres:zx,RateLimiterMemory:Wx,RateLimiterMemcache:Qx,RateLimiterClusterMaster:Hx,RateLimiterClusterMasterPM2:Gx,RateLimiterCluster:Yx,RLWrapperBlackAndWhite:Xx,RateLimiterUnion:Zx,RateLimiterQueue:Jx,BurstyRateLimiter:jx,RateLimiterRes:tv}});var Ad=T((BC,Sd)=>{"use strict";function iv(r){return r>=55296&&r<=56319}function sv(r){return r>=56320&&r<=57343}Sd.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],iv(o)&&sv(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 Id=T((DC,Rd)=>{"use strict";function ov(r){return r>=55296&&r<=56319}function av(r){return r>=56320&&r<=57343}Rd.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),av(i)?s!=null&&ov(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 Cd=T((LC,Td)=>{"use strict";var cv=Ad(),lv=Id();Td.exports=cv.bind(null,lv)});var Ld=T((PC,Dd)=>{"use strict";var uv=Cd(),fv=/[\/\?<>\\:\*\|"]/g,hv=/[\x00-\x1f\x80-\x9f]/g,dv=/^\.+$/,pv=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,mv=/[\. ]+$/;function Bd(r,t){if(typeof r!="string")throw new Error("Input must be string");var e=r.replace(fv,t).replace(hv,t).replace(dv,t).replace(pv,t).replace(mv,t);return uv(e,255)}Dd.exports=function(r,t){var e=t&&t.replacement||"",n=Bd(r,e);return e===""?n:Bd(n,"")}});var Nd=T((kC,Pd)=>{"use strict";Pd.exports=yv;function yv(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 Ud=T(Md=>{"use strict";var Oo=Md;Oo.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),Od=new Array(123);for(Fe=0;Fe<64;)Od[vi[Fe]=Fe<26?Fe+65:Fe<52?Fe+71:Fe<62?Fe-4:Fe-59|43]=Fe++;var Fe;Oo.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 kd="invalid encoding";Oo.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=Od[c])===void 0)throw Error(kd);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(kd);return n-i};Oo.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var Kd=T((MC,Fd)=>{"use strict";Fd.exports=Mo;function Mo(){this._listeners={}}Mo.prototype.on=function(t,e,n){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:e,ctx:n||this}),this};Mo.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};Mo.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 Yd=T((UC,Gd)=>{"use strict";Gd.exports=Vd(Vd);function Vd(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,qd),r.writeFloatBE=t.bind(null,$d);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,zd),r.readFloatBE=e.bind(null,Hd)}(),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,qd,0,4),r.writeDoubleBE=t.bind(null,$d,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,zd,0,4),r.readDoubleBE=e.bind(null,Hd,4,0)}(),r}function qd(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 $d(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 zd(r,t){return(r[t]|r[t+1]<<8|r[t+2]<<16|r[t+3]<<24)>>>0}function Hd(r,t){return(r[t]<<24|r[t+1]<<16|r[t+2]<<8|r[t+3])>>>0}});var Wd=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 Xd=T(Qd=>{"use strict";var Pl=Qd;Pl.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};Pl.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))};Pl.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 Jd=T((KC,Zd)=>{"use strict";Zd.exports=gv;function gv(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 tp=T((VC,jd)=>{"use strict";jd.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 wv=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===wv?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(Nl=>{"use strict";var M=Nl;M.asPromise=Nd();M.base64=Ud();M.EventEmitter=Kd();M.float=Yd();M.inquire=Wd();M.utf8=Xd();M.pool=Jd();M.LongBits=tp();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||Nl;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 ep(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=ep;M.lcFirst=function(t){return t.charAt(0).toLowerCase()+t.substring(1)};function rp(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&&ep(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=rp;M.ProtocolError=rp("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 Ml=T(($C,ap)=>{"use strict";ap.exports=Vt;var er=Tn(),Ol,sp=er.LongBits,Ev=er.utf8;function Ke(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 np=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")},op=function(){return er.Buffer?function(e){return(Vt.create=function(i){return er.Buffer.isBuffer(i)?new Ol(i):np(i)})(e)}:np};Vt.create=op();Vt.prototype._slice=er.Array.prototype.subarray||er.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,Ke(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 kl(){var r=new sp(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 Ke(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 Ke(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 Uo(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 Ke(this,4);return Uo(this.buf,this.pos+=4)};Vt.prototype.sfixed32=function(){if(this.pos+4>this.len)throw Ke(this,4);return Uo(this.buf,this.pos+=4)|0};function ip(){if(this.pos+8>this.len)throw Ke(this,8);return new sp(Uo(this.buf,this.pos+=4),Uo(this.buf,this.pos+=4))}Vt.prototype.float=function(){if(this.pos+4>this.len)throw Ke(this,4);var t=er.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};Vt.prototype.double=function(){if(this.pos+8>this.len)throw Ke(this,4);var t=er.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 Ke(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 Ev.read(t,0,t.length)};Vt.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Ke(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Ke(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){Ol=r,Vt.create=op(),Ol._configure();var t=er.Long?"toLong":"toNumber";er.merge(Vt.prototype,{int64:function(){return kl.call(this)[t](!1)},uint64:function(){return kl.call(this)[t](!0)},sint64:function(){return kl.call(this).zzDecode()[t](!1)},fixed64:function(){return ip.call(this)[t](!0)},sfixed64:function(){return ip.call(this)[t](!1)}})}});var fp=T((zC,up)=>{"use strict";up.exports=Cn;var lp=Ml();(Cn.prototype=Object.create(lp.prototype)).constructor=Cn;var cp=Tn();function Cn(r){lp.call(this,r)}Cn._configure=function(){cp.Buffer&&(Cn.prototype._slice=cp.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 zl=T((HC,mp)=>{"use strict";mp.exports=nt;var De=Tn(),Ul,Fo=De.LongBits,hp=De.base64,dp=De.utf8;function ns(r,t,e){this.fn=r,this.len=t,this.next=void 0,this.val=e}function Kl(){}function xv(r){this.head=r.head,this.tail=r.tail,this.len=r.len,this.next=r.states}function nt(){this.len=0,this.head=new ns(Kl,0,0),this.tail=this.head,this.states=null}var pp=function(){return De.Buffer?function(){return(nt.create=function(){return new Ul})()}:function(){return new nt}};nt.create=pp();nt.alloc=function(t){return new De.Array(t)};De.Array!==Array&&(nt.alloc=De.pool(nt.alloc,De.Array.prototype.subarray));nt.prototype._push=function(t,e,n){return this.tail=this.tail.next=new ns(t,e,n),this.len+=e,this};function Vl(r,t,e){t[e]=r&255}function vv(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}function ql(r,t){this.len=r,this.next=void 0,this.val=t}ql.prototype=Object.create(ns.prototype);ql.prototype.fn=vv;nt.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new ql((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};nt.prototype.int32=function(t){return t<0?this._push($l,10,Fo.fromNumber(t)):this.uint32(t)};nt.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function $l(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}nt.prototype.uint64=function(t){var e=Fo.from(t);return this._push($l,e.length(),e)};nt.prototype.int64=nt.prototype.uint64;nt.prototype.sint64=function(t){var e=Fo.from(t).zzEncode();return this._push($l,e.length(),e)};nt.prototype.bool=function(t){return this._push(Vl,1,t?1:0)};function Fl(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}nt.prototype.fixed32=function(t){return this._push(Fl,4,t>>>0)};nt.prototype.sfixed32=nt.prototype.fixed32;nt.prototype.fixed64=function(t){var e=Fo.from(t);return this._push(Fl,4,e.lo)._push(Fl,4,e.hi)};nt.prototype.sfixed64=nt.prototype.fixed64;nt.prototype.float=function(t){return this._push(De.float.writeFloatLE,4,t)};nt.prototype.double=function(t){return this._push(De.float.writeDoubleLE,8,t)};var bv=De.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]};nt.prototype.bytes=function(t){var e=t.length>>>0;if(!e)return this._push(Vl,1,0);if(De.isString(t)){var n=nt.alloc(e=hp.length(t));hp.decode(t,n,0),t=n}return this.uint32(e)._push(bv,e,t)};nt.prototype.string=function(t){var e=dp.length(t);return e?this.uint32(e)._push(dp.write,e,t):this._push(Vl,1,0)};nt.prototype.fork=function(){return this.states=new xv(this),this.head=this.tail=new ns(Kl,0,0),this.len=0,this};nt.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(Kl,0,0),this.len=0),this};nt.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};nt.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};nt._configure=function(r){Ul=r,nt.create=pp(),Ul._configure()}});var wp=T((GC,gp)=>{"use strict";gp.exports=rr;var yp=zl();(rr.prototype=Object.create(yp.prototype)).constructor=rr;var Hr=Tn();function rr(){yp.call(this)}rr._configure=function(){rr.alloc=Hr._Buffer_allocUnsafe,rr.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++]}};rr.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(rr.writeBytesBuffer,e,t),this};function _v(r,t,e){r.length<40?Hr.utf8.write(r,t,e):t.utf8Write?t.utf8Write(r,e):t.write(r,e)}rr.prototype.string=function(t){var e=Hr.Buffer.byteLength(t);return this.uint32(e),e&&this._push(_v,e,t),this};rr._configure()});var ft=T((u4,_p)=>{_p.exports={options:{usePureJavaScript:!1}}});var Rp=T((f4,Ap)=>{var Xl={};Ap.exports=Xl;var Sp={};Xl.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=Iv(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};Xl.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=Sp[t];if(!e){e=Sp[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 Iv(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((h4,Bp)=>{var Ip=ft(),Tp=Rp(),E=Bp.exports=Ip.util=Ip.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=Zl;function Zl(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 Zl||typeof r=="object"&&typeof r.data=="string"&&typeof r.read=="number")&&(this.data=r.data,this.read=r.read);this._constructedStringLength=0}E.ByteStringBuffer=Zl;var Tv=4096;E.ByteStringBuffer.prototype._optimizeConstructedString=function(r){this._constructedStringLength+=r,this._constructedStringLength>Tv&&(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 Cv(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=Cv;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],Cp="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:Tp.encode,decode:Tp.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,Cp,t)};E.binary.base58.decode=function(r,t){return E.binary.baseN.decode(r,Cp,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 Jl=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}},jl=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},Bv=function(r,t,e,n){var i=jl(r,t);i===null&&(i={}),i[e]=n,Jl(r,t,i)},Dv=function(r,t,e){var n=jl(r,t);return n!==null&&(n=e in n?n[e]:null),n},Lv=function(r,t,e){var n=jl(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),Jl(r,t,n)}},Pv=function(r,t){Jl(r,t,null)},qo=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){qo(Bv,arguments,i)};E.getItem=function(r,t,e,n){return qo(Dv,arguments,n)};E.removeItem=function(r,t,e,n){qo(Lv,arguments,n)};E.clearItems=function(r,t,e){qo(Pv,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 $o=T((d4,Dp)=>{var ss=ft();ss.pki=ss.pki||{};var tu=Dp.exports=ss.pki.oids=ss.oids=ss.oids||{};function I(r,t){tu[r]=t,tu[t]=r}function ut(r,t){tu[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((p4,Pp)=>{var _t=ft();qt();$o();var D=Pp.exports=_t.asn1=_t.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(_t.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||_t.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(_t.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(_t.util.isArray(r)){if(!_t.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 Nv=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=_t.util.createBuffer(r));var e=r.length(),n=zo(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 zo(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=Nv(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(zo(r,t,e+1,n)),t-=i-r.length()}else for(;c>0;)i=r.length(),u.push(zo(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=zo(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=_t.util.createBuffer(),e=r.tagClass|r.type,n=_t.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=_t.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=_t.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=_t.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=_t.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&&_t.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 Lp=/[^\\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,_t.pki&&_t.pki.oids&&c in _t.pki.oids&&(n+=" ("+_t.pki.oids[c]+") ")}if(r.type===D.Type.INTEGER)try{n+=D.derToInteger(r.value)}catch{n+="0x"+_t.util.bytesToHex(r.value)}else if(r.type===D.Type.BITSTRING){if(r.value.length>1?n+="0x"+_t.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)Lp.test(r.value)||(n+="("+r.value+") "),n+="0x"+_t.util.bytesToHex(r.value);else if(r.type===D.Type.UTF8)try{n+=_t.util.decodeUtf8(r.value)}catch(u){if(u.message==="URI malformed")n+="0x"+_t.util.bytesToHex(r.value)+" (malformed UTF8)";else throw u}else r.type===D.Type.PRINTABLESTRING||r.type===D.Type.IA5String?n+=r.value:Lp.test(r.value)?n+="0x"+_t.util.bytesToHex(r.value):r.value.length===0?n+="[null]":n+=r.value}return n}});var ru=T((m4,Np)=>{var jt=ft();qt();Np.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 eu=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)};eu.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)};eu.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()};eu.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 iu=T((y4,kp)=>{var te=ft();qt();te.cipher=te.cipher||{};var Q=kp.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=Ho(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=Ho(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=Ho(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=Ho(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}Go(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(nu(n*8)))}this._inBlock=this._j0.slice(0),Go(this._inBlock),this._partialBytes=0,e=te.util.createBuffer(e),this._aDataLength=nu(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),Go(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),Go(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(nu(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 Ho(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 Go(r){r[r.length-1]=r[r.length-1]+1&4294967295}function nu(r){return[r/4294967296|0,r&4294967295]}});var Wo=T((g4,Fp)=>{var vt=ft();ru();iu();qt();Fp.exports=vt.aes=vt.aes||{};vt.aes.startEncrypting=function(r,t,e,n){var i=Yo({key:r,output:e,decrypt:!1,mode:n});return i.start(t),i};vt.aes.createEncryptionCipher=function(r,t){return Yo({key:r,output:null,decrypt:!1,mode:t})};vt.aes.startDecrypting=function(r,t,e,n){var i=Yo({key:r,output:e,decrypt:!0,mode:n});return i.start(t),i};vt.aes.createDecryptionCipher=function(r,t){return Yo({key:r,output:null,decrypt:!0,mode:t})};vt.aes.Algorithm=function(r,t){au||Mp();var e=this;e.name=r,e.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return ou(e._w,n,i,!1)},decrypt:function(n,i){return ou(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=Up(t,r.decrypt&&!o),this._init=!0}};vt.aes._expandKey=function(r,t){return au||Mp(),Up(r,t)};vt.aes._updateBlock=ou;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 au=!1,_i=4,ce,su,Op,Bn,Ve;function Mp(){au=!0,Op=[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),su=new Array(256),Bn=new Array(4),Ve=new Array(4);for(var t=0;t<4;++t)Bn[t]=new Array(256),Ve[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,su[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,Ve[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 Up(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]^Op[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=Ve[0],f=Ve[1],h=Ve[2],d=Ve[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 ou(r,t,e,n){var i=r.length/4-1,s,o,a,c,l;n?(s=Ve[0],o=Ve[1],a=Ve[2],c=Ve[3],l=su):(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 Yo(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 qp=T((w4,Vp)=>{var Ct=ft();ru();iu();qt();Vp.exports=Ct.des=Ct.des||{};Ct.des.startEncrypting=function(r,t,e,n){var i=Qo({key:r,output:e,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Ct.des.createEncryptionCipher=function(r,t){return Qo({key:r,output:null,decrypt:!1,mode:t})};Ct.des.startDecrypting=function(r,t,e,n){var i=Qo({key:r,output:e,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};Ct.des.createDecryptionCipher=function(r,t){return Qo({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 Kp(e._keys,n,i,!1)},decrypt:function(n,i){return Kp(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=$v(t),this._init=!0}};sr("DES-ECB",Ct.cipher.modes.ecb);sr("DES-CBC",Ct.cipher.modes.cbc);sr("DES-CFB",Ct.cipher.modes.cfb);sr("DES-OFB",Ct.cipher.modes.ofb);sr("DES-CTR",Ct.cipher.modes.ctr);sr("3DES-ECB",Ct.cipher.modes.ecb);sr("3DES-CBC",Ct.cipher.modes.cbc);sr("3DES-CFB",Ct.cipher.modes.cfb);sr("3DES-OFB",Ct.cipher.modes.ofb);sr("3DES-CTR",Ct.cipher.modes.ctr);function sr(r,t){var e=function(){return new Ct.des.Algorithm(r,t)};Ct.cipher.registerAlgorithm(r,e)}var kv=[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],Ov=[-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],Mv=[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],Uv=[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],Fv=[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],Kv=[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],Vv=[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 $v(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 Kp(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^(Ov[d>>>24&63]|Uv[d>>>16&63]|Kv[d>>>8&63]|qv[d&63]|kv[p>>>24&63]|Mv[p>>>16&63]|Fv[p>>>8&63]|Vv[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 Qo(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((E4,$p)=>{var Xo=ft();$p.exports=Xo.md=Xo.md||{};Xo.md.algorithms=Xo.md.algorithms||{}});var Hp=T((x4,zp)=>{var Tr=ft();Dn();qt();var zv=zp.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 cu=T((v4,Gp)=>{var le=ft();Hp();Dn();qt();var Hv=le.pkcs5=le.pkcs5||{},Cr;le.util.isNodejs&&!le.options.usePureJavaScript&&(Cr=Rn());Gp.exports=le.pbkdf2=Hv.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 Qp=T((b4,Wp)=>{var Jo=ft();qt();var Yp=Wp.exports=Jo.pem=Jo.pem||{};Yp.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+=Zo(n)),r.contentDomain&&(n={name:"Content-Domain",values:[r.contentDomain]},e+=Zo(n)),r.dekInfo&&(n={name:"DEK-Info",values:[r.dekInfo.algorithm]},r.dekInfo.parameters&&n.values.push(r.dekInfo.parameters),e+=Zo(n)),r.headers)for(var i=0;i<r.headers.length;++i)e+=Zo(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};Yp.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(Gv(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 Zo(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 Gv(r){return r.replace(/^\s+/,"")}});var em=T((_4,tm)=>{var or=ft();Dn();qt();var Zp=tm.exports=or.sha256=or.sha256||{};or.md.sha256=or.md.algorithms.sha256=Zp;Zp.create=function(){Jp||Yv();var r=null,t=or.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=or.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=or.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),Xp(r,e,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=or.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(lu.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};Xp(f,e,i);var h=or.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 lu=null,Jp=!1,jp=null;function Yv(){lu=String.fromCharCode(128),lu+=or.util.fillString(String.fromCharCode(0),64),jp=[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],Jp=!0}function Xp(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+jp[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 nm=T((S4,rm)=>{var ar=ft();qt();var jo=null;ar.util.isNodejs&&!ar.options.usePureJavaScript&&!process.versions["node-webkit"]&&(jo=Rn());var Wv=rm.exports=ar.prng=ar.prng||{};Wv.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=ar.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 ar.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)),ar.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=ar.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=ar.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(u=function(C){return h.getRandomValues(C)});var d=ar.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 jo?(t.seedFile=function(l,u){jo.randomBytes(l,function(f,h){if(f)return u(f);u(null,h.toString())})},t.seedFileSync=function(l){return jo.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((A4,uu)=>{var ee=ft();Wo();em();nm();qt();(function(){if(ee.random&&ee.random.getBytes){uu.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,uu.exports=ee.random})(typeof jQuery<"u"?jQuery:null)})()});var am=T((R4,om)=>{var he=ft();qt();var fu=[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],im=[1,2,3,5],Qv=function(r,t){return r<<t&65535|(r&65535)>>16-t},Xv=function(r,t){return(r&65535)>>t|r<<16-t&65535};om.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(fu[e.at(a-1)+e.at(a-n)&255]);for(e.setAt(128-s,fu[e.at(128-s)&o]),a=127-s;a>=0;a--)e.setAt(a,fu[e.at(a+1)^e.at(a+s)]);return e};var sm=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]=Qv(p[l],im[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]=Xv(p[l],im[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 sm(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 sm(r,t,!1)}});var ra=T((I4,mm)=>{var hu=ft();mm.exports=hu.jsbn=hu.jsbn||{};var Br,Zv=0xdeadbeefcafe,cm=(Zv&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))}hu.jsbn.BigInteger=A;function it(){return new A(null)}function Jv(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 jv(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 lm(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=lm,Br=28):cm&&navigator.appName=="Microsoft Internet Explorer"?(A.prototype.am=jv,Br=30):cm&&navigator.appName!="Netscape"?(A.prototype.am=Jv,Br=26):(A.prototype.am=lm,Br=28);A.prototype.DB=Br;A.prototype.DM=(1<<Br)-1;A.prototype.DV=1<<Br;var du=52;A.prototype.FV=Math.pow(2,du);A.prototype.F1=du-Br;A.prototype.F2=2*Br-du;var t2="0123456789abcdefghijklmnopqrstuvwxyz",ta=new Array,Ai,Le;Ai="0".charCodeAt(0);for(Le=0;Le<=9;++Le)ta[Ai++]=Le;Ai="a".charCodeAt(0);for(Le=10;Le<36;++Le)ta[Ai++]=Le;Ai="A".charCodeAt(0);for(Le=10;Le<36;++Le)ta[Ai++]=Le;function um(r){return t2.charAt(r)}function fm(r,t){var e=ta[r.charCodeAt(t)];return e??-1}function e2(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 r2(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=it();return t.fromInt(r),t}function n2(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:fm(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 i2(){for(var r=this.s&this.DM;this.t>0&&this.data[this.t-1]==r;)--this.t}function s2(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=um(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+=um(n));return i?s:"0"}function o2(){var r=it();return A.ZERO.subTo(this,r),r}function a2(){return this.s<0?this.negate():this}function c2(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 ea(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 l2(){return this.t<=0?0:this.DB*(this.t-1)+ea(this.data[this.t-1]^this.s&this.DM)}function u2(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 f2(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 h2(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 d2(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 p2(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 m2(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 y2(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 g2(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=it());var s=it(),o=this.s,a=r.s,c=this.DB-ea(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??it();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 w2(r){var t=it();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 E2(r){return r.s<0||r.compareTo(this.m)>=0?r.mod(this.m):r}function x2(r){return r}function v2(r){r.divRemTo(this.m,null,r)}function b2(r,t,e){r.multiplyTo(t,e),this.reduce(e)}function _2(r,t){r.squareTo(t),this.reduce(t)}Ln.prototype.convert=E2;Ln.prototype.revert=x2;Ln.prototype.reduce=v2;Ln.prototype.mulTo=b2;Ln.prototype.sqrTo=_2;function S2(){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 A2(r){var t=it();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 R2(r){var t=it();return r.copyTo(t),this.reduce(t),t}function I2(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 T2(r,t){r.squareTo(t),this.reduce(t)}function C2(r,t,e){r.multiplyTo(t,e),this.reduce(e)}Pn.prototype.convert=A2;Pn.prototype.revert=R2;Pn.prototype.reduce=I2;Pn.prototype.mulTo=C2;Pn.prototype.sqrTo=T2;function B2(){return(this.t>0?this.data[0]&1:this.s)==0}function D2(r,t){if(r>4294967295||r<1)return A.ONE;var e=it(),n=it(),i=t.convert(this),s=ea(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 L2(r,t){var e;return r<256||t.isEven()?e=new Ln(t):e=new Pn(t),this.exp(r,e)}A.prototype.copyTo=e2;A.prototype.fromInt=r2;A.prototype.fromString=n2;A.prototype.clamp=i2;A.prototype.dlShiftTo=u2;A.prototype.drShiftTo=f2;A.prototype.lShiftTo=h2;A.prototype.rShiftTo=d2;A.prototype.subTo=p2;A.prototype.multiplyTo=m2;A.prototype.squareTo=y2;A.prototype.divRemTo=g2;A.prototype.invDigit=S2;A.prototype.isEven=B2;A.prototype.exp=D2;A.prototype.toString=s2;A.prototype.negate=o2;A.prototype.abs=a2;A.prototype.compareTo=c2;A.prototype.bitLength=l2;A.prototype.mod=w2;A.prototype.modPowInt=L2;A.ZERO=Qr(0);A.ONE=Qr(1);function P2(){var r=it();return this.copyTo(r),r}function N2(){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 k2(){return this.t==0?this.s:this.data[0]<<24>>24}function O2(){return this.t==0?this.s:this.data[0]<<16>>16}function M2(r){return Math.floor(Math.LN2*this.DB/Math.log(r))}function U2(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function F2(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=it(),s=it(),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 K2(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=fm(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 V2(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),pu,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 $2(r){return this.compareTo(r)==0}function z2(r){return this.compareTo(r)<0?this:r}function H2(r){return this.compareTo(r)>0?this:r}function G2(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 Y2(r,t){return r&t}function W2(r){var t=it();return this.bitwiseTo(r,Y2,t),t}function pu(r,t){return r|t}function Q2(r){var t=it();return this.bitwiseTo(r,pu,t),t}function hm(r,t){return r^t}function X2(r){var t=it();return this.bitwiseTo(r,hm,t),t}function dm(r,t){return r&~t}function Z2(r){var t=it();return this.bitwiseTo(r,dm,t),t}function J2(){for(var r=it(),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 j2(r){var t=it();return r<0?this.rShiftTo(-r,t):this.lShiftTo(r,t),t}function tb(r){var t=it();return r<0?this.lShiftTo(-r,t):this.rShiftTo(r,t),t}function eb(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 rb(){for(var r=0;r<this.t;++r)if(this.data[r]!=0)return r*this.DB+eb(this.data[r]);return this.s<0?this.t*this.DB:-1}function nb(r){for(var t=0;r!=0;)r&=r-1,++t;return t}function ib(){for(var r=0,t=this.s&this.DM,e=0;e<this.t;++e)r+=nb(this.data[e]^t);return r}function sb(r){var t=Math.floor(r/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<r%this.DB)!=0}function ob(r,t){var e=A.ONE.shiftLeft(r);return this.bitwiseTo(e,t,e),e}function ab(r){return this.changeBit(r,pu)}function cb(r){return this.changeBit(r,dm)}function lb(r){return this.changeBit(r,hm)}function ub(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 fb(r){var t=it();return this.addTo(r,t),t}function hb(r){var t=it();return this.subTo(r,t),t}function db(r){var t=it();return this.multiplyTo(r,t),t}function pb(r){var t=it();return this.divRemTo(r,t,null),t}function mb(r){var t=it();return this.divRemTo(r,null,t),t}function yb(r){var t=it(),e=it();return this.divRemTo(r,t,e),new Array(t,e)}function gb(r){this.data[this.t]=this.am(0,r-1,this,0,0,this.t),++this.t,this.clamp()}function wb(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 pm(r){return r}function Eb(r,t,e){r.multiplyTo(t,e)}function xb(r,t){r.squareTo(t)}ls.prototype.convert=pm;ls.prototype.revert=pm;ls.prototype.mulTo=Eb;ls.prototype.sqrTo=xb;function vb(r){return this.exp(r,new ls)}function bb(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 _b(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=it(),this.q3=it(),A.ONE.dlShiftTo(2*r.t,this.r2),this.mu=this.r2.divide(r),this.m=r}function Sb(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=it();return r.copyTo(t),this.reduce(t),t}function Ab(r){return r}function Rb(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 Ib(r,t){r.squareTo(t),this.reduce(t)}function Tb(r,t,e){r.multiplyTo(t,e),this.reduce(e)}Ri.prototype.convert=Sb;Ri.prototype.revert=Ab;Ri.prototype.reduce=Rb;Ri.prototype.mulTo=Tb;Ri.prototype.sqrTo=Ib;function Cb(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=it();for(s.sqrTo(o[1],u);a<=l;)o[a]=it(),s.mulTo(u,o[a-2],o[a]),a+=2}var f=r.t-1,h,d=!0,p=it(),m;for(e=ea(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 Bb(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 Db(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 Lb(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 qe=[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],Pb=(1<<26)/qe[qe.length-1];function Nb(r){var t,e=this.abs();if(e.t==1&&e.data[0]<=qe[qe.length-1]){for(t=0;t<qe.length;++t)if(e.data[0]==qe[t])return!0;return!1}if(e.isEven())return!1;for(t=1;t<qe.length;){for(var n=qe[t],i=t+1;i<qe.length&&n<Pb;)n*=qe[i++];for(n=e.modInt(n);t<i;)if(n%qe[t++]==0)return!1}return e.millerRabin(r)}function kb(r){var t=this.subtract(A.ONE),e=t.getLowestSetBit();if(e<=0)return!1;for(var n=t.shiftRight(e),i=Ob(),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 Ob(){return{nextBytes:function(r){for(var t=0;t<r.length;++t)r[t]=Math.floor(Math.random()*256)}}}A.prototype.chunkSize=M2;A.prototype.toRadix=F2;A.prototype.fromRadix=K2;A.prototype.fromNumber=V2;A.prototype.bitwiseTo=G2;A.prototype.changeBit=ob;A.prototype.addTo=ub;A.prototype.dMultiply=gb;A.prototype.dAddOffset=wb;A.prototype.multiplyLowerTo=bb;A.prototype.multiplyUpperTo=_b;A.prototype.modInt=Db;A.prototype.millerRabin=kb;A.prototype.clone=P2;A.prototype.intValue=N2;A.prototype.byteValue=k2;A.prototype.shortValue=O2;A.prototype.signum=U2;A.prototype.toByteArray=q2;A.prototype.equals=$2;A.prototype.min=z2;A.prototype.max=H2;A.prototype.and=W2;A.prototype.or=Q2;A.prototype.xor=X2;A.prototype.andNot=Z2;A.prototype.not=J2;A.prototype.shiftLeft=j2;A.prototype.shiftRight=tb;A.prototype.getLowestSetBit=rb;A.prototype.bitCount=ib;A.prototype.testBit=sb;A.prototype.setBit=ab;A.prototype.clearBit=cb;A.prototype.flipBit=lb;A.prototype.add=fb;A.prototype.subtract=hb;A.prototype.multiply=db;A.prototype.divide=pb;A.prototype.remainder=mb;A.prototype.divideAndRemainder=yb;A.prototype.modPow=Cb;A.prototype.modInverse=Lb;A.prototype.pow=vb;A.prototype.gcd=Bb;A.prototype.isProbablePrime=Nb});var xm=T((T4,Em)=>{var cr=ft();Dn();qt();var gm=Em.exports=cr.sha1=cr.sha1||{};cr.md.sha1=cr.md.algorithms.sha1=gm;gm.create=function(){wm||Mb();var r=null,t=cr.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=cr.util.createBuffer(),r={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=cr.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),ym(r,e,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=cr.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(mu.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};ym(f,e,i);var h=cr.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 mu=null,wm=!1;function Mb(){mu=String.fromCharCode(128),mu+=cr.util.fillString(String.fromCharCode(0),64),wm=!0}function ym(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 _m=T((C4,bm)=>{var lr=ft();qt();cs();xm();var vm=bm.exports=lr.pkcs1=lr.pkcs1||{};vm.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=lr.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=lr.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=na(i,a-s.digestLength-1,o),y=lr.util.xorBytes(p,m,p.length),g=na(y,s.digestLength,o),x=lr.util.xorBytes(i,g,i.length);return"\0"+x+y};vm.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=lr.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=na(u,i.digestLength,s),h=lr.util.xorBytes(l,f,l.length),d=na(h,o-i.digestLength-1,s),p=lr.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 na(r,t,e){e||(e=lr.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 Sm=T((B4,yu)=>{var Xr=ft();qt();ra();cs();(function(){if(Xr.prime){yu.exports=Xr.prime;return}var r=yu.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(Me){if(!J){--X;var ge=Me.data;if(ge.found){for(var ae=0;ae<C.length;++ae)C[ae].terminate();return J=!0,p(null,new t(ge.prime,16))}m.bitLength()>f&&(m=l(f,h));var Zn=m.toString(16);Me.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 sa=T((D4,Dm)=>{var K=ft();as();ra();$o();_m();Sm();cs();qt();typeof tt>"u"&&(tt=K.jsbn.BigInteger);var tt,gu=K.util.isNodejs?Rn():null,v=K.asn1,Pe=K.util;K.pki=K.pki||{};Dm.exports=K.pki.rsa=K.rsa=K.rsa||{};var q=K.pki,Ub=[6,4,2,4,2,4,6,2],Fb={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"}]},Kb={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"}]},Vb={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"}]}]},$b={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()},Cm=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(tt.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(tt.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new tt(K.util.bytesToHex(K.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(tt.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=Bm(r,t,e)):(i=K.util.createBuffer(),i.putBytes(r));for(var o=new tt(i.toHex(),16),a=Cm(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 tt(K.util.createBuffer(r).toHex(),16);if(o.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=Cm(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?ia(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 tt(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 tt(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 tt(c,r.rng),r.num.testBit(l)||r.num.bitwiseTo(tt.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(Gb(r.num.bitLength()))?++r.pqState:r.num.dAddOffset(Ub[n++%8],0):r.pqState===2?r.pqState=r.num.subtract(tt.ONE).gcd(r.e).compareTo(tt.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(tt.ONE),r.q1=r.q.subtract(tt.ONE),r.phi=r.p1.multiply(r.q1),++r.state;else if(r.state===3)r.phi.gcd(r.e).compareTo(tt.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(Am("generateKeyPair"))return gu.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(Rm("generateKey")&&Rm("exportKey"))return Pe.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:Tm(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Pe.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(Im("generateKey")&&Im("exportKey")){var i=Pe.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:Tm(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,l=Pe.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(Am("generateKeyPairSync")){var s=gu.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;Hb(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 Bm(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=ia(l,e,!0);var u=v.fromDer(l,{parseAllBytes:o._parseAllDigestBytes}),f={},h=[];if(!v.validate(u,$b,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=ia(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:ia};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,Fb,t,e)&&(r=v.fromDer(K.util.createBuffer(t.privateKey))),t={},e=[],!v.validate(r,Kb,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 tt(i,16),new tt(s,16),new tt(o,16),new tt(a,16),new tt(c,16),new tt(l,16),new tt(u,16),new tt(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,ur(r.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(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,Vb,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 tt(s,16),new tt(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,ur(r.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,ur(r.e))])};function Bm(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 ia(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 Hb(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(tt.ONE).gcd(r.e).compareTo(tt.ONE)!==0){r.p=null,i();return}if(r.q.subtract(tt.ONE).gcd(r.e).compareTo(tt.ONE)!==0){r.q=null,s(r.qBits,o);return}if(r.p1=r.p.subtract(tt.ONE),r.q1=r.q.subtract(tt.ONE),r.phi=r.p1.multiply(r.q1),r.phi.gcd(r.e).compareTo(tt.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 ur(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 Gb(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 Am(r){return K.util.isNodejs&&typeof gu[r]=="function"}function Rm(r){return typeof Pe.globalScope<"u"&&typeof Pe.globalScope.crypto=="object"&&typeof Pe.globalScope.crypto.subtle=="object"&&typeof Pe.globalScope.crypto.subtle[r]=="function"}function Im(r){return typeof Pe.globalScope<"u"&&typeof Pe.globalScope.msCrypto=="object"&&typeof Pe.globalScope.msCrypto.subtle=="object"&&typeof Pe.globalScope.msCrypto.subtle[r]=="function"}function Tm(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 Mm=T((L4,Om)=>{var L=ft();Wo();as();qp();Dn();$o();cu();Qp();cs();am();sa();qt();typeof Lm>"u"&&(Lm=L.jsbn.BigInteger);var Lm,b=L.asn1,H=L.pki=L.pki||{};Om.exports=H.pbe=L.pbe=L.pbe||{};var Nn=H.oids,Yb={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"}]},Wb={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"}]}]},Qb={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=km(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=Xb(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,Yb,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),Me=new L.util.ByteBuffer;for(o=0;o<Xt;o++){var ge=new L.util.ByteBuffer(_.getBytes(l)),ae=511;for(a=J.length()-1;a>=0;a--)ae=ae>>8,ae+=J.at(a)+ge.at(a),ge.setAt(a,ae&255);Me.putBuffer(ge)}_=Me,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,Wb,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=Nm(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,Qb,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=Nm(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=[Pm(n,r+t)],s=16,o=1;s<e;++o,s+=16)i.push(Pm(n,i[o-1]+r+t));return i.join("").substr(0,e)};function Pm(r,t){return r.start().update(t).digest().getBytes()}function Nm(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 km(t)}function km(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 Xb(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 Ym=T((f8,Gm)=>{var St=ft();Dn();qt();var us=Gm.exports=St.sha512=St.sha512||{};St.md.sha512=St.md.algorithms.sha512=us;var zm=St.sha384=St.sha512.sha384=St.sha512.sha384||{};zm.create=function(){return us.create("SHA-384")};St.md.sha384=St.md.algorithms.sha384=zm;St.sha512.sha256=St.sha512.sha256||{create:function(){return us.create("SHA-512/256")}};St.md["sha512/256"]=St.md.algorithms["sha512/256"]=St.sha512.sha256;St.sha512.sha224=St.sha512.sha224||{create:function(){return us.create("SHA-512/224")}};St.md["sha512/224"]=St.md.algorithms["sha512/224"]=St.sha512.sha224;us.create=function(r){if(Hm||jb(),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=St.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=St.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=St.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),$m(e,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=St.util.createBuffer();c.putBytes(n.bytes());var l=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,u=l&a.blockLength-1;c.putBytes(wu.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);$m(m,i,c);var y=St.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 wu=null,Hm=!1,Eu=null,kn=null;function jb(){wu=String.fromCharCode(128),wu+=St.util.fillString(String.fromCharCode(0),128),Eu=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],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]],Hm=!0}function $m(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,Me,ge,ae,Zn,Zs,zt,fe,V,Ec,xc,vc,bc,qf=e.length();qf>=128;){for(zt=0;zt<16;++zt)t[zt][0]=e.getInt32()>>>0,t[zt][1]=e.getInt32()>>>0;for(;zt<80;++zt)Ec=t[zt-2],fe=Ec[0],V=Ec[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,vc=t[zt-15],fe=vc[0],V=vc[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,xc=t[zt-7],bc=t[zt-16],V=i+xc[1]+o+bc[1],t[zt][0]=n+xc[0]+s+bc[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],Me=r[5][1],ge=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=(ge^X&(Xt^ge))>>>0,h=(ae^J&(Me^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+Eu[zt][1]+t[zt][1],n=Zn+l+f+Eu[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=ge,Zs=ae,ge=Xt,ae=Me,Xt=X,Me=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]+Me,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]+ge+(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,qf-=128}}});var Tg=T((P3,Ig)=>{function SS(){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)}Ig.exports=SS});var kg=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 Fg=T((Ug,Oa)=>{(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 Oa<"u"&&Oa.exports?Oa.exports=h:r.ipaddr=h})(Ug)});var Wg=T((FP,of)=>{"use strict";var OS=Object.prototype.hasOwnProperty,ue="~";function $s(){}Object.create&&($s.prototype=Object.create(null),new $s().__proto__||(ue=!1));function MS(r,t,e){this.fn=r,this.context=t,this.once=e||!1}function Yg(r,t,e,n,i){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new MS(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 Qa(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)OS.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 Yg(this,t,e,n,!1)};oe.prototype.once=function(t,e,n){return Yg(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 Qa(this,s),this;var o=this._events[s];if(o.fn)o.fn===e&&(!i||o.once)&&(!n||o.context===n)&&Qa(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:Qa(this,s)}return this};oe.prototype.removeAllListeners=function(t){var e;return t?(e=ue?ue+t:t,this._events[e]&&Qa(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 of<"u"&&(of.exports=oe)});var dw=T((ik,hw)=>{"use strict";hw.exports=fw;var zS=_c(),pn=fw.prototype,HS=new Date%1e9;function GS(){return(Math.random()*1e9>>>0)+HS++}function fw(r){r=r||{},this.id=r.id||GS(),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 Uf=T((Uk,Mf)=>{function bw(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}Mf.exports=bw;Mf.exports.anySignal=bw});var Sw=T((Kk,_w)=>{_w.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 Iw=T((qk,Rw)=>{var Aw=Sw();Rw.exports=class{constructor(t){this.hwm=t||16,this.head=new Aw(this.hwm),this.tail=this.head}push(t){if(!this.head.push(t)){let e=this.head;this.head=e.next=new Aw(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 Cw=T(($k,Tw)=>{"use strict";var JS=()=>{let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r};Tw.exports=JS});var Pw=T((Hk,Lw)=>{var Bw=Iw(),Dw=Cw();Lw.exports=class{constructor(){this._buffer=new Bw,this._waitingConsumers=new Bw}push(t){let{promise:e,resolve:n}=Dw();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}=Dw();return this._waitingConsumers.push({resolve:e}),this._consume(),t}isEmpty(){return this._buffer.isEmpty()}}});var rA={};ne(rA,{createLibp2p:()=>eA});var Xe=N(Sc(),1);var Cc={};ne(Cc,{base58btc:()=>Mt,base58flickr:()=>u1});function s1(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 o1=s1,a1=o1,Yf=a1;var aA=new Uint8Array(0);var Wf=(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 Qf=r=>new TextEncoder().encode(r),Xf=r=>new TextDecoder().decode(r);var Ac=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")}},Rc=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 Jf(this,t)}},Ic=class{constructor(t){this.decoders=t}or(t){return Jf(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`)}},Jf=(r,t)=>new Ic({...r.decoders||{[r.prefix]:r},...t.decoders||{[t.prefix]:t}}),Tc=class{constructor(t,e,n,i){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=i,this.encoder=new Ac(t,e,n),this.decoder=new Rc(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 Tc(r,t,e,n),Fr=({prefix:r,name:t,alphabet:e})=>{let{encode:n,decode:i}=Yf(e,t);return ei({prefix:r,name:t,encode:n,decode:s=>gr(i(s))})},c1=(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},l1=(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 l1(i,n,e)},decode(i){return c1(i,n,e,r)}});var Mt=Fr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),u1=Fr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Bc={};ne(Bc,{base32:()=>Ee,base32hex:()=>p1,base32hexpad:()=>y1,base32hexpadupper:()=>g1,base32hexupper:()=>m1,base32pad:()=>h1,base32padupper:()=>d1,base32upper:()=>f1,base32z:()=>w1});var Ee=Lt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),f1=Lt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),h1=Lt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),d1=Lt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),p1=Lt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),m1=Lt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),y1=Lt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),g1=Lt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),w1=Lt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Dc={};ne(Dc,{base64:()=>yn,base64pad:()=>E1,base64url:()=>x1,base64urlpad:()=>v1});var yn=Lt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),E1=Lt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),x1=Lt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),v1=Lt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});Xe.default.formatters.b=r=>r==null?"undefined":Mt.baseEncode(r);Xe.default.formatters.t=r=>r==null?"undefined":Ee.baseEncode(r);Xe.default.formatters.m=r=>r==null?"undefined":yn.baseEncode(r);Xe.default.formatters.p=r=>r==null?"undefined":r.toString();Xe.default.formatters.c=r=>r==null?"undefined":r.toString();Xe.default.formatters.k=r=>r==null?"undefined":r.toString();function U(r){return Object.assign((0,Xe.default)(r),{error:(0,Xe.default)(`${r}:error`),trace:(0,Xe.default)(`${r}:trace`)})}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 Lc=class extends Event{constructor(t,e){super(t,e),this.detail=e?.detail}},$=globalThis.CustomEvent??Lc;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 jf=45,b1=15,ri=new eo;function th(r){if(!(r.length>b1))return ri.new(r).parseWith(()=>ri.readIPv4Addr())}function eh(r){if(!(r.length>jf))return ri.new(r).parseWith(()=>ri.readIPv6Addr())}function rh(r){if(!(r.length>jf))return ri.new(r).parseWith(()=>ri.readIPAddr())}function nh(r){return!!th(r)}function ih(r){return!!eh(r)}function ni(r){return!!rh(r)}var Pc={};ne(Pc,{identity:()=>_1});var _1=ei({prefix:"\0",name:"identity",encode:r=>Xf(r),decode:r=>Qf(r)});var Nc={};ne(Nc,{base2:()=>S1});var S1=Lt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var kc={};ne(kc,{base8:()=>A1});var A1=Lt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Oc={};ne(Oc,{base10:()=>R1});var R1=Fr({prefix:"9",name:"base10",alphabet:"0123456789"});var Mc={};ne(Mc,{base16:()=>I1,base16upper:()=>T1});var I1=Lt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),T1=Lt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Uc={};ne(Uc,{base36:()=>C1,base36upper:()=>B1});var C1=Fr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),B1=Fr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Fc={};ne(Fc,{base256emoji:()=>k1});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}"),D1=sh.reduce((r,t,e)=>(r[e]=t,r),[]),L1=sh.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function P1(r){return r.reduce((t,e)=>(t+=D1[e],t),"")}function N1(r){let t=[];for(let e of r){let n=L1[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var k1=ei({prefix:"\u{1F680}",name:"base256emoji",encode:P1,decode:N1});var $c={};ne($c,{sha256:()=>ie,sha512:()=>tE});var O1=ch,oh=128,M1=127,U1=~M1,F1=Math.pow(2,31);function ch(r,t,e){t=t||[],e=e||0;for(var n=e;r>=F1;)t[e++]=r&255|oh,r/=128;for(;r&U1;)t[e++]=r&255|oh,r>>>=7;return t[e]=r|0,ch.bytes=e-n+1,t}var K1=Kc,V1=128,ah=127;function Kc(r,n){var e=0,n=n||0,i=0,s=n,o,a=r.length;do{if(s>=a)throw Kc.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>=V1);return Kc.bytes=s-n,e}var q1=Math.pow(2,7),$1=Math.pow(2,14),z1=Math.pow(2,21),H1=Math.pow(2,28),G1=Math.pow(2,35),Y1=Math.pow(2,42),W1=Math.pow(2,49),Q1=Math.pow(2,56),X1=Math.pow(2,63),Z1=function(r){return r<q1?1:r<$1?2:r<z1?3:r<H1?4:r<G1?5:r<Y1?6:r<W1?7:r<Q1?8:r<X1?9:10},J1={encode:O1,decode:K1,encodingLength:Z1},j1=J1,qi=j1;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 Ze=(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&&Wf(r.bytes,e.bytes)}},oi=class{constructor(t,e,n,i){this.code=t,this.size=e,this.digest=n,this.bytes=i}};var qc=({name:r,code:t,encode:e})=>new Vc(r,t,e),Vc=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?Ze(this.code,e):e.then(n=>Ze(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=qc({name:"sha2-256",code:18,encode:fh("SHA-256")}),tE=qc({name:"sha2-512",code:19,encode:fh("SHA-512")});var zc={};ne(zc,{identity:()=>Kr});var hh=0,eE="identity",dh=gr,rE=r=>Ze(hh,dh(r)),Kr={code:hh,name:eE,encode:dh,digest:rE};var FA=new TextEncoder,KA=new TextDecoder;var ph=(r,t)=>{let{bytes:e,version:n}=r;switch(n){case 0:return oE(e,Hc(r),t||Mt.encoder);default:return aE(e,Hc(r),t||Ee.encoder)}};var mh=new WeakMap,Hc=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!==cE)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=Ze(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[lE]===!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]=sE(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 Hc(s).set(n,t),s}},sE=(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 Ee.prefix:{let e=t||Ee;return[Ee.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)]}}},oE=(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},aE=(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,cE=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},lE=Symbol.for("@ipld/js-cid/CID");var Vr={...Pc,...Nc,...kc,...Oc,...Mc,...Bc,...Uc,...Cc,...Dc,...Fc},XA={...$c,...zc};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))),Gc=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}),uE={utf8:gh,"utf-8":gh,hex:Vr.base16,latin1:Gc,ascii:Gc,binary:Gc,...Vr},no=uE;function z(r,t="utf8"){let e=no[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,fE=ih,Yc=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(fE(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let s=Eh(e[n]),o;s&&(o=Yc(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={},Wc={},dE=[[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"]];dE.forEach(r=>{let t=pE(...r);Wc[t.code]=t,Hi[t.name]=t});function pE(r,t,e,n,i){return{code:r,size:t,name:e,resolvable:!!n,path:!!i}}function ot(r){if(typeof r=="number"){if(Wc[r]!=null)return Wc[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(io(),1);function F(r,t="utf8"){let e=no[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)}function Nh(r,t){switch(ot(r).code){case 4:case 41:return CE(t);case 42:return Lh(t);case 6:case 273:case 33:case 132:return Oh(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Lh(t);case 421:return PE(t);case 444:return Ph(t);case 445:return Ph(t);case 466:return LE(t);default:return z(t,"base16")}}function kh(r,t){switch(ot(r).code){case 4:return Bh(t);case 41:return Bh(t);case 42:return Dh(t);case 6:case 273:case 33:case 132:return Jc(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Dh(t);case 421:return BE(t);case 444:return NE(t);case 445:return kE(t);case 466:return DE(t);default:return F(t,"base16")}}var Zc=Object.values(Vr).map(r=>r.decoder),TE=function(){let r=Zc[0].or(Zc[1]);return Zc.slice(2).forEach(t=>r=r.or(t)),r}();function Bh(r){if(!ni(r))throw new Error("invalid ip address");return Yc(r)}function CE(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 Jc(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function Oh(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Dh(r){let t=F(r),e=Uint8Array.from(Je.default.encode(t.length));return Ut([e,t],e.length+t.length)}function Lh(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 BE(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 DE(r){let t=TE.decode(r),e=Uint8Array.from(Je.default.encode(t.length));return Ut([e,t],e.length+t.length)}function LE(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 PE(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 NE(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=Ee.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Jc(n);return Ut([e,i],e.length+i.length)}function kE(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=Ee.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Jc(n);return Ut([e,i],e.length+i.length)}function Ph(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=z(t,"base32"),i=Oh(e);return`${n}:${i}`}var ai=N(io(),1);function OE(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=ot(i);if(s.size===0){t.push([i]);continue}if(n++,n>=e.length)throw Uh("invalid address: "+r);if(s.path===!0){t.push([i,nl(e.slice(n).join("/"))]);break}t.push([i,e[n]])}return t}function ME(r){let t=[];return r.map(e=>{let n=ao(e);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),nl(t.join("/"))}function UE(r){return r.map(t=>{Array.isArray(t)||(t=[t]);let e=ao(t);return t.length>1?[e.code,kh(e.code,t[1])]:[e.code]})}function jc(r){return r.map(t=>{let e=ao(t);return t[1]!=null?[e.code,Nh(e.code,t[1])]:[e.code]})}function tl(r){return oo(Ut(r.map(t=>{let e=ao(t),n=Uint8Array.from(ai.default.encode(e.code));return t.length>1&&t[1]!=null&&(n=Ut([n,t[1]])),n})))}function el(r,t){return r.size>0?r.size/8:r.size===0?0:ai.default.decode(t)+(ai.default.decode.bytes??0)}function so(r){let t=[],e=0;for(;e<r.length;){let n=ai.default.decode(r,e),i=ai.default.decode.bytes??0,s=ot(n),o=el(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 Uh("Invalid address Uint8Array: "+z(r,"base16"));t.push([n,a])}return t}function rl(r){let t=so(r),e=jc(t);return ME(e)}function FE(r){r=nl(r);let t=OE(r),e=UE(t);return tl(e)}function Mh(r){return FE(r)}function oo(r){let t=KE(r);if(t!=null)throw t;return Uint8Array.from(r)}function KE(r){try{so(r)}catch(t){return t}}function nl(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function Uh(r){return new Error("Error parsing address: "+r)}function ao(r){return ot(r[0])}var sl=N(io(),1);var qh=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)},il=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,Vh,$E=Symbol.for("nodejs.util.inspect.custom"),zE=[ot("dns").code,ot("dns4").code,ot("dns6").code,ot("dnsaddr").code],ol=new Map,$h=Symbol.for("@multiformats/js-multiaddr/multiaddr");function zh(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 je("/"+[e,n,t,r.port].join("/"))}function xe(r){return!!r?.[$h]}var je=class{constructor(t){if(Gi.set(this,void 0),Yi.set(this,void 0),Wi.set(this,void 0),this[Vh]=!0,t==null&&(t=""),t instanceof Uint8Array)this.bytes=oo(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);this.bytes=Mh(t)}else if(xe(t))this.bytes=oo(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr")}toString(){return li(this,Gi,"f")==null&&il(this,Gi,rl(this.bytes),"f"),li(this,Gi,"f")}toJSON(){return this.toString()}toOptions(){let t,e,n,i,s="",o=ot("tcp"),a=ot("udp"),c=ot("ip4"),l=ot("ip6"),u=ot("dns6"),f=ot("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=ot(d).name,i=parseInt(p??"")),(d===c.code||d===l.code)&&(e=ot(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({},ot(t)))}protoCodes(){let t=[],e=this.bytes,n=0;for(;n<e.length;){let i=sl.default.decode(e,n),s=sl.default.decode.bytes??0,o=ot(i),a=el(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&&il(this,Yi,so(this.bytes),"f"),li(this,Yi,"f")}stringTuples(){return li(this,Wi,"f")==null&&il(this,Wi,jc(this.tuples()),"f"),li(this,Wi,"f")}encapsulate(t){return t=new je(t),new je(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 je(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 je(tl(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=>ot(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=ol.get(e.name);if(n==null)throw(0,qh.default)(new Error(`no available resolver for ${e.name}`),"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(s=>new je(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,Vh=$h,$E)](){return`Multiaddr(${rl(this.bytes)})`}};function It(r){return new je(r)}async function al(r){let t=[];for await(let e of r)t.push(e);return t}async function*co(r,t){yield*(await al(r)).sort(t)}async function Ue(r){for await(let t of r);}async function*Te(r,t){for await(let e of r)await t(e)&&(yield e)}async function*lo(r,t){let e=0;if(!(t<1)){for await(let n of r)if(yield n,e++,e===t)return}}var uo=class{async open(){}async close(){}async put(t,e,n){await Promise.reject(new Error(".put is not implemented"))}async get(t,e){return await Promise.reject(new Error(".get is not implemented"))}async has(t,e){return await Promise.reject(new Error(".has is not implemented"))}async delete(t,e){await 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{key:n,value:i}}async*getMany(t,e={}){for await(let n of t)yield 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 Ue(this.putMany(t,n)),t=[],await Ue(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=Te(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>Te(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>co(i,s),n)),t.offset!=null){let i=0,s=t.offset;n=Te(n,()=>i++>=s)}return t.limit!=null&&(n=lo(n,t.limit)),n}queryKeys(t,e){let n=this._allKeys(t,e);if(t.prefix!=null){let i=t.prefix;n=Te(n,s=>s.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>Te(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>co(i,s),n)),t.offset!=null){let i=t.offset,s=0;n=Te(n,()=>s++>=i)}return t.limit!=null&&(n=lo(n,t.limit)),n}};var fo=(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="/",Hh=new TextEncoder().encode(br),ho=Hh[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]!==ho)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(fo().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=Hh),this._buf[0]!==ho){let t=new Uint8Array(this._buf.byteLength+1);t.fill(ho,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===ho;)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 HE(this.baseNamespace())}name(){return GE(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(),...YE(t.map(e=>e.namespaces()))])}};function HE(r){let t=r.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function GE(r){let t=r.split(":");return t[t.length-1]}function YE(r){return[].concat(...r)}var Gh=N(ci(),1);function Yh(r){return r=r??new Error("Not Found"),(0,Gh.default)(r,"ERR_NOT_FOUND")}var po=class extends uo{constructor(){super(),this.data=new Map}async put(t,e){this.data.set(t.toString(),e)}async get(t){let e=this.data.get(t.toString());if(e==null)throw Yh();return e}async has(t){return this.data.has(t.toString())}async delete(t){this.data.delete(t.toString())}async*_all(){for(let[t,e]of this.data.entries())yield{key:new Nt(t),value:e}}async*_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 mo(r){let t=new Set;return Te(r,e=>t.has(e.id.toString())?!1:(t.add(e.id.toString()),!0))}async function*yo(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 d0=N(_r(),1);var wo=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 wo(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 wo(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 ZE(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 ZE(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 JE=(...r)=>{let t;for(;r.length>0;)t=r.shift()(t);return t},jh=r=>r!=null&&(typeof r[Symbol.asyncIterator]=="function"||typeof r[Symbol.iterator]=="function"||typeof r.next=="function"),ul=r=>r!=null&&typeof r.sink=="function"&&jh(r.source),jE=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(ul(r)){let n=r;r=()=>n.source}else if(jh(r)){let n=r;r=()=>n}let e=[r,...t];if(e.length>1&&ul(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++)ul(e[n])&&(e[n]=jE(e[n]));return JE(...e)}async function se(r){for await(let t of r)return t}var bo=N(e0(),1),p0=N(tr(),1),h0=U("libp2p:peer-routing"),vo=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,bo.setDelayedInterval)(this._findClosestPeersTask,this.refreshManagerInit.interval,this.refreshManagerInit.bootDelay),this.started=!0)}async _findClosestPeersTask(){if(this.abortController==null)try{this.abortController=new d0.TimeoutController(this.refreshManagerInit.timeout??1e4);try{(0,p0.setMaxListeners)?.(1/0,this.abortController.signal)}catch{}await Ue(this.getClosestPeers(this.components.peerId.toBytes(),{signal:this.abortController.signal}))}catch(t){h0.error(t)}finally{this.abortController?.clear(),this.abortController=void 0}}async stop(){(0,bo.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){h0.error(s)}}())),i=>Te(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=>mo(n),n=>yo(n))}};var _o=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=>mo(n),n=>yo(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 Ue(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 hl=Symbol.for("@libp2p/peer-id");function bn(r){return r!=null&&!!r[hl]}var ux=Symbol.for("nodejs.util.inspect.custom"),m0=Object.values(Vr).map(r=>r.decoder).reduce((r,t)=>r.or(t),Vr.identity.decoder),y0=114,dl=36,pl=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[hl](){return!0}toString(){return this.string==null&&(this.string=Mt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Et.createV1(y0,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")}[ux](){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??m0,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(m0.decode(r))}function qr(r){try{let t=wn(r);if(t.code===Kr.code){if(t.digest.length===dl)return new Sn({multihash:t});if(t.digest.length===pl)return new An({multihash:t})}if(t.code===ie.code)return new _n({multihash:t})}catch{return fx(Et.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function fx(r){if(r==null||r.multihash==null||r.version==null||r.version===1&&r.code!==y0)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===dl)return new Sn({multihash:r.multihash});if(t.digest.length===pl)return new An({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function $r(r,t){return r.length===dl?new Sn({multihash:Ze(Kr.code,r),privateKey:t}):r.length===pl?new An({multihash:Ze(Kr.code,r),privateKey:t}):new _n({multihash:await ie.digest(r),publicKey:r,privateKey:t})}var hx=r=>r;function ml(r,t){let e=r.getPeerId();return e!=null&&at(e).equals(t)&&(r=r.decapsulate(It(`/p2p/${t.toString()}`))),r}var So=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??hx}getListenAddrs(){return Array.from(this.listen).map(t=>It(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>It(t))}getObservedAddrs(){return Array.from(this.observed).map(([t])=>It(t))}addObservedAddr(t){t=ml(t,this.components.peerId);let e=t.toString();this.observed.has(e)||this.observed.set(e,{confident:!1})}confirmObservedAddr(t){t=ml(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=ml(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=>It(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var A0=N(S0(),1),Ce=A0.default;var R0=U("libp2p:connection-manager:latency-monitor:visibility-change-emitter"),Io=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"?R0("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;R0(t?"Page Visible":"Page Hidden"),this.dispatchEvent(new $("visibilityChange",{detail:t}))}};var Ar=U("libp2p:connection-manager:latency-monitor"),To=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(){wx()&&(this.visibilityChangeEmitter=new Io,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 wx(){return typeof globalThis.window<"u"}var Po=N(tr(),1);var Co="OPEN",gl="CLOSING",Bo="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 Dl=N(_r(),1);var I0="keep-alive";var _d=N(bd(),1);function Lo(r){if(bn(r))return{peerId:r};if(xe(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"),ev={maxConnections:1/0,minConnections:0,maxEventLoopDelay:1/0,pollInterval:2e3,autoDialInterval:1e4,inboundConnectionThreshold:5,maxIncomingPendingConnections:10},rv=6e4,No=class extends Pt{constructor(t,e){if(super(),this.opts=Ce.call({ignoreUndefined:!0},ev,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 To({latencyCheckIntervalMs:e.pollInterval,dataEmitIntervalMs:e.pollInterval}));try{(0,Po.setMaxListeners)?.(1/0,this)}catch{}this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.startupReconnectTimeout=e.startupReconnectTimeout??rv,this.dialTimeout=e.dialTimeout??3e4,this.allow=(e.allow??[]).map(n=>It(n)),this.deny=(e.deny??[]).map(n=>It(n)),this.inboundConnectionRateLimiter=new _d.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===I0).length>0&&t.push(e.id);this.connectOnStartupController?.clear(),this.connectOnStartupController=new Dl.TimeoutController(this.startupReconnectTimeout);try{(0,Po.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}=Lo(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 Dl.TimeoutController(this.dialTimeout),e.signal=s.signal;try{(0,Po.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===Co):[]}_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),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 Ll=N(ll(),1),xi=U("libp2p:connection-manager:auto-dialler"),nv={minConnections:0,autoDialInterval:1e4},ko=class{constructor(t,e){this.components=t,this.options=Ce.call({ignoreUndefined:!0},nv,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,Ll.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,Ll.default)(this._autoDial,this.options.autoDialInterval))}};var zy=N(Ld(),1);var j;(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"})(j||(j={}));var Hl=N(Ml(),1),Ep=N(fp(),1),xp=N(Tn(),1),Gl=N(zl(),1),vp=N(wp(),1);function Sv(){xp.default._configure(),Hl.default._configure(Ep.default),Gl.default._configure(vp.default)}Sv();var bp=["uint64","int64","sint64","fixed64","sfixed64"];function Av(r){for(let t of bp){if(r[t]==null)continue;let e=r[t];r[t]=function(){return BigInt(e.call(this).toString())}}return r}function Yl(r){return Av(new Hl.default(r))}function Rv(r){for(let t of bp){if(r[t]==null)continue;let e=r[t];r[t]=function(n){return e.call(this,n.toString())}}return r}function Wl(){return Rv(Gl.default.create())}function dt(r,t){let e=Yl(r instanceof Uint8Array?r:r.subarray());return t.decode(e)}function pt(r,t){let e=Wl();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 Ko(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 Ko("enum",bi.VARINT,e,n)}function mt(r,t){return Ko("message",bi.LENGTH_DELIMITED,r,t)}var Tt;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(Tt||(Tt={}));var Ql;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})(Ql||(Ql={}));(function(r){r.codec=()=>Gr(Ql)})(Tt||(Tt={}));var nr;(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())})(nr||(nr={}));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 tB=N(as(),1),eB=N(Mm(),1),Ea=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 $4=N(qt(),1),z4=N(ra(),1),Fm=N(ft(),1);function $e(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 be(r){let t=Km(r);return new Fm.default.jsbn.BigInteger(z(t,"base16"),16)}function Km(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 Zb={"P-256":256,"P-384":384,"P-521":521},Jb=Object.keys(Zb),e8=Jb.join(" / ");function oa(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 qm(r,t){let e=yn.decode(r);return await oa().decrypt(e,t)}var Tu={};ne(Tu,{RsaPrivateKey:()=>Ni,RsaPublicKey:()=>ys,fromJwk:()=>__,generateKeyPair:()=>S_,unmarshalRsaPrivateKey:()=>v_,unmarshalRsaPublicKey:()=>b_});var O8=N(Ym(),1),ms=N(ft(),1);var t_=N(Rn(),1);var et=BigInt(0),At=BigInt(1),Jr=BigInt(2),hs=BigInt(3),Wm=BigInt(8),kt=Object.freeze({a:et,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:At,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),Qm=(r,t)=>(r+t/Jr)/t,aa={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(r){let{n:t}=kt,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-At*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=e,o=BigInt("0x100000000000000000000000000000000"),a=Qm(s*r,t),c=Qm(-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}}},ze=32,Ci=32,e_=32,Xm=ze+1,Zm=2*ze+1;function Jm(r){let{a:t,b:e}=kt,n=P(r*r),i=P(n*r);return P(i+t*r+e)}var ca=kt.a===et,fa=class extends Error{constructor(t){super(t)}};function jm(r){if(!(r instanceof st))throw new TypeError("JacobianPoint expected")}var st=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)?st.ZERO:new st(t.x,t.y,At)}static toAffineBatch(t){let e=o_(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(e[i]))}static normalizeZ(t){return st.toAffineBatch(t).map(st.fromAffine)}equals(t){jm(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 st(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)-Wm*o),d=P(Jr*e*n);return new st(f,h,d)}add(t){jm(t);let{x:e,y:n,z:i}=this,{x:s,y:o,z:a}=t;if(s===et||o===et)return this;if(e===et||n===et)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===et)return m===et?this.double():st.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 st(_,O,C)}subtract(t){return this.add(t.negate())}multiplyUnsafe(t){let e=st.ZERO;if(typeof t=="bigint"&&t===et)return e;let n=ry(t);if(n===At)return this;if(!ca){let f=e,h=this;for(;n>et;)n&At&&(f=f.add(h)),h=h.double(),n>>=At;return f}let{k1neg:i,k1:s,k2neg:o,k2:a}=aa.splitScalar(n),c=e,l=e,u=this;for(;s>et||a>et;)s&At&&(c=c.add(u)),a&At&&(l=l.add(u)),u=u.double(),s>>=At,a>>=At;return i&&(c=c.negate()),o&&(l=l.negate()),l=new st(P(l.x*aa.beta),l.y,l.z),c.add(l)}precomputeWindow(t){let e=ca?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(st.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&&vu.get(e);i||(i=this.precomputeWindow(n),e&&n!==1&&(i=st.normalizeZ(i),vu.set(e,i)));let s=st.ZERO,o=st.BASE,a=1+(ca?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+=At);let m=d,y=d+Math.abs(p)-1,g=h%2!==0,x=p<0;p===0?o=o.add(la(g,i[m])):s=s.add(la(x,i[y]))}return{p:s,f:o}}multiply(t,e){let n=ry(t),i,s;if(ca){let{k1neg:o,k1:a,k2neg:c,k2:l}=aa.splitScalar(n),{p:u,f}=this.wNAF(a,e),{p:h,f:d}=this.wNAF(l,e);u=la(o,u),h=la(c,h),h=new st(P(h.x*aa.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 st.normalizeZ([i,s])[0]}toAffine(t){let{x:e,y:n,z:i}=this,s=this.equals(st.ZERO);t==null&&(t=s?Wm: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!==At)throw new Error("invZ was invalid");return new ct(l,u)}};st.BASE=new st(kt.Gx,kt.Gy,At);st.ZERO=new st(et,At,et);function la(r,t){let e=t.negate();return r?e:t}var vu=new WeakMap,ct=class{constructor(t,e){this.x=t,this.y=e}_setWindowSize(t){this._WINDOW_SIZE=t,vu.delete(this)}hasEvenY(){return this.y%Jr===et}static fromCompressedHex(t){let e=t.length===32,n=jr(e?t:t.subarray(1));if(!xu(n))throw new Error("Point is not on curve");let i=Jm(n),s=s_(i),o=(s&At)===At;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,ze+1)),n=jr(t.subarray(ze+1,ze*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===ze)return this.fromCompressedHex(e);if(n===Xm&&(i===2||i===3))return this.fromCompressedHex(e);if(n===Zm&&i===4)return this.fromUncompressedHex(e);throw new Error(`Point.fromHex: received invalid point. Expected 32-${Xm} compressed bytes or ${Zm} uncompressed bytes, not ${n}`)}static fromPrivateKey(t){return ct.BASE.multiply(da(t))}static fromSignature(t,e,n){let{r:i,s}=ny(e);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");let o=Su(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(!xu(e)||!xu(n))throw new Error(t);let i=P(n*n),s=Jm(e);if(P(i-s)!==et)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 st.fromAffine(this).double().toAffine()}add(t){return st.fromAffine(this).add(st.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return st.fromAffine(this).multiply(t,this).toAffine()}multiplyAndAddUnsafe(t,e,n){let i=st.fromAffine(this),s=e===et||e===At||this!==ct.BASE?i.multiplyUnsafe(e):i.multiply(e),o=st.fromAffine(t).multiplyUnsafe(n),a=s.add(o);return a.equals(st.ZERO)?void 0:a.toAffine()}};ct.BASE=new ct(kt.Gx,kt.Gy);ct.ZERO=new ct(et,et);function ty(r){return Number.parseInt(r[0],16)>=8?"00"+r:r}function ey(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 r_(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}=ey(r.subarray(2)),{data:n,left:i}=ey(e);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${Bi(i)}`);return{r:t,s:n}}var fr=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 fr(ha(i.slice(0,64)),ha(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}=r_(e?t:On(t));return new fr(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>>At;return this.s>t}normalizeS(){return this.hasHighS()?new fr(this.r,P(-this.s,kt.n)):this}toDERRawBytes(){return On(this.toDERHex())}toDERHex(){let t=ty(fs(this.s)),e=ty(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 n_=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+=n_[r[e]];return t}var i_=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function Ii(r){if(typeof r!="bigint")throw new Error("Expected bigint");if(!(et<=r&&r<i_))throw new Error("Expected number 0 <= n < 2^256");return r.toString(16).padStart(64,"0")}function bu(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 ha(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 ha(Bi(r))}function Di(r){return r instanceof Uint8Array?Uint8Array.from(r):On(r)}function ry(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>=et?e:t+e}function Ne(r,t){let{P:e}=kt,n=r;for(;t-- >et;)n*=n,n%=e;return n}function s_(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=Ne(l,hs)*l%t,f=Ne(u,hs)*l%t,h=Ne(f,Jr)*c%t,d=Ne(h,n)*h%t,p=Ne(d,i)*d%t,m=Ne(p,o)*p%t,y=Ne(m,a)*m%t,g=Ne(y,o)*p%t,x=Ne(g,hs)*l%t,_=Ne(x,s)*d%t,O=Ne(_,e)*c%t,C=Ne(O,Jr);if(C*C%t!==r)throw new Error("Cannot find square root");return C}function Li(r,t=kt.P){if(r===et||t<=et)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=P(r,t),n=t,i=et,s=At,o=At,a=et;for(;e!==et;){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!==At)throw new Error("invert: does not exist");return P(i,t)}function o_(r,t=kt.P){let e=new Array(r.length),n=r.reduce((s,o,a)=>o===et?s:(e[a]=s,P(s*o,t)),At),i=Li(n,t);return r.reduceRight((s,o,a)=>o===et?s:(e[a]=P(s*e[a],t),P(s*o,t)),i),e}function a_(r){let t=r.length*8-Ci*8,e=jr(r);return t>0?e>>BigInt(t):e}function Su(r,t=!1){let e=a_(r);if(t)return e;let{n}=kt;return e>=n?e-n:e}var Ti,ds,_u=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 He.hmacSha256(this.k,...t)}hmacSync(...t){return ds(this.k,...t)}checkSync(){if(typeof ds!="function")throw new fa("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 et<r&&r<kt.n}function xu(r){return et<r&&r<kt.P}function c_(r,t,e,n=!0){let{n:i}=kt,s=Su(r,!0);if(!ps(s))return;let o=Li(s,i),a=ct.BASE.multiply(s),c=P(a.x,i);if(c===et)return;let l=P(o*P(t+e*c,i),i);if(l===et)return;let u=new fr(c,l),f=(a.x===u.r?0:2)|Number(a.y&At);return n&&u.hasHighS()&&(u=u.normalizeS(),f^=1),{sig:u,recovery:f}}function da(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=ha(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 l_(r){return r instanceof ct?(r.assertValidity(),r):ct.fromHex(r)}function ny(r){if(r instanceof fr)return r.assertValidity(),r;try{return fr.fromDER(r)}catch{return fr.fromCompact(r)}}function Au(r,t=!1){return ct.fromPrivateKey(r).toRawBytes(t)}function iy(r){let t=r.length>ze?r.slice(0,ze):r;return jr(t)}function u_(r){let t=iy(r),e=P(t,kt.n);return sy(e<et?t:e)}function sy(r){return bu(r)}function f_(r,t,e){if(r==null)throw new Error(`sign: expected valid message hash, not "${r}"`);let n=Di(r),i=da(t),s=[sy(i),u_(n)];if(e!=null){e===!0&&(e=He.randomBytes(ze));let c=Di(e);if(c.length!==ze)throw new Error(`sign: Expected ${ze} bytes of extra data`);s.push(c)}let o=Zr(...s),a=iy(n);return{seed:o,m:a,d:i}}function h_(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 oy(r,t,e={}){let{seed:n,m:i,d:s}=f_(r,t,e.extraEntropy),o=new _u(e_,Ci);await o.reseed(n);let a;for(;!(a=c_(await o.generate(),i,s,e.canonical));)await o.reseed();return h_(a,e)}var d_={strict:!0};function ay(r,t,e,n=d_){let i;try{i=ny(r),t=Di(t)}catch{return!1}let{r:s,s:o}=i;if(n.strict&&i.hasHighS())return!1;let a=Su(t),c;try{c=l_(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 _e={node:t_,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var ua={},He={bytesToHex:Bi,hexToBytes:On,concatBytes:Zr,mod:P,invert:Li,isValidPrivateKey(r){try{return da(r),!0}catch{return!1}},_bigintTo32Bytes:bu,_normalizePrivateKey:da,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-At)+At;return bu(e)},randomBytes:(r=32)=>{if(_e.web)return _e.web.getRandomValues(new Uint8Array(r));if(_e.node){let{randomBytes:t}=_e.node;return Uint8Array.from(t(r))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>He.hashToPrivateKey(He.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(_e.web){let t=await _e.web.subtle.digest("SHA-256",Zr(...r));return new Uint8Array(t)}else if(_e.node){let{createHash:t}=_e.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(_e.web){let e=await _e.web.subtle.importKey("raw",r,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=Zr(...t),i=await _e.web.subtle.sign("HMAC",e,n);return new Uint8Array(i)}else if(_e.node){let{createHmac:e}=_e.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=ua[r];if(e===void 0){let n=await He.sha256(Uint8Array.from(r,i=>i.charCodeAt(0)));e=Zr(n,n),ua[r]=e}return He.sha256(e,...t)},taggedHashSync:(r,...t)=>{if(typeof Ti!="function")throw new fa("sha256Sync is undefined, you need to set it");let e=ua[r];if(e===void 0){let n=Ti(Uint8Array.from(r,i=>i.charCodeAt(0)));e=Zr(n,n),ua[r]=e}return Ti(e,...t)},_JacobianPoint:st};Object.defineProperties(He,{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 He.randomBytes(r)}var Mn={};ne(Mn,{jwkToPkcs1:()=>y_,jwkToPkix:()=>w_,pkcs1ToJwk:()=>m_,pkixToJwk:()=>g_});var m8=N(as(),1),y8=N(sa(),1),Lr=N(ft(),1);function m_(r){let t=Lr.default.asn1.fromDer(z(r,"ascii")),e=Lr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:$e(e.n),e:$e(e.e),d:$e(e.d),p:$e(e.p),q:$e(e.q),dp:$e(e.dP),dq:$e(e.dQ),qi:$e(e.qInv),alg:"RS256"}}function y_(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:be(r.n),e:be(r.e),d:be(r.d),p:be(r.p),q:be(r.q),dP:be(r.dp),dQ:be(r.dq),qInv:be(r.qi)});return F(Lr.default.asn1.toDer(t).getBytes(),"ascii")}function g_(r){let t=Lr.default.asn1.fromDer(z(r,"ascii")),e=Lr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:$e(e.n),e:$e(e.e)}}function w_(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:be(r.n),e:be(r.e)});return F(Lr.default.asn1.toDer(t).getBytes(),"ascii")}var v8=N(sa(),1),Ru=N(ft(),1);function cy(r,t){return t.map(e=>be(r[e]))}function ly(r){return Ru.default.pki.setRsaPrivateKey(...cy(r,["n","e","d","p","q","dp","dq","qi"]))}function uy(r){return Ru.default.pki.setRsaPublicKey(...cy(r,["n","e"]))}async function fy(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 py(t);return{privateKey:e[0],publicKey:e[1]}}async function Iu(r){let e=[await de.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await E_(r)],n=await py({privateKey:e[0],publicKey:e[1]});return{privateKey:n[0],publicKey:n[1]}}async function hy(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 dy(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 py(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 E_(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 my(r,t,e,n){let i=t?uy(r):ly(r),s=z(Uint8Array.from(e),"ascii"),o=n(s,i);return F(o,"ascii")}function yy(r,t){return my(r,!0,t,(e,n)=>n.encrypt(e))}function gy(r,t){return my(r,!1,t,(e,n)=>n.decrypt(e))}async function Pi(r,t){let n=await oa().encrypt(r,t);return yn.encode(n)}var ys=class{constructor(t){this._key=t}async verify(t,e){return await dy(this._key,e,t)}marshal(){return Mn.jwkToPkix(this._key)}get bytes(){return nr.encode({Type:Tt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return yy(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 hy(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 gy(this._key,t)}marshal(){return Mn.jwkToPkcs1(this._key)}get bytes(){return ir.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 v_(r){let t=Mn.pkcs1ToJwk(r),e=await Iu(t);return new Ni(e.privateKey,e.publicKey)}function b_(r){let t=Mn.pkixToJwk(r);return new ys(t)}async function __(r){let t=await Iu(r);return new Ni(t.privateKey,t.publicKey)}async function S_(r){let t=await fy(r);return new Ni(t.privateKey,t.publicKey)}var Mu={};ne(Mu,{Ed25519PrivateKey:()=>Fn,Ed25519PublicKey:()=>vs,generateKeyPair:()=>H_,generateKeyPairFromSeed:()=>Ly,unmarshalEd25519PrivateKey:()=>$_,unmarshalEd25519PublicKey:()=>z_});var A_=N(Rn(),1);var re=BigInt(0),rt=BigInt(1),rn=BigInt(2),R_=BigInt(8),wy=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),Rt=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:wy,n:wy,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")});var _y=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),gs=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),U8=BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),I_=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),T_=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),C_=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),B_=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,rt,R(t.x*t.y))}static toAffineBatch(t){let e=P_(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){xy(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}=Rt,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){xy(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&&Pu.get(e);i||(i=this.precomputeWindow(n),e&&n!==1&&(i=Z.normalizeZ(i),Pu.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+=rt);let m=d,y=d+Math.abs(p)-1,g=h%2!==0,x=p<0;p===0?o=o.add(Ey(g,i[m])):s=s.add(Ey(x,i[y]))}return Z.normalizeZ([s,o])[0]}multiply(t,e){return this.wNAF(ma(t,Rt.l),e)}multiplyUnsafe(t){let e=ma(t,Rt.l,!1),n=Z.BASE,i=Z.ZERO;if(e===re)return i;if(this.equals(i)||e===rt)return this;if(this.equals(n))return this.wNAF(e);let s=i,o=this;for(;e>re;)e&rt&&(s=s.add(o)),o=o.double(),e>>=rt;return s}isSmallOrder(){return this.multiplyUnsafe(Rt.h).equals(Z.ZERO)}isTorsionFree(){let t=this.multiplyUnsafe(Rt.l/rn).double();return Rt.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?R_:ya(i));let o=R(e*t),a=R(n*t),c=R(i*t);if(s)return Bt.ZERO;if(c!==rt)throw new Error("invZ was invalid");return new Bt(o,a)}fromRistrettoBytes(){Bu()}toRistrettoBytes(){Bu()}fromRistrettoHash(){Bu()}};Z.BASE=new Z(Rt.Gx,Rt.Gy,rt,R(Rt.Gx*Rt.Gy));Z.ZERO=new Z(re,rt,rt,re);function Ey(r,t){let e=t.negate();return r?e:t}function xy(r){if(!(r instanceof Z))throw new TypeError("ExtendedPoint expected")}function Cu(r){if(!(r instanceof pe))throw new TypeError("RistrettoPoint expected")}function Bu(){throw new Error("Legacy method: switch to RistrettoPoint")}var pe=class{constructor(t){this.ep=t}static calcElligatorRistrettoMap(t){let{d:e}=Rt,n=R(gs*t*t),i=R((n+rt)*C_),s=BigInt(-1),o=R((s-e*n)*R(n+e)),{isValid:a,value:c}=ku(i,o),l=R(c*t);en(l)||(l=R(-l)),a||(c=l),a||(s=n);let u=R(s*(n-rt)*B_-o),f=c*c,h=R((c+c)*o),d=R(u*I_),p=R(rt-f),m=R(rt+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=Du(t.slice(0,32)),n=this.calcElligatorRistrettoMap(e),i=Du(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}=Rt,i="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",s=Du(t);if(!k_(ws(s),t)||en(s))throw new Error(i);let o=R(s*s),a=R(rt+e*o),c=R(rt-e*o),l=R(a*a),u=R(c*c),f=R(e*n*l-u),{isValid:h,value:d}=by(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,rt,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}=by(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*T_)}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){Cu(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 Cu(t),new pe(this.ep.add(t.ep))}subtract(t){return Cu(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 Pu=new WeakMap,Bt=class{constructor(t,e){this.x=t,this.y=e}_setWindowSize(t){this._WINDOW_SIZE=t,Pu.delete(this)}static fromHex(t,e=!0){let{d:n,P:i}=Rt;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>=_y)throw new Error("Expected 0 < hex < 2**256");let a=R(o*o),c=R(a-rt),l=R(n*a+rt),{isValid:u,value:f}=ku(c,l);if(!u)throw new Error("Point.fromHex: invalid y coordinate");let h=(f&rt)===rt;return(t[31]&128)!==0!==h&&(f=R(-f)),new Bt(f,o)}static async fromPrivateKey(t){return(await ga(t)).point}toRawBytes(){let t=ws(this.y);return t[31]|=this.x&rt?128:0,t}toHex(){return Es(this.toRawBytes())}toX25519(){let{y:t}=this,e=R((rt+t)*ya(rt-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(Rt.Gx,Rt.Gy);Bt.ZERO=new Bt(re,rt);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 ma(e,Rt.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 vy(...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 D_=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+=D_[r[e]];return t}function Nu(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 Sy(r){let e=r.toString(16).padStart(64,"0");return Nu(e)}function ws(r){return Sy(r).reverse()}function en(r){return(R(r)&rt)===rt}function xs(r){if(!(r instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+Es(Uint8Array.from(r).reverse()))}var L_=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Du(r){return R(xs(r)&L_)}function R(r,t=Rt.P){let e=r%t;return e>=re?e:t+e}function ya(r,t=Rt.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=rt,o=rt,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!==rt)throw new Error("invert: does not exist");return R(i,t)}function P_(r,t=Rt.P){let e=new Array(r.length),n=r.reduce((s,o,a)=>o===re?s:(e[a]=s,R(s*o,t)),rt),i=ya(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 hr(r,t){let{P:e}=Rt,n=r;for(;t-- >re;)n*=n,n%=e;return n}function N_(r){let{P:t}=Rt,e=BigInt(5),n=BigInt(10),i=BigInt(20),s=BigInt(40),o=BigInt(80),c=r*r%t*r%t,l=hr(c,rn)*c%t,u=hr(l,rt)*r%t,f=hr(u,e)*u%t,h=hr(f,n)*f%t,d=hr(h,i)*h%t,p=hr(d,s)*d%t,m=hr(p,o)*p%t,y=hr(m,o)*p%t,g=hr(y,n)*f%t;return{pow_p_5_8:hr(g,rn)*r%t,b2:c}}function ku(r,t){let e=R(t*t*t),n=R(e*e*t),i=N_(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 by(r){return ku(rt,r)}function pa(r){return R(xs(r),Rt.l)}function k_(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):Nu(r);if(typeof t=="number"&&e.length!==t)throw new Error(`Expected ${t} bytes`);return e}function ma(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 O_(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function M_(r){if(r=typeof r=="bigint"||typeof r=="number"?Sy(ma(r,_y)):nn(r),r.length!==32)throw new Error("Expected 32 bytes");return r}function U_(r){let t=O_(r.slice(0,32)),e=r.slice(32,64),n=pa(t),i=Bt.BASE.multiply(n),s=i.toRawBytes();return{head:t,prefix:e,scalar:n,point:i,pointBytes:s}}var Lu;async function ga(r){return U_(await sn.sha512(M_(r)))}async function Ou(r){return(await ga(r)).pointBytes}async function Ay(r,t){r=nn(r);let{prefix:e,scalar:n,pointBytes:i}=await ga(t),s=pa(await sn.sha512(e,r)),o=Bt.BASE.multiply(s),a=pa(await sn.sha512(o.toRawBytes(),i,r)),c=R(s+a*n,Rt.l);return new Un(o,c).toRawBytes()}function F_(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 K_(r,t,e,n){let i=pa(n),s=Z.fromAffine(r).multiplyUnsafe(i);return Z.fromAffine(t).add(s).subtract(e).multiplyUnsafe(Rt.h).equals(Z.ZERO)}async function Ry(r,t,e){let{r:n,SB:i,msg:s,pub:o}=F_(r,t,e),a=await sn.sha512(n.toRawBytes(),o.toRawBytes(),s);return K_(o,n,i,a)}Bt.BASE._setWindowSize(8);var tn={node:A_,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},sn={bytesToHex:Es,hexToBytes:Nu,concatBytes:vy,getExtendedPublicKey:ga,mod:R,invert:ya,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),Rt.l-rt)+rt},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=vy(...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 Lu},set(r){Lu||(Lu=r)}}});var ki=32,Pr=64,wa=32;async function Iy(){let r=sn.randomPrivateKey(),t=await Ou(r);return{privateKey:Dy(r,t),publicKey:t}}async function Ty(r){if(r.length!==wa)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 Ou(t);return{privateKey:Dy(t,e),publicKey:e}}async function Cy(r,t){let e=r.subarray(0,wa);return await Ay(t,e)}async function By(r,t,e){return await Ry(t,e,r)}function Dy(r,t){let e=new Uint8Array(Pr);for(let n=0;n<wa;n++)e[n]=r[n],e[wa+n]=t[n];return e}var vs=class{constructor(t){this._key=Oi(t,ki)}async verify(t,e){return await By(this._key,e,t)}marshal(){return this._key}get bytes(){return nr.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 Cy(this._key,t)}get public(){return new vs(this._publicKey)}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}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 $_(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 H_(){let{privateKey:r,publicKey:t}=await Iy();return new Fn(r,t)}async function Ly(r){let{privateKey:t,publicKey:e}=await Ty(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 Fu={};ne(Fu,{Secp256k1PrivateKey:()=>_s,Secp256k1PublicKey:()=>bs,generateKeyPair:()=>Q_,unmarshalSecp256k1PrivateKey:()=>Y_,unmarshalSecp256k1PublicKey:()=>W_});function Py(){return He.randomPrivateKey()}async function Ny(r,t){let{digest:e}=await ie.digest(t);try{return await oy(e,r)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}async function ky(r,t,e){try{let{digest:n}=await ie.digest(e);return ay(t,n,r)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}function Oy(r){return ct.fromHex(r).toRawBytes(!0)}function My(r){try{Au(r,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}function Uu(r){try{ct.fromHex(r)}catch(t){throw new w(String(t),"ERR_INVALID_PUBLIC_KEY")}}function Uy(r){try{return Au(r,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}var bs=class{constructor(t){Uu(t),this._key=t}async verify(t,e){return await ky(this._key,e,t)}marshal(){return Oy(this._key)}get bytes(){return nr.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??Uy(t),My(this._key),Uu(this._publicKey)}async sign(t){return await Ny(this._key,t)}get public(){return new bs(this._publicKey)}marshal(){return 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}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 Y_(r){return new _s(r)}function W_(r){return new bs(r)}async function Q_(){let r=Py();return new _s(r)}var Nr={rsa:Tu,ed25519:Mu,secp256k1:Fu};function Ku(r){let t=Object.keys(Nr).join(" / ");return new w(`invalid or unsupported key type ${r}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Vu(r){if(r=r.toLowerCase(),r==="rsa"||r==="ed25519"||r==="secp256k1")return Nr[r];throw Ku(r)}async function xa(r,t){return await Vu(r).generateKeyPair(t??2048)}function Ss(r){let t=nr.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 Ku(t.Type??"RSA")}}function Fy(r,t){return t=(t??"rsa").toLowerCase(),Vu(t),r.bytes}async function Mi(r){let t=ir.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 Ku(t.Type??"RSA")}}function Ky(r,t){return t=(t??"rsa").toLowerCase(),Vu(t),r.bytes}async function As(r,t){try{let i=await qm(r,t);return await Mi(i)}catch{}let e=Ea.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=Ea.default.asn1.toDer(Ea.default.pki.privateKeyToAsn1(e));return n=F(n.getBytes(),"ascii"),await Nr.rsa.unmarshalRsaPrivateKey(n)}var aB=N(Wo(),1),Z_=N(ft(),1);var qy=N(cu(),1),$y=N(qt(),1);var Vy={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(Vy).join(" / ");throw new w(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let s=Vy[i],o=(0,qy.default)(r,t,e,n,s);return $y.default.encode64(o,null)}var va=U("libp2p:keychain"),tS="/pkcs8/",Hy="/info/",Kn=new WeakMap,Vn={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},qu={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,zy.default)(r.trim())&&r.length>0}async function yt(){let e=Math.random()*800+200;await new Promise(n=>setTimeout(n,e))}function dr(r){return new Nt(tS+r)}function on(r){return new Nt(Hy+r)}var qn=class{constructor(t,e){if(this.components=t,this.init=Ce(qu,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({},qu),e=Math.ceil(Vn.minSaltLength/3)*3;return t.dek.salt=z(Dr(e),"base64"),t}static get options(){return qu}async createKey(t,e,n=2048){if(!kr(t)||t==="self")throw await yt(),new w("Invalid key name",j.ERR_INVALID_KEY_NAME);if(typeof e!="string")throw await yt(),new w("Invalid key type",j.ERR_INVALID_KEY_TYPE);let i=dr(t);if(await this.components.datastore.has(i))throw await yt(),new w("Key name already exists",j.ERR_KEY_ALREADY_EXISTS);switch(e.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await yt(),new w("Invalid RSA key size",j.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await xa(e,n),c=await a.id(),l=Kn.get(this);if(l==null)throw new w("dek missing",j.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:Hy},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.`,j.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}'`,j.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(),va.error(n),new w(`Key '${t}' does not exist.`,j.ERR_KEY_NOT_FOUND)}}async removeKey(t){if(!kr(t)||t==="self")throw await yt(),new w(`Invalid key name '${t}'`,j.ERR_INVALID_KEY_NAME);let e=dr(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}'`,j.ERR_OLD_KEY_NAME_INVALID);if(!kr(e)||e==="self")throw await yt(),new w(`Invalid new key name '${e}'`,j.ERR_NEW_KEY_NAME_INVALID);let n=dr(t),i=dr(e),s=on(t),o=on(e);if(await this.components.datastore.has(i))throw await yt(),new w(`Key '${e}' already exists`,j.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}'`,j.ERR_INVALID_KEY_NAME);if(e==null)throw await yt(),new w("Password is required",j.ERR_PASSWORD_REQUIRED);let n=dr(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",j.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}'`,j.ERR_INVALID_KEY_NAME);if(e==null)throw await yt(),new w("PEM encoded key is required",j.ERR_PEM_REQUIRED);let i=dr(t);if(await this.components.datastore.has(i))throw await yt(),new w(`Key '${t}' already exists`,j.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",j.ERR_CANNOT_READ_KEY)}let a;try{a=await o.id();let u=Kn.get(this);if(u==null)throw new w("dek missing",j.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}'`,j.ERR_INVALID_KEY_NAME);if(e==null)throw new w("PeerId is required",j.ERR_MISSING_PRIVATE_KEY);if(e.privateKey==null)throw new w("PeerId.privKey is required",j.ERR_MISSING_PRIVATE_KEY);let n=await Mi(e.privateKey),i=dr(t);if(await this.components.datastore.has(i))throw await yt(),new w(`Key '${t}' already exists`,j.ERR_KEY_ALREADY_EXISTS);let o=Kn.get(this);if(o==null)throw new w("dek missing",j.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}'`,j.ERR_INVALID_KEY_NAME);try{let e=dr(t),n=await this.components.datastore.get(e);return z(n)}catch(e){throw await yt(),va.error(e),new w(`Key '${t}' does not exist.`,j.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(t,e){if(typeof t!="string")throw await yt(),new w(`Invalid old pass type '${typeof t}'`,j.ERR_INVALID_OLD_PASS_TYPE);if(typeof e!="string")throw await yt(),new w(`Invalid new pass type '${typeof e}'`,j.ERR_INVALID_NEW_PASS_TYPE);if(e.length<20)throw await yt(),new w(`Invalid pass length ${e.length}`,j.ERR_INVALID_PASS_LENGTH);va("recreating keychain");let n=Kn.get(this);if(n==null)throw new w("dek missing",j.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(dr(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(dr(a.name),F(h)),d.put(on(a.name),F(JSON.stringify(p))),await d.commit()}va("keychain reconstructed")}};var LB=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 $u=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 $u({name:t,metrics:e}):n=new Map,n}var $n=U("libp2p:transports"),ba=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 tg=N(ci(),1);var Yy=Symbol.for("@achingbrain/uint8arraylist");function Gy(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 _a(r){return!!r?.[Yy]}var Ot=class{constructor(...t){Object.defineProperty(this,Yy,{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(_a(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(_a(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=Gy(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Gy(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(_a(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(!_a(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 Sa(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 Wy=4294967296,Se=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 Se(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 Se(e,n)}toBytes(t,e=0){let n=Sa(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 Se;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>Wy&&(i=0,++n>Wy&&(n=0))),new Se(n,i)}static fromNumber(t){if(t===0)return new Se;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 Se(i,n)}static fromBytes(t,e=0){let n=Sa(t),i=new Se,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 eS=Math.pow(2,7),rS=Math.pow(2,14),nS=Math.pow(2,21),iS=Math.pow(2,28),sS=Math.pow(2,35),oS=Math.pow(2,42),aS=Math.pow(2,49),cS=Math.pow(2,56),lS=Math.pow(2,63),Ge={encodingLength(r){return r<eS?1:r<rS?2:r<nS?3:r<iS?4:r<sS?5:r<oS?6:r<aS?7:r<cS?8:r<lS?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(Ge.encodingLength(r))),Se.fromNumber(r).toBytes(t,e),t},decode(r,t=0){return Se.fromBytes(r,t).toNumber(!0)}};function Qy(r){return globalThis?.Buffer?.allocUnsafe!=null?globalThis.Buffer.allocUnsafe(r):new Uint8Array(r)}var Aa=r=>{let t=Ge.encodingLength(r),e=Qy(t);return Ge.encode(r,e),Aa.bytes=t,e};Aa.bytes=0;function Ae(r){r=r??{};let t=r.lengthEncoder??Aa;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}}}Ae.single=(r,t)=>{t=t??{};let e=t.lengthEncoder??Aa;return new Ot(e(r.byteLength),r)};var Ts=N(ci(),1),uS=8,fS=1024*1024*4,zn;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(zn||(zn={}));var zu=r=>{let t=Ge.decode(r);return zu.bytes=Ge.encodingLength(t),t};zu.bytes=0;function me(r){return async function*(e){let n=new Ot,i=zn.LENGTH,s=-1,o=r?.lengthDecoder??zu,a=r?.maxLengthLength??uS,c=r?.maxDataLength??fS;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 Hu=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 Xy(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 Ia(r,t,e){let n=e??{},i=Xy(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 hS(r,t,e){return n=>r(Ia(n,t,e))}function ye(r,t,e){return{sink:hS(r.sink,t,{...e,onAbort:void 0}),source:Ia(r.source,t,e)}}var pS=U("libp2p:mss"),Zy=F(`
38
+ `);function Bs(r){let t=new Ot(r,Zy);return Ae.single(t)}function Hn(r,t,e={}){let n=Bs(t);e.writeBytes===!0?r.push(n.subarray()):r.push(n)}function Jy(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 mS(r,t){let e=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>await r.next(e)},i=n;t?.signal!=null&&(i=Ia(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,Hu.default)(new Error("no buffer returned"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==Zy[0])throw pS.error("Invalid mss message - missing newline - %s",o.subarray()),(0,Hu.default)(new Error("missing newline"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function Ui(r,t){let e=await mS(r,t);return z(e.subarray())}function Gu(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 Ta(r){let t=vn(),e=Gu(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}=Ta(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);Jy(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,tg.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}=Ta(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 eg=Symbol.for("@libp2p/connection");var gS=U("libp2p:connection"),Yu=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:Co},this._newStream=i,this._close=s,this._getStreams=o,this.tags=[],this._closing=!1}get[Symbol.toStringTag](){return"Connection"}get[eg](){return!0}get streams(){return this._getStreams()}async newStream(t,e){if(this.stat.status===gl)throw new w("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.stat.status===Bo)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===Bo||this._closing)){this.stat.status=gl;try{this.streams.forEach(t=>{t.close()})}catch(t){gS.error(t)}this._closing=!0,await this._close(),this._closing=!1,this.stat.timeline.close=Date.now(),this.stat.status=Bo}}};function rg(r){return new Yu(r)}var wS=Symbol.for("@libp2p/topology");function ng(r){return r!=null&&!!r[wS]}var Wu=U("libp2p:registrar"),Qu=32,Xu=64,Ca=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=Ce.bind({ignoreUndefined:!0})({maxInboundStreams:Qu,maxOutboundStreams:Xu},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(!ng(e))throw Wu.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=>{Wu.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=>{Wu.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 Zu=N(_r(),1);var Ju=N(tr(),1),bt=U("libp2p:upgrader");function ES(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 Qu}function xS(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 Xu}function ig(r,t,e){let n=0;return e.streams.forEach(i=>{i.stat.direction===t&&i.stat.protocol===r&&n++}),n}var Ba=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 Zu.TimeoutController(this.inboundUpgradeTimeout);try{(0,Ju.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=ES(y,this.components.registrar);if(ig(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 Zu.TimeoutController(3e4),p.signal=y.signal;try{(0,Ju.setMaxListeners)?.(1/0,y.signal)}catch{}}let{stream:g,protocol:x}=await Ls(m,d,p),_=xS(x,this.components.registrar);if(ig(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=rg({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 sg={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 vS,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=og(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)}};vS=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=og(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",sg.ERR_SIGNATURE_NOT_VALID);return e};var og=(r,t,e)=>{let n=F(r),i=Ge.encode(n.byteLength),s=Ge.encode(t.length),o=Ge.encode(e.length);return new Ot(i,n,s,t,o,e)};function ag(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 cg="libp2p-peer-record",lg=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||!ag(this.multiaddrs,t.multiaddrs))}};Gt.createFromProtobuf=r=>{let t=Os.decode(r),e=qr(t.peerId),n=(t.addresses??[]).map(s=>It(s.multiaddr)),i=t.seq;return new Gt({peerId:e,multiaddrs:n,seqNumber:i})};Gt.DOMAIN=cg;Gt.CODEC=lg;var Da="0.0.0",ug="libp2p";var ju=`js-libp2p/${Da}`;var fg="0.1.0",hg="id",dg="id/push",pg="1.0.0",mg="1.0.0";var Ms=N(_r(),1);var Us=N(tr(),1),gt=U("libp2p:identify"),yg=1024*8,Fi=class{constructor(t,e){this.components=t,this.started=!1,this.init=e,this.identifyProtocolStr=`/${e.protocolPrefix}/${hg}/${pg}`,this.identifyPushProtocolStr=`/${e.protocolPrefix}/${dg}/${mg}`,this.host={protocolVersion:`${e.protocolPrefix}/${fg}`,...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})],Ae()))}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??yg}),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 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=>It(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(ot("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],Ae());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??yg}),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=>It(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 It(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 Ye;(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())})(Ye||(Ye={}));var gg="0.0.1",wg="fetch";var Eg=N(_r(),1),xg=N(tr(),1);var ke=U("libp2p:fetch"),La=class{constructor(t,e){this.started=!1,this.components=t,this.protocol=`/${e.protocolPrefix??"libp2p"}/${wg}/${gg}`,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=>{ke.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={}){ke("dialing %s to %p",this.protocol,t);let i=await this.components.connectionManager.openConnection(t,n),s,o=n.signal,a;if(o==null){ke("using default timeout of %d ms",this.init.timeout),s=new Eg.TimeoutController(this.init.timeout),o=s.signal;try{(0,xg.setMaxListeners)?.(1/0,s.signal)}catch{}}try{a=await i.newStream(this.protocol,{signal:o});let c=ye(a,o);return ke("fetch %s",e),await Ft([Fs.encode({identifier:e})],Ae(),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=Ye.decode(f);switch(h.status){case Ye.StatusCode.OK:return ke("received status for %s ok",e),h.data;case Ye.StatusCode.NOT_FOUND:return ke("received status for %s not found",e),null;case Ye.StatusCode.ERROR:{ke("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 ke("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){ke("look up data with identifier %s",o.identifier);let l=await c(o.identifier);l!=null?(ke("sending status for %s ok",o.identifier),a={status:Ye.StatusCode.OK,data:l}):(ke("sending status for %s not found",o.identifier),a={status:Ye.StatusCode.NOT_FOUND,data:new Uint8Array(0)})}else{ke("sending status for %s error",o.identifier);let l=F(`No lookup function registered for key: ${o.identifier}`);a={status:Ye.StatusCode.ERROR,data:l}}yield Ye.encode(a)},Ae(),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 vg="1.0.0",bg="ping";var Sg=N(_r(),1),Ag=N(tr(),1),_g=U("libp2p:ping"),Pa=class{constructor(t,e){this.components=t,this.started=!1,this.protocol=`/${e.protocolPrefix}/${bg}/${vg}`,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=>{_g.error(n)})}async ping(t,e={}){_g("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 Sg.TimeoutController(this.init.timeout),a=o.signal;try{(0,Ag.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 Rg(){throw new Error("Not supported in browsers")}var Cg=N(Tg(),1),tf=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,Na=(0,Cg.default)(),Ks=tf&&!Na,Bg=Na&&!tf,Dg=Na&&tf,Lg=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!Na,Pg=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,N3=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",Ng=typeof navigator<"u"&&navigator.product==="ReactNative";var Vg=N(kg(),1);var Og="[a-fA-F\\d:]",ln=r=>r&&r.includeBoundaries?`(?:(?<=\\s|^)(?=${Og})|(?<=${Og})(?=\\s|$))`:"",We="(?: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}",ka=`
38
39
  (?:
39
- (?:${tt}:){7}(?:${tt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
40
- (?:${tt}:){6}(?:${sr}|:${tt}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
41
- (?:${tt}:){5}(?::${sr}|(?::${tt}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
42
- (?:${tt}:){4}(?:(?::${tt}){0,1}:${sr}|(?::${tt}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
43
- (?:${tt}:){3}(?:(?::${tt}){0,2}:${sr}|(?::${tt}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
44
- (?:${tt}:){2}(?:(?::${tt}){0,3}:${sr}|(?::${tt}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
45
- (?:${tt}:){1}(?:(?::${tt}){0,4}:${sr}|(?::${tt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
46
- (?::(?:(?::${tt}){0,5}:${sr}|(?::${tt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
40
+ (?:${Yt}:){7}(?:${Yt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
41
+ (?:${Yt}:){6}(?:${We}|:${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}(?::${We}|(?::${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}:${We}|(?::${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}:${We}|(?::${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}:${We}|(?::${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}:${We}|(?::${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}:${We}|(?::${Yt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
47
48
  )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
48
- `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),aS=new RegExp(`(?:^${sr}$)|(?:^${ja}$)`),cS=new RegExp(`^${sr}$`),uS=new RegExp(`^${ja}$`),pf=t=>t&&t.exact?aS:new RegExp(`(?:${bn(t)}${sr}${bn(t)})|(?:${bn(t)}${ja}${bn(t)})`,"g");pf.v4=t=>t&&t.exact?cS:new RegExp(`${bn(t)}${sr}${bn(t)}`,"g");pf.v6=t=>t&&t.exact?uS:new RegExp(`${bn(t)}${ja}${bn(t)}`,"g");var gy=pf;var by=C(vy(),1),{isValid:lS,parse:fS}=by.default,hS=["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"],dS=hS.map(t=>new xy.Netmask(t));function pS(t){for(let e of dS)if(e.contains(t))return!0;return!1}function wy(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 Sy=t=>{if(lS(t)){let e=fS(t);if(e.kind()==="ipv4")return pS(e.toNormalizedString());if(e.kind()==="ipv6")return wy(t)}else if(Bi(t)&&gy.v6().test(t))return wy(t)};var Ja=Sy;function mf(t){let{address:e}=t.nodeAddress();return Boolean(Ja(e))}function es(t,e){let r=mf(t.multiaddr),n=mf(e.multiaddr);return r&&!n?1:!r&&n||t.isCertified&&!e.isCertified?-1:!t.isCertified&&e.isCertified?1:0}var no=M("libp2p:auto-relay"),yS=()=>{},ec=class{constructor(e,r){this.components=e,this.addressSorter=r.addressSorter??es,this.maxListeners=r.maxListeners??1,this.listenRelays=new Set,this.onError=r.onError??yS,this._onProtocolChange=this._onProtocolChange.bind(this),this._onPeerDisconnected=this._onPeerDisconnected.bind(this),this.components.peerStore.addEventListener("change:protocols",n=>{this._onProtocolChange(n).catch(i=>{no.error(i)})}),this.components.connectionManager.addEventListener("peer:disconnect",this._onPeerDisconnected)}async _onProtocolChange(e){let{peerId:r,protocols:n}=e.detail,i=r.toString();if(n.find(o=>o===xr)==null){this.listenRelays.has(i)&&await this._removeListenRelay(i);return}if(!this.listenRelays.has(i))try{let o=this.components.connectionManager.getConnections(r);if(o.length===0)return;let a=o[0];if(a.remoteAddr.protoCodes().includes(290)){no(`relayed connection to ${i} will not be used to hop on`);return}await uy({connection:a})&&(await this.components.peerStore.metadataBook.setValue(r,hf,q(df)),await this._addListenRelay(a,i))}catch(o){this.onError(o)}}_onPeerDisconnected(e){let i=e.detail.remotePeer.toString();this.listenRelays.has(i)&&this._removeListenRelay(i).catch(s=>{no.error(s)})}async _addListenRelay(e,r){try{if(this.listenRelays.size>=this.maxListeners)return;let n=await Ie(await this.components.peerStore.addressBook.get(e.remotePeer),s=>$s(s,this.addressSorter),async s=>await er(s));(await Promise.all(n.map(async s=>{try{let o=s.multiaddr;return o.getPeerId()==null&&(o=o.encapsulate(`/p2p/${e.remotePeer.toString()}`)),o=o.encapsulate("/p2p-circuit"),await this.components.transportManager.listen([o]),!0}catch(o){no.error("error listening on circuit address",o),this.onError(o)}return!1}))).includes(!0)&&this.listenRelays.add(r)}catch(n){this.onError(n),this.listenRelays.delete(r)}}async _removeListenRelay(e){this.listenRelays.delete(e)&&await this._listenOnAvailableHopRelays([e])}async _listenOnAvailableHopRelays(e=[]){if(this.listenRelays.size>=this.maxListeners)return;let r=[],n=await this.components.peerStore.all();for(let{id:i,metadata:s}of n){let o=i.toString();if(this.listenRelays.has(o)||e.includes(o))continue;let a=s.get(hf);if(a==null||Q(a)!==df)continue;let c=this.components.connectionManager.getConnections(i);if(c.length===0){r.push(i);continue}if(await this._addListenRelay(c[0],o),this.listenRelays.size>=this.maxListeners)return}for(let i of r)if(await this._tryToListenOnRelay(i),this.listenRelays.size>=this.maxListeners)return;try{let i=await Qa(Xa);for await(let s of this.components.contentRouting.findProviders(i)){if(s.multiaddrs.length===0)continue;let o=s.id;if(!o.equals(this.components.peerId)&&(await this.components.peerStore.addressBook.add(o,s.multiaddrs),await this._tryToListenOnRelay(o),this.listenRelays.size>=this.maxListeners))return}}catch(i){this.onError(i)}}async _tryToListenOnRelay(e){try{let r=await this.components.connectionManager.openConnection(e);await this._addListenRelay(r,e.toString())}catch(r){no.error("Could not use %p as relay",e,r),this.onError(r,`could not connect and listen on known hop relay ${e.toString()}`)}}};var _y=M("libp2p:relay"),tc=class{constructor(e,r){this.components=e,this.autoRelay=r.autoRelay?.enabled!==!1?new ec(e,{addressSorter:r.addressSorter,...r.autoRelay}):void 0,this.started=!1,this.init=r,this._advertiseService=this._advertiseService.bind(this)}isStarted(){return this.started}async start(){this.init.hop.enabled!==!1&&this.init.advertise.enabled!==!1&&(this.timeout=(0,rc.setDelayedInterval)(this._advertiseService,this.init.advertise.ttl,this.init.advertise.bootDelay)),this.started=!0}async stop(){this.timeout!=null&&(0,rc.clearDelayedInterval)(this.timeout),this.started=!1}async _advertiseService(){try{let e=await Qa(Xa);await this.components.contentRouting.provide(e)}catch(e){e.code===b.ERR_NO_ROUTERS_AVAILABLE?(_y.error("a content router, such as a DHT, must be provided in order to advertise the relay service",e),await this.stop()):_y.error(e)}}};var Sv=C(Py(),1);var j4=C(jg(),1),Z4=C(qf(),1),Xr=C(ie(),1);var Q4=C(Uf(),1),fE=C(ie(),1),lE=fE.default.pki,hE=(t,e)=>{let r=lE.rsa.setPublicKey(e.n,e.e),n=lE.createCertificate();n.publicKey=r,n.serialNumber="01",n.validity.notBefore=new Date,n.validity.notAfter=new Date,n.validity.notAfter.setFullYear(n.validity.notBefore.getFullYear()+10);let i=[{name:"organizationName",value:"ipfs"},{shortName:"OU",value:"keystore"},{name:"commonName",value:t.id}];return n.setSubject(i),n.setIssuer(i),n.setExtensions([{name:"basicConstraints",cA:!0},{name:"keyUsage",keyCertSign:!0,digitalSignature:!0,nonRepudiation:!0,keyEncipherment:!0,dataEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0,codeSigning:!0,emailProtection:!0,timeStamping:!0},{name:"nsCertType",client:!0,server:!0,email:!0,objsign:!0,sslCA:!0,emailCA:!0,objCA:!0}]),n.sign(e),n};async function dE(t,e){let r=t.map(e),i=(await Promise.all(r)).findIndex(s=>s);return t[i]}var jr=C(Y(),1);var yC=M("libp2p:keychain:cms"),Hf=new WeakMap,Sc=class{constructor(e,r){if(e==null)throw(0,jr.default)(new Error("keychain is required"),b.ERR_KEYCHAIN_REQUIRED);this.keychain=e,Hf.set(this,{dek:r})}async encrypt(e,r){if(!(r instanceof Uint8Array))throw(0,jr.default)(new Error("Plain data must be a Uint8Array"),b.ERR_INVALID_PARAMETERS);let n=await this.keychain.findKeyByName(e),i=await this.keychain.getPrivateKey(e),s=Hf.get(this);if(s==null)throw(0,jr.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let o=s.dek,a=Xr.default.pki.decryptRsaPrivateKey(i,o),c=await hE(n,a),u=Xr.default.pkcs7.createEnvelopedData();u.addRecipient(c),u.content=Xr.default.util.createBuffer(r),u.encrypt();let l=Xr.default.asn1.toDer(u.toAsn1()).getBytes();return q(l,"ascii")}async decrypt(e){if(!(e instanceof Uint8Array))throw(0,jr.default)(new Error("CMS data is required"),b.ERR_INVALID_PARAMETERS);let r;try{let l=Xr.default.util.createBuffer(Q(e,"ascii")),f=Xr.default.asn1.fromDer(l);r=Xr.default.pkcs7.messageFromAsn1(f)}catch(l){throw yC.error(l),(0,jr.default)(new Error("Invalid CMS"),b.ERR_INVALID_CMS)}let n=r.recipients.filter(l=>l.issuer.find(f=>f.shortName==="O"&&f.value==="ipfs")).filter(l=>l.issuer.find(f=>f.shortName==="CN")).map(l=>({recipient:l,keyId:l.issuer.find(f=>f.shortName==="CN").value})),i=await dE(n,async l=>{try{if(await this.keychain.findKeyById(l.keyId)!=null)return!0}catch{return!1}return!1});if(i==null){let l=n.map(f=>f.keyId);throw(0,jr.default)(new Error(`Decryption needs one of the key(s): ${l.join(", ")}`),b.ERR_MISSING_KEYS,{missingKeys:l})}let s=await this.keychain.findKeyById(i.keyId);if(s==null)throw(0,jr.default)(new Error("No key available to decrypto"),b.ERR_NO_KEY);let o=await this.keychain.getPrivateKey(s.name),a=Hf.get(this);if(a==null)throw(0,jr.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let c=a.dek,u=Xr.default.pki.decryptRsaPrivateKey(o,c);return r.decrypt(i.recipient,u),q(r.content.getBytes(),"ascii")}};var ge=C(Y(),1);var Fe;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(Fe||(Fe={}));var zf;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})(zf||(zf={}));(function(t){t.codec=()=>wn(zf)})(Fe||(Fe={}));var Tr;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Fe.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=Fe.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Tr||(Tr={}));var Rr;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Fe.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=Fe.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Rr||(Rr={}));var EO=C(An(),1),vO=C(qf(),1),Mc=C(ie(),1),yh=C(Y(),1);var gC=C(Y(),1);var At={get(t=globalThis){let e=t.crypto;if(e==null||e.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return e}};var EC=C(Y(),1);var m8=C(De(),1),y8=C(Ec(),1),mE=C(ie(),1);function cr(t,e){let r=Uint8Array.from(t.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=Qe([new Uint8Array(e-r.length),r])}return Q(r,"base64url")}function Ot(t){let e=yE(t);return new mE.default.jsbn.BigInteger(Q(e,"base16"),16)}function yE(t,e){let r=q(t,"base64urlpad");if(e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=Qe([new Uint8Array(e-r.length),r])}return r}var vC={"P-256":256,"P-384":384,"P-521":521},wC=Object.keys(vC),C8=wC.join(" / ");function Ac(t){let e=t?.algorithm??"AES-GCM",r=t?.keyLength??16,n=t?.nonceLength??12,i=t?.digest??"SHA-256",s=t?.saltLength??16,o=t?.iterations??32767,a=At.get();r*=8;async function c(f,d){let h=a.getRandomValues(new Uint8Array(s)),p=a.getRandomValues(new Uint8Array(n)),y={name:e,iv:p};typeof d=="string"&&(d=q(d));let g={name:"PBKDF2",salt:h,iterations:o,hash:{name:i}},E=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),x=await a.subtle.deriveKey(g,E,{name:e,length:r},!0,["encrypt"]),_=await a.subtle.encrypt(y,x,f);return Qe([h,y.iv,new Uint8Array(_)])}async function u(f,d){let h=f.subarray(0,s),p=f.subarray(s,s+n),y=f.subarray(s+n),g={name:e,iv:p};typeof d=="string"&&(d=q(d));let E={name:"PBKDF2",salt:h,iterations:o,hash:{name:i}},x=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey","deriveBits"]),_=await a.subtle.deriveKey(E,x,{name:e,length:r},!0,["decrypt"]),B=await a.subtle.decrypt(g,_,y);return new Uint8Array(B)}return{encrypt:c,decrypt:u}}async function EE(t,e){let r=zn.decode(t);return await Ac().decrypt(r,e)}var nh={};pt(nh,{RsaPrivateKey:()=>gs,RsaPublicKey:()=>yo,fromJwk:()=>$C,generateKeyPair:()=>GC,unmarshalRsaPrivateKey:()=>HC,unmarshalRsaPublicKey:()=>zC});var rh=C(Y(),1);var nO=C(SE(),1),mo=C(ie(),1);var bC=C(ei(),1);var fe=BigInt(0),ke=BigInt(1),Dn=BigInt(2),fo=BigInt(3),_E=BigInt(8),Ye=Object.freeze({a:fe,b:BigInt(7),P:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:ke,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee")}),AE=(t,e)=>(t+e/Dn)/e,Cc={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar(t){let{n:e}=Ye,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ke*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=AE(s*t,e),c=AE(-n*t,e),u=K(t-a*r-c*i,e),l=K(-a*n-c*s,e),f=u>o,d=l>o;if(f&&(u=e-u),d&&(l=e-l),u>o||l>o)throw new Error("splitScalarEndo: Endomorphism failed, k="+t);return{k1neg:f,k1:u,k2neg:d,k2:l}}},ur=32,hs=32,SC=32,CE=ur+1,IE=2*ur+1;function TE(t){let{a:e,b:r}=Ye,n=K(t*t),i=K(n*t);return K(i+e*t+r)}var Ic=Ye.a===fe,Nc=class extends Error{constructor(e){super(e)}};function RE(t){if(!(t instanceof ye))throw new TypeError("JacobianPoint expected")}var ye=class{constructor(e,r,n){this.x=e,this.y=r,this.z=n}static fromAffine(e){if(!(e instanceof Ee))throw new TypeError("JacobianPoint#fromAffine: expected Point");return e.equals(Ee.ZERO)?ye.ZERO:new ye(e.x,e.y,ke)}static toAffineBatch(e){let r=TC(e.map(n=>n.z));return e.map((n,i)=>n.toAffine(r[i]))}static normalizeZ(e){return ye.toAffineBatch(e).map(ye.fromAffine)}equals(e){RE(e);let{x:r,y:n,z:i}=this,{x:s,y:o,z:a}=e,c=K(i*i),u=K(a*a),l=K(r*u),f=K(s*c),d=K(K(n*a)*u),h=K(K(o*i)*c);return l===f&&d===h}negate(){return new ye(this.x,K(-this.y),this.z)}double(){let{x:e,y:r,z:n}=this,i=K(e*e),s=K(r*r),o=K(s*s),a=e+s,c=K(Dn*(K(a*a)-i-o)),u=K(fo*i),l=K(u*u),f=K(l-Dn*c),d=K(u*(c-f)-_E*o),h=K(Dn*r*n);return new ye(f,d,h)}add(e){RE(e);let{x:r,y:n,z:i}=this,{x:s,y:o,z:a}=e;if(s===fe||o===fe)return this;if(r===fe||n===fe)return e;let c=K(i*i),u=K(a*a),l=K(r*u),f=K(s*c),d=K(K(n*a)*u),h=K(K(o*i)*c),p=K(f-l),y=K(h-d);if(p===fe)return y===fe?this.double():ye.ZERO;let g=K(p*p),E=K(p*g),x=K(l*g),_=K(y*y-E-Dn*x),B=K(y*(x-_)-d*E),D=K(i*a*p);return new ye(_,B,D)}subtract(e){return this.add(e.negate())}multiplyUnsafe(e){let r=ye.ZERO;if(typeof e=="bigint"&&e===fe)return r;let n=LE(e);if(n===ke)return this;if(!Ic){let f=r,d=this;for(;n>fe;)n&ke&&(f=f.add(d)),d=d.double(),n>>=ke;return f}let{k1neg:i,k1:s,k2neg:o,k2:a}=Cc.splitScalar(n),c=r,u=r,l=this;for(;s>fe||a>fe;)s&ke&&(c=c.add(l)),a&ke&&(u=u.add(l)),l=l.double(),s>>=ke,a>>=ke;return i&&(c=c.negate()),o&&(u=u.negate()),u=new ye(K(u.x*Cc.beta),u.y,u.z),c.add(u)}precomputeWindow(e){let r=Ic?128/e+1:256/e+1,n=[],i=this,s=i;for(let o=0;o<r;o++){s=i,n.push(s);for(let a=1;a<2**(e-1);a++)s=s.add(i),n.push(s);i=s.double()}return n}wNAF(e,r){!r&&this.equals(ye.BASE)&&(r=Ee.BASE);let n=r&&r._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=r&&Wf.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=ye.normalizeZ(i),Wf.set(r,i)));let s=ye.ZERO,o=ye.BASE,a=1+(Ic?128/n:256/n),c=2**(n-1),u=BigInt(2**n-1),l=2**n,f=BigInt(n);for(let d=0;d<a;d++){let h=d*c,p=Number(e&u);e>>=f,p>c&&(p-=l,e+=ke);let y=h,g=h+Math.abs(p)-1,E=d%2!==0,x=p<0;p===0?o=o.add(Tc(E,i[y])):s=s.add(Tc(x,i[g]))}return{p:s,f:o}}multiply(e,r){let n=LE(e),i,s;if(Ic){let{k1neg:o,k1:a,k2neg:c,k2:u}=Cc.splitScalar(n),{p:l,f}=this.wNAF(a,r),{p:d,f:h}=this.wNAF(u,r);l=Tc(o,l),d=Tc(c,d),d=new ye(K(d.x*Cc.beta),d.y,d.z),i=l.add(d),s=f.add(h)}else{let{p:o,f:a}=this.wNAF(n,r);i=o,s=a}return ye.normalizeZ([i,s])[0]}toAffine(e){let{x:r,y:n,z:i}=this,s=this.equals(ye.ZERO);e==null&&(e=s?_E:ms(i));let o=e,a=K(o*o),c=K(a*o),u=K(r*a),l=K(n*c),f=K(i*o);if(s)return Ee.ZERO;if(f!==ke)throw new Error("invZ was invalid");return new Ee(u,l)}};ye.BASE=new ye(Ye.Gx,Ye.Gy,ke);ye.ZERO=new ye(fe,ke,fe);function Tc(t,e){let r=e.negate();return t?r:e}var Wf=new WeakMap,Ee=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,Wf.delete(this)}hasEvenY(){return this.y%Dn===fe}static fromCompressedHex(e){let r=e.length===32,n=Ln(r?e:e.subarray(1));if(!Yf(n))throw new Error("Point is not on curve");let i=TE(n),s=IC(i),o=(s&ke)===ke;r?o&&(s=K(-s)):(e[0]&1)===1!==o&&(s=K(-s));let a=new Ee(n,s);return a.assertValidity(),a}static fromUncompressedHex(e){let r=Ln(e.subarray(1,ur+1)),n=Ln(e.subarray(ur+1,ur*2+1)),i=new Ee(r,n);return i.assertValidity(),i}static fromHex(e){let r=ps(e),n=r.length,i=r[0];if(n===ur)return this.fromCompressedHex(r);if(n===CE&&(i===2||i===3))return this.fromCompressedHex(r);if(n===IE&&i===4)return this.fromUncompressedHex(r);throw new Error(`Point.fromHex: received invalid point. Expected 32-${CE} compressed bytes or ${IE} uncompressed bytes, not ${n}`)}static fromPrivateKey(e){return Ee.BASE.multiply(Lc(e))}static fromSignature(e,r,n){let{r:i,s}=PE(r);if(![0,1,2,3].includes(n))throw new Error("Cannot recover: invalid recovery bit");let o=jf(ps(e)),{n:a}=Ye,c=n===2||n===3?i+a:i,u=ms(c,a),l=K(-o*u,a),f=K(s*u,a),d=n&1?"03":"02",h=Ee.fromHex(d+ls(c)),p=Ee.BASE.multiplyAndAddUnsafe(h,l,f);if(!p)throw new Error("Cannot recover signature: point at infinify");return p.assertValidity(),p}toRawBytes(e=!1){return mi(this.toHex(e))}toHex(e=!1){let r=ls(this.x);return e?`${this.hasEvenY()?"02":"03"}${r}`:`04${r}${ls(this.y)}`}toHexX(){return this.toHex(!0).slice(2)}toRawX(){return this.toRawBytes(!0).slice(1)}assertValidity(){let e="Point is not on elliptic curve",{x:r,y:n}=this;if(!Yf(r)||!Yf(n))throw new Error(e);let i=K(n*n),s=TE(r);if(K(i-s)!==fe)throw new Error(e)}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new Ee(this.x,K(-this.y))}double(){return ye.fromAffine(this).double().toAffine()}add(e){return ye.fromAffine(this).add(ye.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return ye.fromAffine(this).multiply(e,this).toAffine()}multiplyAndAddUnsafe(e,r,n){let i=ye.fromAffine(this),s=r===fe||r===ke||this!==Ee.BASE?i.multiplyUnsafe(r):i.multiply(r),o=ye.fromAffine(e).multiplyUnsafe(n),a=s.add(o);return a.equals(ye.ZERO)?void 0:a.toAffine()}};Ee.BASE=new Ee(Ye.Gx,Ye.Gy);Ee.ZERO=new Ee(fe,fe);function NE(t){return Number.parseInt(t[0],16)>=8?"00"+t:t}function DE(t){if(t.length<2||t[0]!==2)throw new Error(`Invalid signature integer tag: ${ds(t)}`);let e=t[1],r=t.subarray(2,e+2);if(!e||r.length!==e)throw new Error("Invalid signature integer: wrong length");if(r[0]===0&&r[1]<=127)throw new Error("Invalid signature integer: trailing length");return{data:Ln(r),left:t.subarray(e+2)}}function _C(t){if(t.length<2||t[0]!=48)throw new Error(`Invalid signature tag: ${ds(t)}`);if(t[1]!==t.length-2)throw new Error("Invalid signature: incorrect length");let{data:e,left:r}=DE(t.subarray(2)),{data:n,left:i}=DE(r);if(i.length)throw new Error(`Invalid signature: left bytes after parsing: ${ds(i)}`);return{r:e,s:n}}var Nr=class{constructor(e,r){this.r=e,this.s=r,this.assertValidity()}static fromCompact(e){let r=e instanceof Uint8Array,n="Signature.fromCompact";if(typeof e!="string"&&!r)throw new TypeError(`${n}: Expected string or Uint8Array`);let i=r?ds(e):e;if(i.length!==128)throw new Error(`${n}: Expected 64-byte hex`);return new Nr(Dc(i.slice(0,64)),Dc(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}=_C(r?e:mi(e));return new Nr(n,i)}static fromHex(e){return this.fromDER(e)}assertValidity(){let{r:e,s:r}=this;if(!po(e))throw new Error("Invalid Signature: r must be 0 < r < n");if(!po(r))throw new Error("Invalid Signature: s must be 0 < s < n")}hasHighS(){let e=Ye.n>>ke;return this.s>e}normalizeS(){return this.hasHighS()?new Nr(this.r,K(-this.s,Ye.n)):this}toDERRawBytes(){return mi(this.toDERHex())}toDERHex(){let e=NE(lo(this.s)),r=NE(lo(this.r)),n=e.length/2,i=r.length/2,s=lo(n),o=lo(i);return`30${lo(i+n+4)}02${o}${r}02${s}${e}`}toRawBytes(){return this.toDERRawBytes()}toHex(){return this.toDERHex()}toCompactRawBytes(){return mi(this.toCompactHex())}toCompactHex(){return ls(this.r)+ls(this.s)}};function Nn(...t){if(!t.every(n=>n instanceof Uint8Array))throw new Error("Uint8Array list expected");if(t.length===1)return t[0];let e=t.reduce((n,i)=>n+i.length,0),r=new Uint8Array(e);for(let n=0,i=0;n<t.length;n++){let s=t[n];r.set(s,i),i+=s.length}return r}var AC=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function ds(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");let e="";for(let r=0;r<t.length;r++)e+=AC[t[r]];return e}var CC=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000");function ls(t){if(typeof t!="bigint")throw new Error("Expected bigint");if(!(fe<=t&&t<CC))throw new Error("Expected number 0 <= n < 2^256");return t.toString(16).padStart(64,"0")}function Qf(t){let e=mi(ls(t));if(e.length!==32)throw new Error("Error: expected 32 bytes");return e}function lo(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function Dc(t){if(typeof t!="string")throw new TypeError("hexToNumber: expected string, got "+typeof t);return BigInt(`0x${t}`)}function mi(t){if(typeof t!="string")throw new TypeError("hexToBytes: expected string, got "+typeof t);if(t.length%2)throw new Error("hexToBytes: received invalid unpadded hex"+t.length);let e=new Uint8Array(t.length/2);for(let r=0;r<e.length;r++){let n=r*2,i=t.slice(n,n+2),s=Number.parseInt(i,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");e[r]=s}return e}function Ln(t){return Dc(ds(t))}function ps(t){return t instanceof Uint8Array?Uint8Array.from(t):mi(t)}function LE(t){if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)return BigInt(t);if(typeof t=="bigint"&&po(t))return t;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}function K(t,e=Ye.P){let r=t%e;return r>=fe?r:e+r}function Qt(t,e){let{P:r}=Ye,n=t;for(;e-- >fe;)n*=n,n%=r;return n}function IC(t){let{P:e}=Ye,r=BigInt(6),n=BigInt(11),i=BigInt(22),s=BigInt(23),o=BigInt(44),a=BigInt(88),c=t*t*t%e,u=c*c*t%e,l=Qt(u,fo)*u%e,f=Qt(l,fo)*u%e,d=Qt(f,Dn)*c%e,h=Qt(d,n)*d%e,p=Qt(h,i)*h%e,y=Qt(p,o)*p%e,g=Qt(y,a)*y%e,E=Qt(g,o)*p%e,x=Qt(E,fo)*u%e,_=Qt(x,s)*h%e,B=Qt(_,r)*c%e,D=Qt(B,Dn);if(D*D%e!==t)throw new Error("Cannot find square root");return D}function ms(t,e=Ye.P){if(t===fe||e<=fe)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=K(t,e),n=e,i=fe,s=ke,o=ke,a=fe;for(;r!==fe;){let u=n/r,l=n%r,f=i-o*u,d=s-a*u;n=r,r=l,i=o,s=a,o=f,a=d}if(n!==ke)throw new Error("invert: does not exist");return K(i,e)}function TC(t,e=Ye.P){let r=new Array(t.length),n=t.reduce((s,o,a)=>o===fe?s:(r[a]=s,K(s*o,e)),ke),i=ms(n,e);return t.reduceRight((s,o,a)=>o===fe?s:(r[a]=K(s*r[a],e),K(s*o,e)),i),r}function RC(t){let e=t.length*8-hs*8,r=Ln(t);return e>0?r>>BigInt(e):r}function jf(t,e=!1){let r=RC(t);if(e)return r;let{n}=Ye;return r>=n?r-n:r}var fs,ho,Xf=class{constructor(e,r){if(this.hashLen=e,this.qByteLen=r,typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof r!="number"||r<2)throw new Error("qByteLen must be a number");this.v=new Uint8Array(e).fill(1),this.k=new Uint8Array(e).fill(0),this.counter=0}hmac(...e){return lr.hmacSha256(this.k,...e)}hmacSync(...e){return ho(this.k,...e)}checkSync(){if(typeof ho!="function")throw new Nc("hmacSha256Sync needs to be set")}incr(){if(this.counter>=1e3)throw new Error("Tried 1,000 k values for sign(), all were invalid");this.counter+=1}async reseed(e=new Uint8Array){this.k=await this.hmac(this.v,Uint8Array.from([0]),e),this.v=await this.hmac(this.v),e.length!==0&&(this.k=await this.hmac(this.v,Uint8Array.from([1]),e),this.v=await this.hmac(this.v))}reseedSync(e=new Uint8Array){this.checkSync(),this.k=this.hmacSync(this.v,Uint8Array.from([0]),e),this.v=this.hmacSync(this.v),e.length!==0&&(this.k=this.hmacSync(this.v,Uint8Array.from([1]),e),this.v=this.hmacSync(this.v))}async generate(){this.incr();let e=0,r=[];for(;e<this.qByteLen;){this.v=await this.hmac(this.v);let n=this.v.slice();r.push(n),e+=this.v.length}return Nn(...r)}generateSync(){this.checkSync(),this.incr();let e=0,r=[];for(;e<this.qByteLen;){this.v=this.hmacSync(this.v);let n=this.v.slice();r.push(n),e+=this.v.length}return Nn(...r)}};function po(t){return fe<t&&t<Ye.n}function Yf(t){return fe<t&&t<Ye.P}function NC(t,e,r,n=!0){let{n:i}=Ye,s=jf(t,!0);if(!po(s))return;let o=ms(s,i),a=Ee.BASE.multiply(s),c=K(a.x,i);if(c===fe)return;let u=K(o*K(e+r*c,i),i);if(u===fe)return;let l=new Nr(c,u),f=(a.x===l.r?0:2)|Number(a.y&ke);return n&&l.hasHighS()&&(l=l.normalizeS(),f^=1),{sig:l,recovery:f}}function Lc(t){let e;if(typeof t=="bigint")e=t;else if(typeof t=="number"&&Number.isSafeInteger(t)&&t>0)e=BigInt(t);else if(typeof t=="string"){if(t.length!==2*hs)throw new Error("Expected 32 bytes of private key");e=Dc(t)}else if(t instanceof Uint8Array){if(t.length!==hs)throw new Error("Expected 32 bytes of private key");e=Ln(t)}else throw new TypeError("Expected valid private key");if(!po(e))throw new Error("Expected private key: 0 < key < n");return e}function DC(t){return t instanceof Ee?(t.assertValidity(),t):Ee.fromHex(t)}function PE(t){if(t instanceof Nr)return t.assertValidity(),t;try{return Nr.fromDER(t)}catch{return Nr.fromCompact(t)}}function Zf(t,e=!1){return Ee.fromPrivateKey(t).toRawBytes(e)}function BE(t){let e=t.length>ur?t.slice(0,ur):t;return Ln(e)}function LC(t){let e=BE(t),r=K(e,Ye.n);return OE(r<fe?e:r)}function OE(t){return Qf(t)}function PC(t,e,r){if(t==null)throw new Error(`sign: expected valid message hash, not "${t}"`);let n=ps(t),i=Lc(e),s=[OE(i),LC(n)];if(r!=null){r===!0&&(r=lr.randomBytes(ur));let c=ps(r);if(c.length!==ur)throw new Error(`sign: Expected ${ur} bytes of extra data`);s.push(c)}let o=Nn(...s),a=BE(n);return{seed:o,m:a,d:i}}function BC(t,e){let{sig:r,recovery:n}=t,{der:i,recovered:s}=Object.assign({canonical:!0,der:!0},e),o=i?r.toDERRawBytes():r.toCompactRawBytes();return s?[o,n]:o}async function kE(t,e,r={}){let{seed:n,m:i,d:s}=PC(t,e,r.extraEntropy),o=new Xf(SC,hs);await o.reseed(n);let a;for(;!(a=NC(await o.generate(),i,s,r.canonical));)await o.reseed();return BC(a,r)}var OC={strict:!0};function UE(t,e,r,n=OC){let i;try{i=PE(t),e=ps(e)}catch{return!1}let{r:s,s:o}=i;if(n.strict&&i.hasHighS())return!1;let a=jf(e),c;try{c=DC(r)}catch{return!1}let{n:u}=Ye,l=ms(o,u),f=K(a*l,u),d=K(s*l,u),h=Ee.BASE.multiplyAndAddUnsafe(c,f,d);return h?K(h.x,u)===s:!1}Ee.BASE._setWindowSize(8);var kt={node:bC,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0};var Rc={},lr={bytesToHex:ds,hexToBytes:mi,concatBytes:Nn,mod:K,invert:ms,isValidPrivateKey(t){try{return Lc(t),!0}catch{return!1}},_bigintTo32Bytes:Qf,_normalizePrivateKey:Lc,hashToPrivateKey:t=>{t=ps(t);let e=hs+8;if(t.length<e||t.length>1024)throw new Error("Expected valid bytes of private key as per FIPS 186");let r=K(Ln(t),Ye.n-ke)+ke;return Qf(r)},randomBytes:(t=32)=>{if(kt.web)return kt.web.getRandomValues(new Uint8Array(t));if(kt.node){let{randomBytes:e}=kt.node;return Uint8Array.from(e(t))}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>lr.hashToPrivateKey(lr.randomBytes(hs+8)),precompute(t=8,e=Ee.BASE){let r=e===Ee.BASE?e:new Ee(e.x,e.y);return r._setWindowSize(t),r.multiply(fo),r},sha256:async(...t)=>{if(kt.web){let e=await kt.web.subtle.digest("SHA-256",Nn(...t));return new Uint8Array(e)}else if(kt.node){let{createHash:e}=kt.node,r=e("sha256");return t.forEach(n=>r.update(n)),Uint8Array.from(r.digest())}else throw new Error("The environment doesn't have sha256 function")},hmacSha256:async(t,...e)=>{if(kt.web){let r=await kt.web.subtle.importKey("raw",t,{name:"HMAC",hash:{name:"SHA-256"}},!1,["sign"]),n=Nn(...e),i=await kt.web.subtle.sign("HMAC",r,n);return new Uint8Array(i)}else if(kt.node){let{createHmac:r}=kt.node,n=r("sha256",t);return e.forEach(i=>n.update(i)),Uint8Array.from(n.digest())}else throw new Error("The environment doesn't have hmac-sha256 function")},sha256Sync:void 0,hmacSha256Sync:void 0,taggedHash:async(t,...e)=>{let r=Rc[t];if(r===void 0){let n=await lr.sha256(Uint8Array.from(t,i=>i.charCodeAt(0)));r=Nn(n,n),Rc[t]=r}return lr.sha256(r,...e)},taggedHashSync:(t,...e)=>{if(typeof fs!="function")throw new Nc("sha256Sync is undefined, you need to set it");let r=Rc[t];if(r===void 0){let n=fs(Uint8Array.from(t,i=>i.charCodeAt(0)));r=Nn(n,n),Rc[t]=r}return fs(r,...e)},_JacobianPoint:ye};Object.defineProperties(lr,{sha256Sync:{configurable:!1,get(){return fs},set(t){fs||(fs=t)}},hmacSha256Sync:{configurable:!1,get(){return ho},set(t){ho||(ho=t)}}});var ME=C(Y(),1);function Zr(t){if(isNaN(t)||t<=0)throw(0,ME.default)(new Error("random bytes length must be a Number bigger than 0"),"ERR_INVALID_LENGTH");return lr.randomBytes(t)}var yi={};pt(yi,{jwkToPkcs1:()=>MC,jwkToPkix:()=>KC,pkcs1ToJwk:()=>UC,pkixToJwk:()=>FC});var F8=C(An(),1),K8=C(co(),1),Jr=C(ie(),1);var Jf=C(Y(),1);function UC(t){let e=Jr.default.asn1.fromDer(Q(t,"ascii")),r=Jr.default.pki.privateKeyFromAsn1(e);return{kty:"RSA",n:cr(r.n),e:cr(r.e),d:cr(r.d),p:cr(r.p),q:cr(r.q),dp:cr(r.dP),dq:cr(r.dQ),qi:cr(r.qInv),alg:"RS256"}}function MC(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw(0,Jf.default)(new Error("JWK was missing components"),"ERR_INVALID_PARAMETERS");let e=Jr.default.pki.privateKeyToAsn1({n:Ot(t.n),e:Ot(t.e),d:Ot(t.d),p:Ot(t.p),q:Ot(t.q),dP:Ot(t.dp),dQ:Ot(t.dq),qInv:Ot(t.qi)});return q(Jr.default.asn1.toDer(e).getBytes(),"ascii")}function FC(t){let e=Jr.default.asn1.fromDer(Q(t,"ascii")),r=Jr.default.pki.publicKeyFromAsn1(e);return{kty:"RSA",n:cr(r.n),e:cr(r.e)}}function KC(t){if(t.n==null||t.e==null)throw(0,Jf.default)(new Error("JWK was missing components"),"ERR_INVALID_PARAMETERS");let e=Jr.default.pki.publicKeyToAsn1({n:Ot(t.n),e:Ot(t.e)});return q(Jr.default.asn1.toDer(e).getBytes(),"ascii")}var z8=C(co(),1),eh=C(ie(),1);function FE(t,e){return e.map(r=>Ot(t[r]))}function KE(t){return eh.default.pki.setRsaPrivateKey(...FE(t,["n","e","d","p","q","dp","dq","qi"]))}function VE(t){return eh.default.pki.setRsaPublicKey(...FE(t,["n","e"]))}var qE=C(Y(),1);async function HE(t){let e=await At.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await GE(e);return{privateKey:r[0],publicKey:r[1]}}async function th(t){let r=[await At.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await VC(t)],n=await GE({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function zE(t,e){let r=await At.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await At.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(e));return new Uint8Array(n,0,n.byteLength)}async function $E(t,e,r){let n=await At.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return await At.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,r)}async function GE(t){if(t.privateKey==null||t.publicKey==null)throw(0,qE.default)(new Error("Private and public key are required"),"ERR_INVALID_PARAMETERS");return await Promise.all([At.get().subtle.exportKey("jwk",t.privateKey),At.get().subtle.exportKey("jwk",t.publicKey)])}async function VC(t){return await At.get().subtle.importKey("jwk",{kty:t.kty,n:t.n,e:t.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function YE(t,e,r,n){let i=e?VE(t):KE(t),s=Q(Uint8Array.from(r),"ascii"),o=n(s,i);return q(o,"ascii")}function WE(t,e){return YE(t,!0,e,(r,n)=>n.encrypt(r))}function QE(t,e){return YE(t,!1,e,(r,n)=>n.decrypt(r))}async function ys(t,e){let n=await Ac().encrypt(t,e);return zn.encode(n)}var yo=class{constructor(e){this._key=e}async verify(e,r){return await $E(this._key,r,e)}marshal(){return yi.jwkToPkix(this._key)}get bytes(){return Tr.encode({Type:Fe.RSA,Data:this.marshal()}).subarray()}encrypt(e){return WE(this._key,e)}equals(e){return Ae(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}},gs=class{constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return Zr(16)}async sign(e){return await zE(this._key,e)}get public(){if(this._publicKey==null)throw(0,rh.default)(new Error("public key not provided"),"ERR_PUBKEY_NOT_PROVIDED");return new yo(this._publicKey)}decrypt(e){return QE(this._key,e)}marshal(){return yi.jwkToPkcs1(this._key)}get bytes(){return Rr.encode({Type:Fe.RSA,Data:this.marshal()}).subarray()}equals(e){return Ae(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}async id(){let e=await this.public.hash();return Q(e,"base58btc")}async export(e,r="pkcs-8"){if(r==="pkcs-8"){let n=new mo.default.util.ByteBuffer(this.marshal()),i=mo.default.asn1.fromDer(n),s=mo.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return mo.default.pki.encryptRsaPrivateKey(s,e,o)}else{if(r==="libp2p-key")return await ys(this.bytes,e);throw(0,rh.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}}};async function HC(t){let e=yi.pkcs1ToJwk(t),r=await th(e);return new gs(r.privateKey,r.publicKey)}function zC(t){let e=yi.pkixToJwk(t);return new yo(e)}async function $C(t){let e=await th(t);return new gs(e.privateKey,e.publicKey)}async function GC(t){let e=await HE(t);return new gs(e.privateKey,e.publicKey)}var dh={};pt(dh,{Ed25519PrivateKey:()=>Ei,Ed25519PublicKey:()=>xo,generateKeyPair:()=>hI,generateKeyPairFromSeed:()=>uv,unmarshalEd25519PrivateKey:()=>lI,unmarshalEd25519PublicKey:()=>fI});var hh=C(Y(),1);var YC=C(ei(),1);var dt=BigInt(0),de=BigInt(1),Es=BigInt(2),XE=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),Ke=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:XE,n:XE,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")});var ev=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),go=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),sO=BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742"),WC=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),QC=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),XC=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),jC=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),he=class{constructor(e,r,n,i){this.x=e,this.y=r,this.z=n,this.t=i}static fromAffine(e){if(!(e instanceof Ve))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return e.equals(Ve.ZERO)?he.ZERO:new he(e.x,e.y,de,T(e.x*e.y))}static toAffineBatch(e){let r=eI(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){jE(e);let{x:r,y:n,z:i}=this,{x:s,y:o,z:a}=e,c=T(r*a),u=T(s*i),l=T(n*a),f=T(o*i);return c===u&&l===f}negate(){return new he(T(-this.x),this.y,this.z,T(-this.t))}double(){let{x:e,y:r,z:n}=this,{a:i}=Ke,s=T(e*e),o=T(r*r),a=T(Es*T(n*n)),c=T(i*s),u=e+r,l=T(T(u*u)-s-o),f=c+o,d=f-a,h=c-o,p=T(l*d),y=T(f*h),g=T(l*h),E=T(d*f);return new he(p,y,E,g)}add(e){jE(e);let{x:r,y:n,z:i,t:s}=this,{x:o,y:a,z:c,t:u}=e,l=T((n-r)*(a+o)),f=T((n+r)*(a-o)),d=T(f-l);if(d===dt)return this.double();let h=T(i*Es*u),p=T(s*Es*c),y=p+h,g=f+l,E=p-h,x=T(y*d),_=T(g*E),B=T(y*E),D=T(d*g);return new he(x,_,D,B)}subtract(e){return this.add(e.negate())}precomputeWindow(e){let r=1+256/e,n=[],i=this,s=i;for(let o=0;o<r;o++){s=i,n.push(s);for(let a=1;a<2**(e-1);a++)s=s.add(i),n.push(s);i=s.double()}return n}wNAF(e,r){!r&&this.equals(he.BASE)&&(r=Ve.BASE);let n=r&&r._WINDOW_SIZE||1;if(256%n)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let i=r&&ch.get(r);i||(i=this.precomputeWindow(n),r&&n!==1&&(i=he.normalizeZ(i),ch.set(r,i)));let s=he.ZERO,o=he.ZERO,a=1+256/n,c=2**(n-1),u=BigInt(2**n-1),l=2**n,f=BigInt(n);for(let d=0;d<a;d++){let h=d*c,p=Number(e&u);if(e>>=f,p>c&&(p-=l,e+=de),p===0){let y=i[h];d%2&&(y=y.negate()),o=o.add(y)}else{let y=i[h+Math.abs(p)-1];p<0&&(y=y.negate()),s=s.add(y)}}return he.normalizeZ([s,o])[0]}multiply(e,r){return this.wNAF(Bc(e,Ke.l),r)}multiplyUnsafe(e){let r=Bc(e,Ke.l,!1),n=he.BASE,i=he.ZERO;if(r===dt)return i;if(this.equals(i)||r===de)return this;if(this.equals(n))return this.wNAF(r);let s=i,o=this;for(;r>dt;)r&de&&(s=s.add(o)),o=o.double(),r>>=de;return s}isSmallOrder(){return this.multiplyUnsafe(Ke.h).equals(he.ZERO)}isTorsionFree(){return this.multiplyUnsafe(Ke.l).equals(he.ZERO)}toAffine(e=Oc(this.z)){let{x:r,y:n,z:i}=this,s=T(r*e),o=T(n*e);if(T(i*e)!==de)throw new Error("invZ was invalid");return new Ve(s,o)}fromRistrettoBytes(){sh()}toRistrettoBytes(){sh()}fromRistrettoHash(){sh()}};he.BASE=new he(Ke.Gx,Ke.Gy,de,T(Ke.Gx*Ke.Gy));he.ZERO=new he(dt,de,de,dt);function jE(t){if(!(t instanceof he))throw new TypeError("ExtendedPoint expected")}function ih(t){if(!(t instanceof Ct))throw new TypeError("RistrettoPoint expected")}function sh(){throw new Error("Legacy method: switch to RistrettoPoint")}var Ct=class{constructor(e){this.ep=e}static calcElligatorRistrettoMap(e){let{d:r}=Ke,n=T(go*e*e),i=T((n+de)*XC),s=BigInt(-1),o=T((s-r*n)*T(n+r)),{isValid:a,value:c}=lh(i,o),u=T(c*e);Bn(u)||(u=T(-u)),a||(c=u),a||(s=n);let l=T(s*(n-de)*jC-o),f=c*c,d=T((c+c)*o),h=T(l*WC),p=T(de-f),y=T(de+f);return new he(T(d*y),T(p*h),T(h*y),T(d*p))}static hashToCurve(e){e=On(e,64);let r=oh(e.slice(0,32)),n=this.calcElligatorRistrettoMap(r),i=oh(e.slice(32,64)),s=this.calcElligatorRistrettoMap(i);return new Ct(n.add(s))}static fromHex(e){e=On(e,32);let{a:r,d:n}=Ke,i="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",s=oh(e);if(!rI(Eo(s),e)||Bn(s))throw new Error(i);let o=T(s*s),a=T(de+r*o),c=T(de-r*o),u=T(a*a),l=T(c*c),f=T(r*n*u-l),{isValid:d,value:h}=JE(T(f*l)),p=T(h*c),y=T(h*p*f),g=T((s+s)*p);Bn(g)&&(g=T(-g));let E=T(a*y),x=T(g*E);if(!d||Bn(x)||E===dt)throw new Error(i);return new Ct(new he(g,E,de,x))}toRawBytes(){let{x:e,y:r,z:n,t:i}=this.ep,s=T(T(n+r)*T(n-r)),o=T(e*r),a=T(o*o),{value:c}=JE(T(s*a)),u=T(c*s),l=T(c*o),f=T(u*l*i),d;if(Bn(i*f)){let p=T(r*go),y=T(e*go);e=p,r=y,d=T(u*QC)}else d=l;Bn(e*f)&&(r=T(-r));let h=T((n-r)*d);return Bn(h)&&(h=T(-h)),Eo(h)}toHex(){return vo(this.toRawBytes())}toString(){return this.toHex()}equals(e){ih(e);let r=this.ep,n=e.ep,i=T(r.x*n.y)===T(r.y*n.x),s=T(r.y*n.y)===T(r.x*n.x);return i||s}add(e){return ih(e),new Ct(this.ep.add(e.ep))}subtract(e){return ih(e),new Ct(this.ep.subtract(e.ep))}multiply(e){return new Ct(this.ep.multiply(e))}multiplyUnsafe(e){return new Ct(this.ep.multiplyUnsafe(e))}};Ct.BASE=new Ct(he.BASE);Ct.ZERO=new Ct(he.ZERO);var ch=new WeakMap,Ve=class{constructor(e,r){this.x=e,this.y=r}_setWindowSize(e){this._WINDOW_SIZE=e,ch.delete(this)}static fromHex(e,r=!0){let{d:n,P:i}=Ke;e=On(e,32);let s=e.slice();s[31]=e[31]&-129;let o=wo(s);if(r&&o>=i)throw new Error("Expected 0 < hex < P");if(!r&&o>=ev)throw new Error("Expected 0 < hex < 2**256");let a=T(o*o),c=T(a-de),u=T(n*a+de),{isValid:l,value:f}=lh(c,u);if(!l)throw new Error("Point.fromHex: invalid y coordinate");let d=(f&de)===de;return(e[31]&128)!==0!==d&&(f=T(-f)),new Ve(f,o)}static async fromPrivateKey(e){return(await kc(e)).point}toRawBytes(){let e=Eo(this.y);return e[31]|=this.x&de?128:0,e}toHex(){return vo(this.toRawBytes())}toX25519(){let{y:e}=this,r=T((de+e)*Oc(de-e));return Eo(r)}isTorsionFree(){return he.fromAffine(this).isTorsionFree()}equals(e){return this.x===e.x&&this.y===e.y}negate(){return new Ve(T(-this.x),this.y)}add(e){return he.fromAffine(this).add(he.fromAffine(e)).toAffine()}subtract(e){return this.add(e.negate())}multiply(e){return he.fromAffine(this).multiply(e,this).toAffine()}};Ve.BASE=new Ve(Ke.Gx,Ke.Gy);Ve.ZERO=new Ve(dt,de);var gi=class{constructor(e,r){this.r=e,this.s=r,this.assertValidity()}static fromHex(e){let r=On(e,64),n=Ve.fromHex(r.slice(0,32),!1),i=wo(r.slice(32,64));return new gi(n,i)}assertValidity(){let{r:e,s:r}=this;if(!(e instanceof Ve))throw new Error("Expected Point instance");return Bc(r,Ke.l,!1),this}toRawBytes(){let e=new Uint8Array(64);return e.set(this.r.toRawBytes()),e.set(Eo(this.s),32),e}toHex(){return vo(this.toRawBytes())}};function ZE(...t){if(!t.every(n=>n instanceof Uint8Array))throw new Error("Expected Uint8Array list");if(t.length===1)return t[0];let e=t.reduce((n,i)=>n+i.length,0),r=new Uint8Array(e);for(let n=0,i=0;n<t.length;n++){let s=t[n];r.set(s,i),i+=s.length}return r}var ZC=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function vo(t){if(!(t instanceof Uint8Array))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=ZC[t[r]];return e}function uh(t){if(typeof t!="string")throw new TypeError("hexToBytes: expected string, got "+typeof t);if(t.length%2)throw new Error("hexToBytes: received invalid unpadded hex");let e=new Uint8Array(t.length/2);for(let r=0;r<e.length;r++){let n=r*2,i=t.slice(n,n+2),s=Number.parseInt(i,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");e[r]=s}return e}function tv(t){let r=t.toString(16).padStart(64,"0");return uh(r)}function Eo(t){return tv(t).reverse()}function Bn(t){return(T(t)&de)===de}function wo(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+vo(Uint8Array.from(t).reverse()))}var JC=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function oh(t){return T(wo(t)&JC)}function T(t,e=Ke.P){let r=t%e;return r>=dt?r:e+r}function Oc(t,e=Ke.P){if(t===dt||e<=dt)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=T(t,e),n=e,i=dt,s=de,o=de,a=dt;for(;r!==dt;){let u=n/r,l=n%r,f=i-o*u,d=s-a*u;n=r,r=l,i=o,s=a,o=f,a=d}if(n!==de)throw new Error("invert: does not exist");return T(i,e)}function eI(t,e=Ke.P){let r=new Array(t.length),n=t.reduce((s,o,a)=>o===dt?s:(r[a]=s,T(s*o,e)),de),i=Oc(n,e);return t.reduceRight((s,o,a)=>o===dt?s:(r[a]=T(s*r[a],e),T(s*o,e)),i),r}function Dr(t,e){let{P:r}=Ke,n=t;for(;e-- >dt;)n*=n,n%=r;return n}function tI(t){let{P:e}=Ke,r=BigInt(5),n=BigInt(10),i=BigInt(20),s=BigInt(40),o=BigInt(80),c=t*t%e*t%e,u=Dr(c,Es)*c%e,l=Dr(u,de)*t%e,f=Dr(l,r)*l%e,d=Dr(f,n)*f%e,h=Dr(d,i)*d%e,p=Dr(h,s)*h%e,y=Dr(p,o)*p%e,g=Dr(y,o)*p%e,E=Dr(g,n)*f%e;return{pow_p_5_8:Dr(E,Es)*t%e,b2:c}}function lh(t,e){let r=T(e*e*e),n=T(r*r*e),i=tI(t*n).pow_p_5_8,s=T(t*r*i),o=T(e*s*s),a=s,c=T(s*go),u=o===t,l=o===T(-t),f=o===T(-t*go);return u&&(s=a),(l||f)&&(s=c),Bn(s)&&(s=T(-s)),{isValid:u||l,value:s}}function JE(t){return lh(de,t)}function Pc(t){return T(wo(t),Ke.l)}function rI(t,e){if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0}function On(t,e){let r=t instanceof Uint8Array?Uint8Array.from(t):uh(t);if(typeof e=="number"&&r.length!==e)throw new Error(`Expected ${e} bytes`);return r}function Bc(t,e,r=!0){if(!e)throw new TypeError("Specify max value");if(typeof t=="number"&&Number.isSafeInteger(t)&&(t=BigInt(t)),typeof t=="bigint"&&t<e){if(r){if(dt<t)return t}else if(dt<=t)return t}throw new TypeError("Expected valid scalar: 0 < scalar < max")}function nI(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function iI(t){if(t=typeof t=="bigint"||typeof t=="number"?tv(Bc(t,ev)):On(t),t.length!==32)throw new Error("Expected 32 bytes");return t}function sI(t){let e=nI(t.slice(0,32)),r=t.slice(32,64),n=Pc(e),i=Ve.BASE.multiply(n),s=i.toRawBytes();return{head:e,prefix:r,scalar:n,point:i,pointBytes:s}}var ah;async function kc(t){return sI(await kn.sha512(iI(t)))}async function fh(t){return(await kc(t)).pointBytes}async function rv(t,e){t=On(t);let{prefix:r,scalar:n,pointBytes:i}=await kc(e),s=Pc(await kn.sha512(r,t)),o=Ve.BASE.multiply(s),a=Pc(await kn.sha512(o.toRawBytes(),i,t)),c=T(s+a*n,Ke.l);return new gi(o,c).toRawBytes()}function oI(t,e,r){e=On(e),r instanceof Ve||(r=Ve.fromHex(r,!1));let{r:n,s:i}=t instanceof gi?t.assertValidity():gi.fromHex(t),s=he.BASE.multiplyUnsafe(i);return{r:n,s:i,SB:s,pub:r,msg:e}}function aI(t,e,r,n){let i=Pc(n),s=he.fromAffine(t).multiplyUnsafe(i);return he.fromAffine(e).add(s).subtract(r).multiplyUnsafe(Ke.h).equals(he.ZERO)}async function nv(t,e,r){let{r:n,SB:i,msg:s,pub:o}=oI(t,e,r),a=await kn.sha512(n.toRawBytes(),o.toRawBytes(),s);return aI(o,n,i,a)}Ve.BASE._setWindowSize(8);var Pn={node:YC,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},kn={bytesToHex:vo,hexToBytes:uh,concatBytes:ZE,getExtendedPublicKey:kc,mod:T,invert:Oc,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:t=>{if(t=On(t),t.length<40||t.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return T(wo(t),Ke.l-de)+de},randomBytes:(t=32)=>{if(Pn.web)return Pn.web.getRandomValues(new Uint8Array(t));if(Pn.node){let{randomBytes:e}=Pn.node;return new Uint8Array(e(t).buffer)}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>kn.randomBytes(32),sha512:async(...t)=>{let e=ZE(...t);if(Pn.web){let r=await Pn.web.subtle.digest("SHA-512",e.buffer);return new Uint8Array(r)}else{if(Pn.node)return Uint8Array.from(Pn.node.createHash("sha512").update(e).digest());throw new Error("The environment doesn't have sha512 function")}},precompute(t=8,e=Ve.BASE){let r=e.equals(Ve.BASE)?e:new Ve(e.x,e.y);return r._setWindowSize(t),r.multiply(Es),r},sha512Sync:void 0};Object.defineProperties(kn,{sha512Sync:{configurable:!1,get(){return ah},set(t){ah||(ah=t)}}});var vs=32,en=64,Uc=32;async function iv(){let t=kn.randomPrivateKey(),e=await fh(t);return{privateKey:cv(t,e),publicKey:e}}async function sv(t){if(t.length!==Uc)throw new TypeError('"seed" must be 32 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=t,r=await fh(e);return{privateKey:cv(e,r),publicKey:r}}async function ov(t,e){let r=t.subarray(0,Uc);return await rv(e,r)}async function av(t,e,r){return await nv(e,r,t)}function cv(t,e){let r=new Uint8Array(en);for(let n=0;n<Uc;n++)r[n]=t[n],r[Uc+n]=e[n];return r}var xo=class{constructor(e){this._key=ws(e,vs)}async verify(e,r){return await av(this._key,r,e)}marshal(){return this._key}get bytes(){return Tr.encode({Type:Fe.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Ae(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}},Ei=class{constructor(e,r){this._key=ws(e,en),this._publicKey=ws(r,vs)}async sign(e){return await ov(this._key,e)}get public(){return new xo(this._publicKey)}marshal(){return this._key}get bytes(){return Rr.encode({Type:Fe.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Ae(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}async id(){let e=await fn.digest(this.public.bytes);return We.encode(e.bytes).substring(1)}async export(e,r="libp2p-key"){if(r==="libp2p-key")return await ys(this.bytes,e);throw(0,hh.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}};function lI(t){if(t.length>en){t=ws(t,en+vs);let n=t.subarray(0,en),i=t.subarray(en,t.length);return new Ei(n,i)}t=ws(t,en);let e=t.subarray(0,en),r=t.subarray(vs);return new Ei(e,r)}function fI(t){return t=ws(t,vs),new xo(t)}async function hI(){let{privateKey:t,publicKey:e}=await iv();return new Ei(t,e)}async function uv(t){let{privateKey:e,publicKey:r}=await sv(t);return new Ei(e,r)}function ws(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw(0,hh.default)(new Error(`Key must be a Uint8Array of length ${e}, got ${t.length}`),"ERR_INVALID_KEY_TYPE");return t}var mh={};pt(mh,{Secp256k1PrivateKey:()=>So,Secp256k1PublicKey:()=>bo,generateKeyPair:()=>yI,unmarshalSecp256k1PrivateKey:()=>pI,unmarshalSecp256k1PublicKey:()=>mI});var yv=C(Y(),1);var xs=C(Y(),1);function lv(){return lr.randomPrivateKey()}async function fv(t,e){let{digest:r}=await ot.digest(e);try{return await kE(r,t)}catch(n){throw(0,xs.default)(n,"ERR_INVALID_INPUT")}}async function hv(t,e,r){try{let{digest:n}=await ot.digest(r);return UE(e,n,t)}catch(n){throw(0,xs.default)(n,"ERR_INVALID_INPUT")}}function dv(t){return Ee.fromHex(t).toRawBytes(!0)}function pv(t){try{Zf(t,!0)}catch(e){throw(0,xs.default)(e,"ERR_INVALID_PRIVATE_KEY")}}function ph(t){try{Ee.fromHex(t)}catch(e){throw(0,xs.default)(e,"ERR_INVALID_PUBLIC_KEY")}}function mv(t){try{return Zf(t,!0)}catch(e){throw(0,xs.default)(e,"ERR_INVALID_PRIVATE_KEY")}}var bo=class{constructor(e){ph(e),this._key=e}async verify(e,r){return await hv(this._key,r,e)}marshal(){return dv(this._key)}get bytes(){return Tr.encode({Type:Fe.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Ae(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}},So=class{constructor(e,r){this._key=e,this._publicKey=r??mv(e),pv(this._key),ph(this._publicKey)}async sign(e){return await fv(this._key,e)}get public(){return new bo(this._publicKey)}marshal(){return this._key}get bytes(){return Rr.encode({Type:Fe.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Ae(this.bytes,e.bytes)}async hash(){let{bytes:e}=await ot.digest(this.bytes);return e}async id(){let e=await this.public.hash();return Q(e,"base58btc")}async export(e,r="libp2p-key"){if(r==="libp2p-key")return await ys(this.bytes,e);throw(0,yv.default)(new Error(`export format '${r}' is not supported`),"ERR_INVALID_EXPORT_FORMAT")}};function pI(t){return new So(t)}function mI(t){return new bo(t)}async function yI(){let t=await lv();return new So(t)}var tn={rsa:nh,ed25519:dh,secp256k1:mh};function gh(t){let e=Object.keys(tn).join(" / ");return(0,yh.default)(new Error(`invalid or unsupported key type ${t}. Must be ${e}`),"ERR_UNSUPPORTED_KEY_TYPE")}function Eh(t){if(t=t.toLowerCase(),t==="rsa"||t==="ed25519"||t==="secp256k1")return tn[t];throw gh(t)}async function Fc(t,e){return await Eh(t).generateKeyPair(e??2048)}function _o(t){let e=Tr.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case Fe.RSA:return tn.rsa.unmarshalRsaPublicKey(r);case Fe.Ed25519:return tn.ed25519.unmarshalEd25519PublicKey(r);case Fe.Secp256k1:return tn.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw gh(e.Type??"RSA")}}function gv(t,e){return e=(e??"rsa").toLowerCase(),Eh(e),t.bytes}async function bs(t){let e=Rr.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case Fe.RSA:return await tn.rsa.unmarshalRsaPrivateKey(r);case Fe.Ed25519:return tn.ed25519.unmarshalEd25519PrivateKey(r);case Fe.Secp256k1:return tn.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw gh(e.Type??"RSA")}}function Ev(t,e){return e=(e??"rsa").toLowerCase(),Eh(e),t.bytes}async function Ao(t,e){try{let i=await EE(t,e);return await bs(i)}catch{}let r=Mc.default.pki.decryptRsaPrivateKey(t,e);if(r===null)throw(0,yh.default)(new Error("Cannot read the key, most likely the password is wrong or not a RSA key"),"ERR_CANNOT_DECRYPT_PEM");let n=Mc.default.asn1.toDer(Mc.default.pki.privateKeyToAsn1(r));return n=q(n.getBytes(),"ascii"),await tn.rsa.unmarshalRsaPrivateKey(n)}var _O=C(ns(),1),EI=C(ie(),1);var wI=C(Y(),1);var wv=C(Kf(),1),xv=C(De(),1),bv=C(Y(),1),vv={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function Co(t,e,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(vv).join(" / ");throw(0,bv.default)(new Error(`Hash '${i}' is unknown or not supported. Must be ${a}`),"ERR_UNSUPPORTED_HASH_TYPE")}let s=vv[i],o=(0,wv.default)(t,e,r,n,s);return xv.default.encode64(o,null)}var Kc=M("libp2p:keychain"),bI="/pkcs8/",_v="/info/",Un=new WeakMap,vi={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},vh={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function rn(t){return t==null||typeof t!="string"?!1:t===(0,Sv.default)(t.trim())&&t.length>0}async function Se(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function Lr(t){return new ze(bI+t)}function nn(t){return new ze(_v+t)}var wi=class{constructor(e,r){if(this.components=e,this.init=Er(vh,r),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<vi.minKeyLength)throw new Error(`dek.keyLength must be least ${vi.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<vi.minSaltLength)throw new Error(`dek.saltLength must be least ${vi.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<vi.minIterationCount)throw new Error(`dek.iterationCount must be least ${vi.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?Co(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Un.set(this,{dek:n}),this.started=!1}isStarted(){return this.started}async start(){let e=nn("self");await this.components.datastore.has(e)||await this.importPeer("self",this.components.peerId),this.started=!0}stop(){this.started=!1}get cms(){let e=Un.get(this);if(e==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let r=e.dek;return new Sc(this,r)}static generateOptions(){let e=Object.assign({},vh),r=Math.ceil(vi.minSaltLength/3)*3;return e.dek.salt=Q(Zr(r),"base64"),e}static get options(){return vh}async createKey(e,r,n=2048){if(!rn(e)||e==="self")throw await Se(),(0,ge.default)(new Error("Invalid key name"),b.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await Se(),(0,ge.default)(new Error("Invalid key type"),b.ERR_INVALID_KEY_TYPE);let i=Lr(e);if(await this.components.datastore.has(i))throw await Se(),(0,ge.default)(new Error("Key name already exists"),b.ERR_KEY_ALREADY_EXISTS);switch(r.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await Se(),(0,ge.default)(new Error("Invalid RSA key size"),b.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await Fc(r,n),c=await a.id(),u=Un.get(this);if(u==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let l=u.dek,f=await a.export(l);o={name:e,id:c};let d=this.components.datastore.batch();d.put(i,q(f)),d.put(nn(e),q(JSON.stringify(o))),await d.commit()}catch(a){throw await Se(),a}return o}async listKeys(){let e={prefix:_v},r=[];for await(let n of this.components.datastore.query(e))r.push(JSON.parse(Q(n.value)));return r}async findKeyById(e){try{return(await this.listKeys()).find(n=>n.id===e)}catch(r){throw await Se(),r}}async findKeyByName(e){if(!rn(e))throw await Se(),(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);let r=nn(e);try{let n=await this.components.datastore.get(r);return JSON.parse(Q(n))}catch(n){throw await Se(),Kc.error(n),(0,ge.default)(new Error(`Key '${e}' does not exist.`),b.ERR_KEY_NOT_FOUND)}}async removeKey(e){if(!rn(e)||e==="self")throw await Se(),(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);let r=Lr(e),n=await this.findKeyByName(e),i=this.components.datastore.batch();return i.delete(r),i.delete(nn(e)),await i.commit(),n}async renameKey(e,r){if(!rn(e)||e==="self")throw await Se(),(0,ge.default)(new Error(`Invalid old key name '${e}'`),b.ERR_OLD_KEY_NAME_INVALID);if(!rn(r)||r==="self")throw await Se(),(0,ge.default)(new Error(`Invalid new key name '${r}'`),b.ERR_NEW_KEY_NAME_INVALID);let n=Lr(e),i=Lr(r),s=nn(e),o=nn(r);if(await this.components.datastore.has(i))throw await Se(),(0,ge.default)(new Error(`Key '${r}' already exists`),b.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(s),l=JSON.parse(Q(u));l.name=r;let f=this.components.datastore.batch();return f.put(i,c),f.put(o,q(JSON.stringify(l))),f.delete(n),f.delete(s),await f.commit(),l}catch(c){throw await Se(),c}}async exportKey(e,r){if(!rn(e))throw await Se(),(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw await Se(),(0,ge.default)(new Error("Password is required"),b.ERR_PASSWORD_REQUIRED);let n=Lr(e);try{let i=await this.components.datastore.get(n),s=Q(i),o=Un.get(this);if(o==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await Ao(s,a)).export(r)}catch(i){throw await Se(),i}}async exportPeerId(e){let r="temporary-password",n=await this.exportKey(e,r),i=await Ao(n,r);return await mn(i.public.bytes,i.bytes)}async importKey(e,r,n){if(!rn(e)||e==="self")throw await Se(),(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw await Se(),(0,ge.default)(new Error("PEM encoded key is required"),b.ERR_PEM_REQUIRED);let i=Lr(e);if(await this.components.datastore.has(i))throw await Se(),(0,ge.default)(new Error(`Key '${e}' already exists`),b.ERR_KEY_ALREADY_EXISTS);let o;try{o=await Ao(r,n)}catch{throw await Se(),(0,ge.default)(new Error("Cannot read the key, most likely the password is wrong"),b.ERR_CANNOT_READ_KEY)}let a;try{a=await o.id();let l=Un.get(this);if(l==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let f=l.dek;r=await o.export(f)}catch(l){throw await Se(),l}let c={name:e,id:a},u=this.components.datastore.batch();return u.put(i,q(r)),u.put(nn(e),q(JSON.stringify(c))),await u.commit(),c}async importPeer(e,r){try{if(!rn(e))throw(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);if(r==null)throw(0,ge.default)(new Error("PeerId is required"),b.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw(0,ge.default)(new Error("PeerId.privKey is required"),b.ERR_MISSING_PRIVATE_KEY);let n=await bs(r.privateKey),i=Lr(e);if(await this.components.datastore.has(i))throw await Se(),(0,ge.default)(new Error(`Key '${e}' already exists`),b.ERR_KEY_ALREADY_EXISTS);let o=Un.get(this);if(o==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let a=o.dek,c=await n.export(a),u={name:e,id:r.toString()},l=this.components.datastore.batch();return l.put(i,q(c)),l.put(nn(e),q(JSON.stringify(u))),await l.commit(),u}catch(n){throw await Se(),n}}async getPrivateKey(e){if(!rn(e))throw await Se(),(0,ge.default)(new Error(`Invalid key name '${e}'`),b.ERR_INVALID_KEY_NAME);try{let r=Lr(e),n=await this.components.datastore.get(r);return Q(n)}catch(r){throw await Se(),Kc.error(r),(0,ge.default)(new Error(`Key '${e}' does not exist.`),b.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(e,r){if(typeof e!="string")throw await Se(),(0,ge.default)(new Error(`Invalid old pass type '${typeof e}'`),b.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await Se(),(0,ge.default)(new Error(`Invalid new pass type '${typeof r}'`),b.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await Se(),(0,ge.default)(new Error(`Invalid pass length ${r.length}`),b.ERR_INVALID_PASS_LENGTH);Kc("recreating keychain");let n=Un.get(this);if(n==null)throw(0,ge.default)(new Error("dek missing"),b.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=r;let s=r!=null&&this.init.dek?.salt!=null?Co(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Un.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(Lr(a.name)),u=Q(c),l=await Ao(u,i),f=s.toString(),d=await l.export(f),h=this.components.datastore.batch(),p={name:a.name,id:a.id};h.put(Lr(a.name),q(d)),h.put(nn(a.name),q(JSON.stringify(p))),await h.commit()}Kc("keychain reconstructed")}};async function Io(t){try{return{status:"fulfilled",value:await t,isFulfilled:!0,isRejected:!1}}catch(e){return{status:"rejected",reason:e,isFulfilled:!1,isRejected:!0}}}var wh=class{value;next;constructor(e){this.value=e}},To=class{#e;#t;#r;constructor(){this.clear()}enqueue(e){let r=new wh(e);this.#e?(this.#t.next=r,this.#t=r):(this.#e=r,this.#t=r),this.#r++}dequeue(){let e=this.#e;if(e)return this.#e=this.#e.next,this.#r--,e.value}clear(){this.#e=void 0,this.#t=void 0,this.#r=0}get size(){return this.#r}*[Symbol.iterator](){let e=this.#e;for(;e;)yield e.value,e=e.next}};function xh(t){if(!((Number.isInteger(t)||t===Number.POSITIVE_INFINITY)&&t>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=new To,r=0,n=()=>{r--,e.size>0&&e.dequeue()()},i=async(a,c,u)=>{r++;let l=(async()=>a(...u))();c(l);try{await l}catch{}n()},s=(a,c,u)=>{e.enqueue(i.bind(void 0,a,c,u)),(async()=>(await Promise.resolve(),r<t&&e.size>0&&e.dequeue()()))()},o=(a,...c)=>new Promise(u=>{s(a,u,c)});return Object.defineProperties(o,{activeCount:{get:()=>r},pendingCount:{get:()=>e.size},clearQueue:{value:()=>{e.clear()}}}),o}async function bh(t,e={}){let{concurrency:r=Number.POSITIVE_INFINITY}=e,n=xh(r);return Promise.all(t.map(i=>i&&typeof i.then=="function"?Io(i):typeof i=="function"?Io(n(()=>i())):Io(Promise.resolve(i))))}var Ss=C(Y(),1);var Sh=class extends Map{constructor(e){super();let{name:r,metrics:n}=e;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(e,r){return super.set(e,r),this.updateComponentMetric(),this}delete(e){let r=super.delete(e);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Ro(t){let{name:e,metrics:r}=t,n;return r!=null?n=new Sh({name:e,metrics:r}):n=new Map,n}var xi=M("libp2p:transports"),Vc=class extends Ue{constructor(e,r={}){super(),this.components=e,this.started=!1,this.transports=new Map,this.listeners=Ro({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??xn.FATAL_ALL}add(e){let r=e[Symbol.toStringTag];if(r==null)throw(0,Ss.default)(new Error("Transport must have a valid tag"),b.ERR_INVALID_KEY);if(this.transports.has(r))throw(0,Ss.default)(new Error("There is already a transport with this tag"),b.ERR_DUPLICATE_TRANSPORT);xi("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(xi("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&e.push(i.close())}await Promise.all(e),xi("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(e,r){let n=this.transportForMultiaddr(e);if(n==null)throw(0,Ss.default)(new Error(`No transport available for address ${String(e)}`),b.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(e,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=b.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let e=[];for(let r of this.listeners.values())for(let n of r)e=[...e,...n.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}transportForMultiaddr(e){for(let r of this.transports.values())if(r.filter([e]).length>0)return r}async listen(e){if(e==null||e.length===0){xi("no addresses were provided for listening, this node is dial only");return}let r=[];for(let[n,i]of this.transports.entries()){let s=i.filter(e),o=[];for(let u of s){xi("creating listener for %s on %s",n,u);let l=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n);f==null&&(f=[],this.listeners.set(n,f)),f.push(l),l.addEventListener("listening",()=>{this.dispatchEvent(new X("listener:listening",{detail:l}))}),l.addEventListener("close",()=>{this.dispatchEvent(new X("listener:close",{detail:l}))}),o.push(l.listen(u))}if(o.length===0){r.push(n);continue}if((await bh(o)).find(u=>u.isFulfilled)==null&&this.faultTolerance!==xn.NO_FATAL)throw(0,Ss.default)(new Error(`Transport (${n}) could not listen on any available address`),b.ERR_NO_VALID_ADDRESSES)}if(r.length===this.transports.size){let n=`no valid addresses were provided for transports [${r.join(", ")}]`;if(this.faultTolerance===xn.FATAL_ALL)throw(0,Ss.default)(new Error(n),b.ERR_NO_VALID_ADDRESSES);xi(`libp2p in dial mode only: ${n}`)}}async remove(e){xi("removing %s",e);for(let r of this.listeners.get(e)??[])await r.close();this.transports.delete(e),this.listeners.delete(e)}async removeAll(){let e=[];for(let r of this.transports.keys())e.push(this.remove(r));await Promise.all(e)}};var at=C(Y(),1);var sn="/multistream/1.0.0";var Tv=C(Y(),1);var _h=C(Y(),1);var _I=M("libp2p:mss"),Av=q(`
49
- `);function No(t){let e=new $e(t,Av);return Ht.single(e)}function bi(t,e,r={}){let n=No(e);r.writeBytes===!0?t.push(n.subarray()):t.push(n)}function Cv(t,e,r={}){let n=new $e;for(let i of e)n.append(No(i));r.writeBytes===!0?t.push(n.subarray()):t.push(n)}async function AI(t,e){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>await t.next(r)},i=n;e?.signal!=null&&(i=si(n,e.signal));let o=await Ie(i,Bt({onLength:a=>{r=a},maxDataLength:1024}),async a=>await Nt(a));if(o==null||o.length===0)throw(0,_h.default)(new Error("no buffer returned"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==Av[0])throw _I.error("Invalid mss message - missing newline - %s",o.subarray()),(0,_h.default)(new Error("missing newline"),"ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function _s(t,e){let r=await AI(t,e);return Q(r.subarray())}var Do=M("libp2p:mss:select");async function Lo(t,e,r={}){e=Array.isArray(e)?[...e]:[e];let{reader:n,writer:i,rest:s,stream:o}=Ji(t),a=e.shift();if(a==null)throw new Error("At least one protocol must be specified");Do('select: write ["%s", "%s"]',sn,a);let c=q(sn),u=q(a);Cv(i,[c,u],r);let l=await _s(n,r);if(Do('select: read "%s"',l),l===sn&&(l=await _s(n,r),Do('select: read "%s"',l)),l===a)return s(),{stream:o,protocol:a};for(let f of e){Do('select: write "%s"',f),bi(i,q(f),r);let d=await _s(n,r);if(Do('select: read "%s" for "%s"',d,f),d===f)return s(),{stream:o,protocol:f}}throw s(),(0,Tv.default)(new Error("protocol selection failed"),"ERR_UNSUPPORTED_PROTOCOL")}var Po=M("libp2p:mss:handle");async function Bo(t,e,r){e=Array.isArray(e)?e:[e];let{writer:n,reader:i,rest:s,stream:o}=Ji(t);for(;;){let a=await _s(i,r);if(Po('read "%s"',a),a===sn){Po('respond with "%s" for "%s"',sn,a),bi(n,q(sn),r);continue}if(e.includes(a))return bi(n,q(a),r),Po('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){bi(n,new $e(...e.map(c=>No(q(c)))),r),Po('respond with "%s" for %s',e,a);continue}bi(n,q("na"),r),Po('respond with "na" for "%s"',a)}}var Ah=C(Y(),1);var Rv=Symbol.for("@libp2p/connection");var II=M("libp2p:connection"),Ch=class{constructor(e){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,getStreams:o,stat:a}=e;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.stat={...a,status:Ra},this._newStream=i,this._close=s,this._getStreams=o,this.tags=[],this._closing=!1}get[Symbol.toStringTag](){return"Connection"}get[Rv](){return!0}get streams(){return this._getStreams()}async newStream(e,r){if(this.stat.status===Cl)throw(0,Ah.default)(new Error("the connection is being closed"),"ERR_CONNECTION_BEING_CLOSED");if(this.stat.status===Na)throw(0,Ah.default)(new Error("the connection is closed"),"ERR_CONNECTION_CLOSED");Array.isArray(e)||(e=[e]);let n=await this._newStream(e,r);return n.stat.direction="outbound",n}addStream(e){e.stat.direction="inbound"}removeStream(e){}async close(){if(!(this.stat.status===Na||this._closing)){this.stat.status=Cl;try{this.streams.forEach(e=>e.close())}catch(e){II.error(e)}this._closing=!0,await this._close(),this._closing=!1,this.stat.timeline.close=Date.now(),this.stat.status=Na}}};function Nv(t){return new Ch(t)}var qc=C(Y(),1);var TI=Symbol.for("@libp2p/topology");function Dv(t){return t!=null&&Boolean(t[TI])}var Ih=M("libp2p:registrar"),Th=32,Rh=64,Hc=class{constructor(e){this.topologies=new Map,this.handlers=new Map,this.components=e,this._onDisconnect=this._onDisconnect.bind(this),this._onProtocolChange=this._onProtocolChange.bind(this),this._onConnect=this._onConnect.bind(this),this.components.connectionManager.addEventListener("peer:disconnect",this._onDisconnect),this.components.connectionManager.addEventListener("peer:connect",this._onConnect),this.components.peerStore.addEventListener("change:protocols",this._onProtocolChange)}getProtocols(){return Array.from(new Set([...this.topologies.keys(),...this.handlers.keys()])).sort()}getHandler(e){let r=this.handlers.get(e);if(r==null)throw(0,qc.default)(new Error(`No handler registered for protocol ${e}`),b.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(e){let r=this.topologies.get(e);return r==null?[]:[...r.values()]}async handle(e,r,n){if(this.handlers.has(e))throw(0,qc.default)(new Error(`Handler already registered for protocol ${e}`),b.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=Er.bind({ignoreUndefined:!0})({maxInboundStreams:Th,maxOutboundStreams:Rh},n);this.handlers.set(e,{handler:r,options:i}),await this.components.peerStore.protoBook.add(this.components.peerId,[e])}async unhandle(e){let r=Array.isArray(e)?e:[e];r.forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.protoBook.remove(this.components.peerId,r)}async register(e,r){if(!Dv(r))throw Ih.error("topology must be an instance of interfaces/topology"),(0,qc.default)(new Error("topology must be an instance of interfaces/topology"),b.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(e);return i==null&&(i=new Map,this.topologies.set(e,i)),i.set(n,r),await r.setRegistrar(this),n}unregister(e){for(let[r,n]of this.topologies.entries())n.has(e)&&(n.delete(e),n.size===0&&this.topologies.delete(r))}_onDisconnect(e){let r=e.detail;this.components.peerStore.protoBook.get(r.remotePeer).then(n=>{for(let i of n){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onDisconnect(r.remotePeer)}}).catch(n=>{Ih.error(n)})}_onConnect(e){let r=e.detail;this.components.peerStore.protoBook.get(r.remotePeer).then(n=>{for(let i of n){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onConnect(r.remotePeer,r)}}).catch(n=>{Ih.error(n)})}_onProtocolChange(e){let{peerId:r,protocols:n,oldProtocols:i}=e.detail,s=i.filter(a=>!n.includes(a)),o=n.filter(a=>!i.includes(a));for(let a of s){let c=this.topologies.get(a);if(c!=null)for(let u of c.values())u.onDisconnect(r)}for(let a of o){let c=this.topologies.get(a);if(c!=null)for(let u of c.values()){let l=this.components.connectionManager.getConnections(r)[0];l!=null&&u.onConnect(r,l)}}}};var Nh=C(Vr(),1);var Dh=C(gr(),1),Pe=M("libp2p:upgrader");function RI(t,e){try{let{options:r}=e.getHandler(t);return r.maxInboundStreams}catch(r){if(r.code!==b.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return Th}function NI(t,e){try{let{options:r}=e.getHandler(t);return r.maxOutboundStreams}catch(r){if(r.code!==b.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return Rh}function Lv(t,e,r){let n=0;return r.streams.forEach(i=>{i.stat.direction===e&&i.stat.protocol===t&&n++}),n}var zc=class extends Ue{constructor(e,r){super(),this.components=e,this.connectionEncryption=new Map,r.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,r.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=r.inboundUpgradeTimeout}async upgradeInbound(e,r){if(!await this.components.connectionManager.acceptIncomingConnection(e))throw(0,at.default)(new Error("connection denied"),b.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=new Nh.TimeoutController(this.inboundUpgradeTimeout);try{(0,Dh.setMaxListeners)?.(1/0,u.signal)}catch{}try{let l=Lt(e,u.signal);if(e.source=l.source,e.sink=l.sink,await this.components.connectionGater.denyInboundConnection(e))throw(0,at.default)(new Error("The multiaddr connection is blocked by gater.acceptConnection"),b.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(e),Pe("starting the inbound connection upgrade");let f=e;if(r?.skipProtection!==!0){let d=this.components.connectionProtector;d!=null&&(Pe("protecting the inbound connection"),f=await d.protect(e))}try{if(i=f,r?.skipEncryption!==!0){if({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f),await this.components.connectionGater.denyInboundEncryptedConnection(s,{...f,...i}))throw(0,at.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED)}else{let d=e.remoteAddr.getPeerId();if(d==null)throw(0,at.default)(new Error("inbound connection that skipped encryption must have a peer id"),b.ERR_INVALID_MULTIADDR);let h=ae(d);c="native",s=h}if(o=i,r?.muxerFactory!=null)a=r.muxerFactory;else if(this.muxers.size>0){let d=await this._multiplexInbound({...f,...i},this.muxers);a=d.muxerFactory,o=d.stream}}catch(d){throw Pe.error("Failed to upgrade inbound connection",d),d}if(await this.components.connectionGater.denyInboundUpgradedConnection(s,{...f,...i}))throw(0,at.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED);return Pe("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:e,upgradedConn:o,muxerFactory:a,remotePeer:s})}finally{this.components.connectionManager.afterUpgradeInbound(),u.clear()}}async upgradeOutbound(e,r){let n=e.remoteAddr.getPeerId(),i;if(n!=null&&(i=ae(n),await this.components.connectionGater.denyOutboundConnection(i,e)))throw(0,at.default)(new Error("The multiaddr connection is blocked by connectionGater.denyOutboundConnection"),b.ERR_CONNECTION_INTERCEPTED);let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(e),Pe("Starting the outbound connection upgrade");let l=e;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(e))}try{if(s=l,r?.skipEncryption!==!0){if({conn:s,remotePeer:o,protocol:c}=await this._encryptOutbound(l,i),await this.components.connectionGater.denyOutboundEncryptedConnection(o,{...l,...s}))throw(0,at.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED)}else{if(i==null)throw(0,at.default)(new Error("Encryption was skipped but no peer id was passed"),b.ERR_INVALID_PEER);c="native",o=i}if(a=s,r?.muxerFactory!=null)u=r.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...l,...s},this.muxers);u=f.muxerFactory,a=f.stream}}catch(f){throw Pe.error("Failed to upgrade outbound connection",f),await e.close(f),f}if(await this.components.connectionGater.denyOutboundUpgradedConnection(o,{...l,...s}))throw(0,at.default)(new Error("The multiaddr connection is blocked by gater.acceptEncryptedConnection"),b.ERR_CONNECTION_INTERCEPTED);return Pe("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:e,upgradedConn:a,muxerFactory:u,remotePeer:o})}_createConnection(e){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a}=e,c,u,l;a!=null&&(c=a.createStreamMuxer({direction:n,onIncomingStream:h=>{l!=null&&Promise.resolve().then(async()=>{let p=this.components.registrar.getProtocols(),{stream:y,protocol:g}=await Bo(h,p);if(Pe("%s: incoming stream opened on %s",n,g),l==null)return;let E=RI(g,this.components.registrar);if(Lv(g,"inbound",l)===E){h.abort((0,at.default)(new Error(`Too many inbound protocol streams for protocol "${g}" - limit ${E}`),b.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS));return}h.source=y.source,h.sink=y.sink,h.stat.protocol=g,this.components.peerStore.protoBook.add(o,[g]).catch(_=>Pe.error(_)),l.addStream(h),this.components.metrics?.trackProtocolStream(h,l),this._onStream({connection:l,stream:h,protocol:g})}).catch(p=>{Pe.error(p),h.stat.timeline.close==null&&h.close()})},onStreamEnd:h=>{l?.removeStream(h.id)}}),u=async(h,p={})=>{if(c==null)throw(0,at.default)(new Error("Stream is not multiplexed"),b.ERR_MUXER_UNAVAILABLE);Pe("%s: starting new stream on %s",n,h);let y=await c.newStream(),g;try{if(p.signal==null){Pe("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",h),g=new Nh.TimeoutController(3e4),p.signal=g.signal;try{(0,Dh.setMaxListeners)?.(1/0,g.signal)}catch{}}let{stream:E,protocol:x}=await Lo(y,h,p),_=NI(x,this.components.registrar);if(Lv(x,"outbound",l)===_){let D=(0,at.default)(new Error(`Too many outbound protocol streams for protocol "${x}" - limit ${_}`),b.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw y.abort(D),D}return this.components.peerStore.protoBook.add(o,[x]).catch(D=>Pe.error(D)),y.source=E.source,y.sink=E.sink,y.stat.protocol=x,this.components.metrics?.trackProtocolStream(y,l),y}catch(E){throw Pe.error("could not create new stream",E),y.stat.timeline.close==null&&y.close(),E.code!=null?E:(0,at.default)(E,b.ERR_UNSUPPORTED_PROTOCOL)}finally{g?.clear()}},Promise.all([c.sink(s.source),s.sink(c.source)]).catch(h=>{Pe.error(h)}));let f=i.timeline;i.timeline=new Proxy(f,{set:(...h)=>(l!=null&&h[1]==="close"&&h[2]!=null&&f.close==null&&(async()=>{try{l.stat.status==="OPEN"&&await l.close()}catch(p){Pe.error(p)}finally{this.dispatchEvent(new X("connectionEnd",{detail:l}))}})().catch(p=>{Pe.error(p)}),Reflect.set(...h))}),i.timeline.upgraded=Date.now();let d=()=>{throw(0,at.default)(new Error("connection is not multiplexed"),b.ERR_CONNECTION_NOT_MULTIPLEXED)};return l=Nv({remoteAddr:i.remoteAddr,remotePeer:o,stat:{status:"OPEN",direction:n,timeline:i.timeline,multiplexer:c?.protocol,encryption:r},newStream:u??d,getStreams:()=>c!=null?c.streams:d(),close:async()=>{await i.close(),c?.close()}}),this.dispatchEvent(new X("connection",{detail:l})),l}_onStream(e){let{connection:r,stream:n,protocol:i}=e,{handler:s}=this.components.registrar.getHandler(i);s({connection:r,stream:n})}async _encryptInbound(e){let r=Array.from(this.connectionEncryption.keys());Pe("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await Bo(e,r,{writeBytes:!0}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return Pe("encrypting inbound connection..."),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw(0,at.default)(n,b.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(e,r){let n=Array.from(this.connectionEncryption.keys());Pe("selecting outbound crypto protocol",n);try{let{stream:i,protocol:s}=await Lo(e,n,{writeBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return Pe("encrypting outbound connection to %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw(0,at.default)(i,b.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(e,r){let n=Array.from(r.keys());Pe("outbound selecting muxer %s",n);try{let{stream:i,protocol:s}=await Lo(e,n,{writeBytes:!0});Pe("%s selected as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Pe.error("error multiplexing outbound stream",i),(0,at.default)(i,b.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(e,r){let n=Array.from(r.keys());Pe("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await Bo(e,n,{writeBytes:!0}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Pe.error("error multiplexing inbound stream",i),(0,at.default)(i,b.ERR_MUXER_UNAVAILABLE)}}};var _i=C(Y(),1);var Si;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.protocolVersion!=null&&(n.uint32(42),n.string(r.protocolVersion)),r.agentVersion!=null&&(n.uint32(50),n.string(r.agentVersion)),r.publicKey!=null&&(n.uint32(10),n.bytes(r.publicKey)),r.listenAddrs!=null)for(let s of r.listenAddrs)n.uint32(18),n.bytes(s);if(r.observedAddr!=null&&(n.uint32(34),n.bytes(r.observedAddr)),r.protocols!=null)for(let s of r.protocols)n.uint32(26),n.string(s);r.signedPeerRecord!=null&&(n.uint32(66),n.bytes(r.signedPeerRecord)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={listenAddrs:[],protocols:[]},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 5:i.protocolVersion=r.string();break;case 6:i.agentVersion=r.string();break;case 1:i.publicKey=r.bytes();break;case 2:i.listenAddrs.push(r.bytes());break;case 4:i.observedAddr=r.bytes();break;case 3:i.protocols.push(r.string());break;case 8:i.signedPeerRecord=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Si||(Si={}));var Bv=C(Y(),1);var Pv={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var Oo;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.publicKey!=null&&r.publicKey.byteLength>0)&&(n.uint32(10),n.bytes(r.publicKey)),(i.writeDefaults===!0||r.payloadType!=null&&r.payloadType.byteLength>0)&&(n.uint32(18),n.bytes(r.payloadType)),(i.writeDefaults===!0||r.payload!=null&&r.payload.byteLength>0)&&(n.uint32(26),n.bytes(r.payload)),(i.writeDefaults===!0||r.signature!=null&&r.signature.byteLength>0)&&(n.uint32(42),n.bytes(r.signature)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.publicKey=r.bytes();break;case 2:i.payloadType=r.bytes();break;case 3:i.payload=r.bytes();break;case 5:i.signature=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Oo||(Oo={}));var DI,ct=class{constructor(e){let{peerId:r,payloadType:n,payload:i,signature:s}=e;this.peerId=r,this.payloadType=n,this.payload=i,this.signature=s}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=Oo.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return Ae(this.marshal(),e.marshal())}async validate(e){let r=Ov(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return await _o(this.peerId.publicKey).verify(r.subarray(),this.signature)}};DI=ct;ct.createFromProtobuf=async t=>{let e=Oo.decode(t),r=await mn(e.publicKey);return new ct({peerId:r,payloadType:e.payloadType,payload:e.payload,signature:e.signature})};ct.seal=async(t,e)=>{if(e.privateKey==null)throw new Error("Missing private key");let r=t.domain,n=t.codec,i=t.marshal(),s=Ov(r,n,i),a=await(await bs(e.privateKey)).sign(s.subarray());return new ct({peerId:e,payloadType:n,payload:i,signature:a})};ct.openAndCertify=async(t,e)=>{let r=await ct.createFromProtobuf(t);if(!await r.validate(e))throw(0,Bv.default)(new Error("envelope signature is not valid for the given domain"),Pv.ERR_SIGNATURE_NOT_VALID);return r};var Ov=(t,e,r)=>{let n=q(t),i=ir.encode(n.byteLength),s=ir.encode(e.length),o=ir.encode(r.length);return new $e(i,n,s,e,o,r)};function kv(t,e){let r=(n,i)=>n.toString().localeCompare(i.toString());return t.length!==e.length?!1:(e.sort(r),t.sort(r).every((n,i)=>e[i].equals(n)))}var ko;(function(t){let e;(function(n){let i;n.codec=()=>(i==null&&(i=Ne((s,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),(a.writeDefaults===!0||s.multiaddr!=null&&s.multiaddr.byteLength>0)&&(o.uint32(10),o.bytes(s.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(s,o)=>{let a={multiaddr:new Uint8Array(0)},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let u=s.uint32();switch(u>>>3){case 1:a.multiaddr=s.bytes();break;default:s.skipType(u&7);break}}return a})),i),n.encode=s=>Re(s,n.codec()),n.decode=s=>Te(s,n.codec())})(e=t.AddressInfo||(t.AddressInfo={}));let r;t.codec=()=>(r==null&&(r=Ne((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),(s.writeDefaults===!0||n.peerId!=null&&n.peerId.byteLength>0)&&(i.uint32(10),i.bytes(n.peerId)),(s.writeDefaults===!0||n.seq!==0n)&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)i.uint32(26),t.AddressInfo.codec().encode(o,i,{writeDefaults:!0});s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},o=i==null?n.len:n.pos+i;for(;n.pos<o;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(t.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),t.encode=n=>Re(n,t.codec()),t.decode=n=>Te(n,t.codec())})(ko||(ko={}));var Uv="libp2p-peer-record",Mv=Uint8Array.from([3,1]);var rt=class{constructor(e){this.domain=rt.DOMAIN,this.codec=rt.CODEC;let{peerId:r,multiaddrs:n,seqNumber:i}=e;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=ko.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof rt)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!kv(this.multiaddrs,e.multiaddrs))}};rt.createFromProtobuf=t=>{let e=ko.decode(t),r=pn(e.peerId),n=(e.addresses??[]).map(s=>oe(s.multiaddr)),i=e.seq;return new rt({peerId:r,multiaddrs:n,seqNumber:i})};rt.DOMAIN=Uv;rt.CODEC=Mv;var $c="0.0.0",Fv="libp2p";var Lh=`js-libp2p/${$c}`;var Kv="0.1.0",Vv="id",qv="id/push",Hv="1.0.0",zv="1.0.0";var Uo=C(Vr(),1);var Mo=C(gr(),1),Ce=M("libp2p:identify"),$v=1024*8,As=class{constructor(e,r){this.components=e,this.started=!1,this.init=r,this.identifyProtocolStr=`/${r.protocolPrefix}/${Vv}/${Hv}`,this.identifyPushProtocolStr=`/${r.protocolPrefix}/${qv}/${zv}`,this.host={protocolVersion:`${r.protocolPrefix}/${Kv}`,...r.host},this.components.connectionManager.addEventListener("peer:connect",n=>{let i=n.detail;this.identify(i).catch(Ce.error)}),this.components.peerStore.addEventListener("change:multiaddrs",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(s=>Ce.error(s))}),this.components.peerStore.addEventListener("change:protocols",n=>{let{peerId:i}=n.detail;this.components.peerId.equals(i)&&this.pushToPeerStore().catch(s=>Ce.error(s))})}isStarted(){return this.started}async start(){this.started||(await this.components.peerStore.metadataBook.setValue(this.components.peerId,"AgentVersion",q(this.host.agentVersion)),await this.components.peerStore.metadataBook.setValue(this.components.peerId,"ProtocolVersion",q(this.host.protocolVersion)),await this.components.registrar.handle(this.identifyProtocolStr,e=>{this._handleIdentify(e).catch(r=>{Ce.error(r)})},{maxInboundStreams:this.init.maxInboundStreams,maxOutboundStreams:this.init.maxOutboundStreams}),await this.components.registrar.handle(this.identifyPushProtocolStr,e=>{this._handlePush(e).catch(r=>{Ce.error(r)})},{maxInboundStreams:this.init.maxPushIncomingStreams,maxOutboundStreams:this.init.maxPushOutgoingStreams}),this.started=!0)}async stop(){await this.components.registrar.unhandle(this.identifyProtocolStr),await this.components.registrar.unhandle(this.identifyPushProtocolStr),this.started=!1}async push(e){let r=await this.components.peerStore.addressBook.getRawEnvelope(this.components.peerId),n=this.components.addressManager.getAddresses().map(o=>o.bytes),i=await this.components.peerStore.protoBook.get(this.components.peerId),s=e.map(async o=>{let a,c=new Uo.TimeoutController(this.init.timeout);try{(0,Mo.setMaxListeners)?.(1/0,c.signal)}catch{}try{a=await o.newStream([this.identifyPushProtocolStr],{signal:c.signal}),await Lt(a,c.signal).sink(Ie([Si.encode({listenAddrs:n,signedPeerRecord:r,protocols:i})],Ht()))}catch(u){Ce.error("could not push identify update to peer",u)}finally{a?.close(),c.clear()}});await Promise.all(s)}async pushToPeerStore(){if(!this.isStarted())return;let e=[];for(let r of this.components.connectionManager.getConnections()){let n=r.remotePeer;(await this.components.peerStore.get(n)).protocols.includes(this.identifyPushProtocolStr)&&e.push(r)}await this.push(e)}async _identify(e,r={}){let n,i=r.signal,s;if(i==null){n=new Uo.TimeoutController(this.init.timeout),i=n.signal;try{(0,Mo.setMaxListeners)?.(1/0,n.signal)}catch{}}try{s=await e.newStream([this.identifyProtocolStr],{signal:i});let o=Lt(s,i),a=await Ie([],o,Bt({maxDataLength:this.init.maxIdentifyMessageSize??$v}),async c=>await Nt(c));if(a==null)throw(0,_i.default)(new Error("No data could be retrieved"),b.ERR_CONNECTION_ENDED);try{return Si.decode(a)}catch(c){throw(0,_i.default)(c,b.ERR_INVALID_MESSAGE)}}finally{n?.clear(),s?.close()}}async identify(e,r={}){let n=await this._identify(e,r),{publicKey:i,listenAddrs:s,protocols:o,observedAddr:a,signedPeerRecord:c,agentVersion:u,protocolVersion:l}=n;if(i==null)throw(0,_i.default)(new Error("public key was missing from identify message"),b.ERR_MISSING_PUBLIC_KEY);let f=await mn(i);if(!e.remotePeer.equals(f))throw(0,_i.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(this.components.peerId.equals(f))throw(0,_i.default)(new Error("identified peer is our own peer id?"),b.ERR_INVALID_PEER);let d=As.getCleanMultiaddr(a);if(c!=null){Ce("received signed peer record from %p",f);try{let h=await ct.openAndCertify(c,rt.DOMAIN);if(!h.peerId.equals(f))throw(0,_i.default)(new Error("identified peer does not match the expected peer"),b.ERR_INVALID_PEER);if(await this.components.peerStore.addressBook.consumePeerRecord(h)){await this.components.peerStore.protoBook.set(f,o),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",q(u)),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",q(l)),Ce("identify completed for peer %p and protocols %o",f,o);return}}catch(h){Ce("received invalid envelope, discard it and fallback to listenAddrs is available",h)}}else Ce("no signed peer record received from %p",f);Ce("falling back to legacy addresses from %p",f);try{await this.components.peerStore.addressBook.set(f,s.map(h=>oe(h)))}catch(h){Ce.error("received invalid addrs",h)}await this.components.peerStore.protoBook.set(f,o),u!=null&&await this.components.peerStore.metadataBook.setValue(f,"AgentVersion",q(u)),l!=null&&await this.components.peerStore.metadataBook.setValue(f,"ProtocolVersion",q(l)),Ce("identify completed for peer %p and protocols %o",f,o),Ce("received observed address of %s",d?.toString())}async _handleIdentify(e){let{connection:r,stream:n}=e,i=new Uo.TimeoutController(this.init.timeout);try{(0,Mo.setMaxListeners)?.(1/0,i.signal)}catch{}try{let s=this.components.peerId.publicKey??new Uint8Array(0),o=await this.components.peerStore.get(this.components.peerId),a=this.components.addressManager.getAddresses().map(d=>d.decapsulateCode(xe("p2p").code)),c=o.peerRecordEnvelope;if(a.length>0&&c==null){let d=new rt({peerId:this.components.peerId,multiaddrs:a}),h=await ct.seal(d,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(h),c=h.marshal().subarray()}let u=Si.encode({protocolVersion:this.host.protocolVersion,agentVersion:this.host.agentVersion,publicKey:s,listenAddrs:a.map(d=>d.bytes),signedPeerRecord:c,observedAddr:r.remoteAddr.bytes,protocols:o.protocols}),l=Lt(n,i.signal),f=Ie([u],Ht());await l.sink(f)}catch(s){Ce.error("could not respond to identify request",s)}finally{n.close(),i.clear()}}async _handlePush(e){let{connection:r,stream:n}=e,i=new Uo.TimeoutController(this.init.timeout);try{(0,Mo.setMaxListeners)?.(1/0,i.signal)}catch{}let s;try{let a=Lt(n,i.signal),c=await Ie([],a,Bt({maxDataLength:this.init.maxIdentifyMessageSize??$v}),async u=>await Nt(u));c!=null&&(s=Si.decode(c))}catch(a){return Ce.error("received invalid message",a)}finally{n.close(),i.clear()}if(s==null)return Ce.error("received invalid message");let o=r.remotePeer;if(this.components.peerId.equals(o)){Ce("received push from ourselves?");return}if(Ce("received push from %p",o),s.signedPeerRecord!=null){Ce("received signedPeerRecord in push");try{let a=await ct.openAndCertify(s.signedPeerRecord,rt.DOMAIN);if(await this.components.peerStore.addressBook.consumePeerRecord(a)){Ce("consumed signedPeerRecord sent in push"),await this.components.peerStore.protoBook.set(o,s.protocols);return}else Ce("failed to consume signedPeerRecord sent in push")}catch(a){Ce("received invalid envelope, discard it and fallback to listenAddrs is available",a)}}else Ce("did not receive signedPeerRecord in push");try{await this.components.peerStore.addressBook.set(o,s.listenAddrs.map(a=>oe(a)))}catch(a){Ce.error("received invalid addrs",a)}try{await this.components.peerStore.protoBook.set(o,s.protocols)}catch(a){Ce.error("received invalid protocols",a)}Ce("handled push from %p",o)}static getCleanMultiaddr(e){if(e!=null&&e.length>0)try{return oe(e)}catch{}}};var Cs=C(Y(),1);var Fo;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.identifier!=="")&&(n.uint32(10),n.string(r.identifier)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={identifier:""},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.identifier=r.string();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Fo||(Fo={}));var fr;(function(t){let e;(function(i){i.OK="OK",i.NOT_FOUND="NOT_FOUND",i.ERROR="ERROR"})(e=t.StatusCode||(t.StatusCode={}));let r;(function(i){i[i.OK=0]="OK",i[i.NOT_FOUND=1]="NOT_FOUND",i[i.ERROR=2]="ERROR"})(r||(r={})),function(i){i.codec=()=>wn(r)}(e=t.StatusCode||(t.StatusCode={}));let n;t.codec=()=>(n==null&&(n=Ne((i,s,o={})=>{o.lengthDelimited!==!1&&s.fork(),(o.writeDefaults===!0||i.status!=null&&r[i.status]!==0)&&(s.uint32(8),t.StatusCode.codec().encode(i.status,s)),(o.writeDefaults===!0||i.data!=null&&i.data.byteLength>0)&&(s.uint32(18),s.bytes(i.data)),o.lengthDelimited!==!1&&s.ldelim()},(i,s)=>{let o={status:e.OK,data:new Uint8Array(0)},a=s==null?i.len:i.pos+s;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:o.status=t.StatusCode.codec().decode(i);break;case 2:o.data=i.bytes();break;default:i.skipType(c&7);break}}return o})),n),t.encode=i=>Re(i,t.codec()),t.decode=i=>Te(i,t.codec())})(fr||(fr={}));var Gv="0.0.1",Yv="fetch";var Wv=C(Vr(),1),Qv=C(gr(),1);var Xt=M("libp2p:fetch"),Gc=class{constructor(e,r){this.started=!1,this.components=e,this.protocol=`/${r.protocolPrefix??"libp2p"}/${Yv}/${Gv}`,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=>{Xt.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={}){Xt("dialing %s to %p",this.protocol,e);let i=await this.components.connectionManager.openConnection(e,n),s,o=n.signal,a;if(o==null){Xt("using default timeout of %d ms",this.init.timeout),s=new Wv.TimeoutController(this.init.timeout),o=s.signal;try{(0,Qv.setMaxListeners)?.(1/0,s.signal)}catch{}}try{a=await i.newStream(this.protocol,{signal:o});let c=Lt(a,o);return Xt("fetch %s",r),await Ie([Fo.encode({identifier:r})],Ht(),c,Bt(),async function(l){let f=await Nt(l);if(f==null)throw(0,Cs.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let d=fr.decode(f);switch(d.status){case fr.StatusCode.OK:return Xt("received status for %s ok",r),d.data;case fr.StatusCode.NOT_FOUND:return Xt("received status for %s not found",r),null;case fr.StatusCode.ERROR:{Xt("received status for %s error",r);let h=Q(d.data);throw(0,Cs.default)(new Error("Error in fetch protocol response: "+h),b.ERR_INVALID_PARAMETERS)}default:throw Xt("received status for %s unknown",r),(0,Cs.default)(new Error("Unknown response status"),b.ERR_INVALID_MESSAGE)}})??null}finally{s?.clear(),a?.close()}}async handleMessage(e){let{stream:r}=e,n=this;await Ie(r,Bt(),async function*(i){let s=await Nt(i);if(s==null)throw(0,Cs.default)(new Error("No data received"),b.ERR_INVALID_MESSAGE);let o=Fo.decode(s),a,c=n._getLookupFunction(o.identifier);if(c!=null){Xt("look up data with identifier %s",o.identifier);let u=await c(o.identifier);u!=null?(Xt("sending status for %s ok",o.identifier),a={status:fr.StatusCode.OK,data:u}):(Xt("sending status for %s not found",o.identifier),a={status:fr.StatusCode.NOT_FOUND,data:new Uint8Array(0)})}else{Xt("sending status for %s error",o.identifier);let u=q(`No lookup function registered for key: ${o.identifier}`);a={status:fr.StatusCode.ERROR,data:u}}yield fr.encode(a)},Ht(),r)}_getLookupFunction(e){for(let r of this.lookupFunctions.keys())if(e.startsWith(r))return this.lookupFunctions.get(r)}registerLookupFunction(e,r){if(this.lookupFunctions.has(e))throw(0,Cs.default)(new Error("Fetch protocol handler for key prefix '"+e+"' already registered"),b.ERR_KEY_ALREADY_EXISTS);this.lookupFunctions.set(e,r)}unregisterLookupFunction(e,r){r!=null&&this.lookupFunctions.get(e)!==r||this.lookupFunctions.delete(e)}};var Jv=C(Y(),1);var Xv="1.0.0",jv="ping";var ew=C(Vr(),1),tw=C(gr(),1),Zv=M("libp2p:ping"),Yc=class{constructor(e,r){this.components=e,this.started=!1,this.protocol=`/${r.protocolPrefix}/${jv}/${Xv}`,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;Ie(r,r).catch(n=>{Zv.error(n)})}async ping(e,r={}){Zv("dialing %s to %p",this.protocol,e);let n=Date.now(),i=Zr(32),s=await this.components.connectionManager.openConnection(e,r),o,a=r.signal,c;if(a==null){o=new ew.TimeoutController(this.init.timeout),a=o.signal;try{(0,tw.setMaxListeners)?.(1/0,o.signal)}catch{}}try{c=await s.newStream([this.protocol],{signal:a});let u=Lt(c,a),l=await Ie([i],u,async d=>await Nt(d)),f=Date.now();if(l==null||!Ae(i,l.subarray()))throw(0,Jv.default)(new Error("Received wrong ping ack"),b.ERR_WRONG_PING_ACK);return f-n}finally{o?.clear(),c?.close()}}};async function rw(){throw new Error("Not supported in browsers")}var sw=C(iw(),1),Ph=typeof window=="object"&&typeof document=="object"&&document.nodeType===9,Wc=(0,sw.default)(),Ko=Ph&&!Wc,ow=Wc&&!Ph,aw=Wc&&Ph,cw=typeof globalThis.process<"u"&&typeof globalThis.process.release<"u"&&globalThis.process.release.name==="node"&&!Wc,uw=typeof importScripts=="function"&&typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,m6=typeof globalThis.process<"u"&&typeof globalThis.process.env<"u"&&globalThis.process.env["NODE"+(()=>"_")()+"ENV"]==="test",lw=typeof navigator<"u"&&navigator.product==="ReactNative";var dw=C(Y(),1);function fw(t){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(t)||/^::1$/.test(t)}function hw(t){let{address:e}=t.nodeAddress();return fw(e)}var Bh=M("libp2p:nat"),Oh=7200;function OI(t=1024,e=65535){return Math.floor(Math.random()*(e-t+1)+t)}var Qc=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??`${Fv}@${$c} ${this.components.peerId.toString()}`,this.ttl=r.ttl??Oh,this.keepAlive=r.keepAlive??!0,this.gateway=r.gateway,this.ttl<Oh)throw(0,dw.default)(new Error(`NatManager ttl should be at least ${Oh} seconds`),b.ERR_INVALID_PARAMETERS)}isStarted(){return this.started}start(){}afterStart(){Ko||!this.enabled||this.started||(this.started=!0,this._start().catch(e=>{Bh.error(e)}))}async _start(){let e=this.components.transportManager.getAddrs();for(let r of e){let{family:n,host:i,port:s,transport:o}=r.toOptions();if(!r.isThinWaistAddress()||o!=="tcp"||hw(r)||n!==4)continue;let a=await this._getClient(),c=this.externalAddress??await a.externalIp(),u=Ja(c);if(u===!0)throw new Error(`${c} is private - please set config.nat.externalIp to an externally routable IP or ensure you are not behind a double NAT`);if(u==null)throw new Error(`${c} is not an IP address`);let l=OI();Bh(`opening uPnP connection from ${c}:${l} to ${i}:${s}`),await a.map({publicPort:l,localPort:s,localAddress:this.localAddress,protocol:o.toUpperCase()==="TCP"?"TCP":"UDP"}),this.components.addressManager.addObservedAddr(xp({family:4,address:c,port:l},o))}}async _getClient(){return this.client!=null?this.client:(this.client=await rw({description:this.description,ttl:this.ttl,keepAlive:this.keepAlive,gateway:this.gateway}),this.client)}async stop(){if(!(Ko||this.client==null))try{await this.client.close(),this.client=void 0}catch(e){Bh.error(e)}}};var kI=M("libp2p:peer-record-updater"),Xc=class{constructor(e){this.components=e,this.started=!1,this.update=this.update.bind(this)}isStarted(){return this.started}async start(){this.started=!0,this.components.transportManager.addEventListener("listener:listening",this.update),this.components.transportManager.addEventListener("listener:close",this.update),this.components.addressManager.addEventListener("change:addresses",this.update)}async stop(){this.started=!1,this.components.transportManager.removeEventListener("listener:listening",this.update),this.components.transportManager.removeEventListener("listener:close",this.update),this.components.addressManager.removeEventListener("change:addresses",this.update)}update(){Promise.resolve().then(async()=>{let e=new rt({peerId:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(n=>n.decapsulateCode(xe("p2p").code))}),r=await ct.seal(e,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(r)}).catch(e=>{kI.error("Could not update self peer record: %o",e)})}};var pw=C(Y(),1);var jc=class{constructor(e){this.dht=e}async findPeer(e,r={}){for await(let n of this.dht.findPeer(e,r))if(n.name==="FINAL_PEER")return n.peer;throw(0,pw.default)(new Error(ne.NOT_FOUND),b.ERR_NOT_FOUND)}async*getClosestPeers(e,r={}){for await(let n of this.dht.getClosestPeers(e,r))n.name==="FINAL_PEER"&&(yield n.peer)}};var Jc=C(Y(),1);var re={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS",ERR_NOT_FOUND:"ERR_NOT_FOUND"};async function*kh(t,e){for await(let r of t)await e(r),yield r}var _e=M("libp2p:peer-store:address-book"),Zc="change:multiaddrs";async function UI(){return!0}var eu=class{constructor(e,r,n){this.dispatchEvent=e,this.store=r,this.addressFilter=n??UI}async consumePeerRecord(e){_e.trace("consumePeerRecord await write lock");let r=await this.store.lock.writeLock();_e.trace("consumePeerRecord got write lock");let n,i,s;try{let o;try{o=rt.createFromProtobuf(e.payload)}catch{return _e.error("invalid peer record received"),!1}n=o.peerId;let a=o.multiaddrs;if(!n.equals(e.peerId))return _e("signing key does not match PeerId in the PeerRecord"),!1;if(a==null||a.length===0)return!1;if(await this.store.has(n)&&(i=await this.store.load(n),i.peerRecordEnvelope!=null)){let u=await ct.createFromProtobuf(i.peerRecordEnvelope),l=rt.createFromProtobuf(u.payload);if(l.seqNumber>=o.seqNumber)return _e("sequence number was lower or equal to existing sequence number - stored: %d received: %d",l.seqNumber,o.seqNumber),!1}let c=await Uh(n,a,this.addressFilter,!0);s=await this.store.patchOrCreate(n,{addresses:c,peerRecordEnvelope:e.marshal().subarray()}),_e("stored provided peer record for %p",o.peerId)}finally{_e.trace("consumePeerRecord release write lock"),r()}return this.dispatchEvent(new X(Zc,{detail:{peerId:n,multiaddrs:s.addresses.map(({multiaddr:o})=>o),oldMultiaddrs:i==null?[]:i.addresses.map(({multiaddr:o})=>o)}})),!0}async getRawEnvelope(e){_e.trace("getRawEnvelope await read lock");let r=await this.store.lock.readLock();_e.trace("getRawEnvelope got read lock");try{return(await this.store.load(e)).peerRecordEnvelope}catch(n){if(n.code!==re.ERR_NOT_FOUND)throw n}finally{_e.trace("getRawEnvelope release read lock"),r()}}async getPeerRecord(e){let r=await this.getRawEnvelope(e);if(r!=null)return await ct.createFromProtobuf(r)}async get(e){e=Xe(e),_e.trace("get wait for read lock");let r=await this.store.lock.readLock();_e.trace("get got read lock");try{return(await this.store.load(e)).addresses}catch(n){if(n.code!==re.ERR_NOT_FOUND)throw n}finally{_e.trace("get release read lock"),r()}return[]}async set(e,r){if(e=Xe(e),!Array.isArray(r))throw _e.error("multiaddrs must be an array of Multiaddrs"),(0,Jc.default)(new Error("multiaddrs must be an array of Multiaddrs"),re.ERR_INVALID_PARAMETERS);_e.trace("set await write lock");let n=await this.store.lock.writeLock();_e.trace("set got write lock");let i=!1,s,o;try{let a=await Uh(e,r,this.addressFilter);if(a.length===0)return;try{if(s=await this.store.load(e),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...s.addresses.map(({multiaddr:c})=>c.toString())]).size===s.addresses.length&&a.length===s.addresses.length)return}catch(c){if(c.code!==re.ERR_NOT_FOUND)throw c}o=await this.store.patchOrCreate(e,{addresses:a}),_e("set multiaddrs for %p",e)}finally{_e.trace("set multiaddrs for %p",e),_e("set release write lock"),n()}this.dispatchEvent(new X(Zc,{detail:{peerId:e,multiaddrs:o.addresses.map(a=>a.multiaddr),oldMultiaddrs:s==null?[]:s.addresses.map(({multiaddr:a})=>a)}})),i||this.dispatchEvent(new X("peer",{detail:{id:e,multiaddrs:o.addresses.map(a=>a.multiaddr),protocols:o.protocols}}))}async add(e,r){if(e=Xe(e),!Array.isArray(r))throw _e.error("multiaddrs must be an array of Multiaddrs"),(0,Jc.default)(new Error("multiaddrs must be an array of Multiaddrs"),re.ERR_INVALID_PARAMETERS);_e.trace("add await write lock");let n=await this.store.lock.writeLock();_e.trace("add got write lock");let i,s,o;try{let a=await Uh(e,r,this.addressFilter);if(a.length===0)return;try{if(s=await this.store.load(e),i=!0,new Set([...a.map(({multiaddr:c})=>c.toString()),...s.addresses.map(({multiaddr:c})=>c.toString())]).size===s.addresses.length)return}catch(c){if(c.code!==re.ERR_NOT_FOUND)throw c}o=await this.store.mergeOrCreate(e,{addresses:a}),_e("added multiaddrs for %p",e)}finally{_e.trace("set release write lock"),n()}this.dispatchEvent(new X(Zc,{detail:{peerId:e,multiaddrs:o.addresses.map(a=>a.multiaddr),oldMultiaddrs:s==null?[]:s.addresses.map(({multiaddr:a})=>a)}})),i===!0&&this.dispatchEvent(new X("peer",{detail:{id:e,multiaddrs:o.addresses.map(a=>a.multiaddr),protocols:o.protocols}}))}async delete(e){e=Xe(e),_e.trace("delete await write lock");let r=await this.store.lock.writeLock();_e.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(e,{addresses:[]})}finally{_e.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new X(Zc,{detail:{peerId:e,multiaddrs:[],oldMultiaddrs:n==null?[]:n.addresses.map(({multiaddr:i})=>i)}}))}};async function Uh(t,e,r,n=!1){return await Ie(e,i=>kh(i,s=>{if(!Kt(s))throw _e.error("multiaddr must be an instance of Multiaddr"),(0,Jc.default)(new Error("multiaddr must be an instance of Multiaddr"),re.ERR_INVALID_PARAMETERS)}),i=>mt(i,async s=>await r(t,s)),i=>Us(i,s=>({multiaddr:s,isCertified:n})),async i=>await er(i))}var yw=C(Y(),1);var Pr=M("libp2p:peer-store:key-book"),mw="change:pubkey",tu=class{constructor(e,r){this.dispatchEvent=e,this.store=r}async set(e,r){if(e=Xe(e),!(r instanceof Uint8Array))throw Pr.error("publicKey must be an instance of Uint8Array to store data"),(0,yw.default)(new Error("publicKey must be an instance of PublicKey"),re.ERR_INVALID_PARAMETERS);Pr.trace("set await write lock");let n=await this.store.lock.writeLock();Pr.trace("set got write lock");let i=!1,s;try{try{if(s=await this.store.load(e),s.pubKey!=null&&Ae(s.pubKey,r))return}catch(o){if(o.code!==re.ERR_NOT_FOUND)throw o}await this.store.patchOrCreate(e,{pubKey:r}),i=!0}finally{Pr.trace("set release write lock"),n()}i&&this.dispatchEvent(new X(mw,{detail:{peerId:e,publicKey:r,oldPublicKey:s?.pubKey}}))}async get(e){e=Xe(e),Pr.trace("get await write lock");let r=await this.store.lock.readLock();Pr.trace("get got write lock");try{return(await this.store.load(e)).pubKey}catch(n){if(n.code!==re.ERR_NOT_FOUND)throw n}finally{Pr("get release write lock"),r()}}async delete(e){e=Xe(e),Pr.trace("delete await write lock");let r=await this.store.lock.writeLock();Pr.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(e,{pubKey:void 0})}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}finally{Pr.trace("delete release write lock"),r()}this.dispatchEvent(new X(mw,{detail:{peerId:e,publicKey:void 0,oldPublicKey:n?.pubKey}}))}};var Mh=C(Y(),1);var nt=M("libp2p:peer-store:metadata-book"),ru="change:metadata",nu=class{constructor(e,r){this.dispatchEvent=e,this.store=r}async get(e){e=Xe(e),nt.trace("get await read lock");let r=await this.store.lock.readLock();nt.trace("get got read lock");try{return(await this.store.load(e)).metadata}catch(n){if(n.code!==re.ERR_NOT_FOUND)throw n}finally{nt.trace("get release read lock"),r()}return new Map}async getValue(e,r){e=Xe(e),nt.trace("getValue await read lock");let n=await this.store.lock.readLock();nt.trace("getValue got read lock");try{return(await this.store.load(e)).metadata.get(r)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}finally{nt.trace("getValue release write lock"),n()}}async set(e,r){if(e=Xe(e),!(r instanceof Map))throw nt.error("valid metadata must be provided to store data"),(0,Mh.default)(new Error("valid metadata must be provided"),re.ERR_INVALID_PARAMETERS);nt.trace("set await write lock");let n=await this.store.lock.writeLock();nt.trace("set got write lock");let i;try{try{i=await this.store.load(e)}catch(s){if(s.code!==re.ERR_NOT_FOUND)throw s}await this.store.mergeOrCreate(e,{metadata:r})}finally{nt.trace("set release write lock"),n()}this.dispatchEvent(new X(ru,{detail:{peerId:e,metadata:r,oldMetadata:i==null?new Map:i.metadata}}))}async setValue(e,r,n){if(e=Xe(e),typeof r!="string"||!(n instanceof Uint8Array))throw nt.error("valid key and value must be provided to store data"),(0,Mh.default)(new Error("valid key and value must be provided"),re.ERR_INVALID_PARAMETERS);nt.trace("setValue await write lock");let i=await this.store.lock.writeLock();nt.trace("setValue got write lock");let s,o;try{try{s=await this.store.load(e);let a=s.metadata.get(r);if(a!=null&&Ae(n,a))return}catch(a){if(a.code!==re.ERR_NOT_FOUND)throw a}o=await this.store.mergeOrCreate(e,{metadata:new Map([[r,n]])})}finally{nt.trace("setValue release write lock"),i()}this.dispatchEvent(new X(ru,{detail:{peerId:e,metadata:o.metadata,oldMetadata:s==null?new Map:s.metadata}}))}async delete(e){e=Xe(e),nt.trace("delete await write lock");let r=await this.store.lock.writeLock();nt.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}n!=null&&await this.store.patch(e,{metadata:new Map})}finally{nt.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new X(ru,{detail:{peerId:e,metadata:new Map,oldMetadata:n.metadata}}))}async deleteValue(e,r){e=Xe(e),nt.trace("deleteValue await write lock");let n=await this.store.lock.writeLock();nt.trace("deleteValue got write lock");let i,s;try{s=await this.store.load(e),i=s.metadata,i.delete(r),await this.store.patch(e,{metadata:i})}catch(o){if(o.code!==re.ERR_NOT_FOUND)throw o}finally{nt.trace("deleteValue release write lock"),n()}i!=null&&this.dispatchEvent(new X(ru,{detail:{peerId:e,metadata:i,oldMetadata:s==null?new Map:s.metadata}}))}};var su=C(Y(),1);var it=M("libp2p:peer-store:proto-book"),iu="change:protocols",ou=class{constructor(e,r){this.dispatchEvent=e,this.store=r}async get(e){it.trace("get wait for read lock");let r=await this.store.lock.readLock();it.trace("get got read lock");try{return(await this.store.load(e)).protocols}catch(n){if(n.code!==re.ERR_NOT_FOUND)throw n}finally{it.trace("get release read lock"),r()}return[]}async set(e,r){if(e=Xe(e),!Array.isArray(r))throw it.error("protocols must be provided to store data"),(0,su.default)(new Error("protocols must be provided"),re.ERR_INVALID_PARAMETERS);it.trace("set await write lock");let n=await this.store.lock.writeLock();it.trace("set got write lock");let i,s;try{try{if(i=await this.store.load(e),new Set([...r]).size===i.protocols.length)return}catch(o){if(o.code!==re.ERR_NOT_FOUND)throw o}s=await this.store.patchOrCreate(e,{protocols:r}),it("stored provided protocols for %p",e)}finally{it.trace("set release write lock"),n()}this.dispatchEvent(new X(iu,{detail:{peerId:e,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async add(e,r){if(e=Xe(e),!Array.isArray(r))throw it.error("protocols must be provided to store data"),(0,su.default)(new Error("protocols must be provided"),re.ERR_INVALID_PARAMETERS);it.trace("add await write lock");let n=await this.store.lock.writeLock();it.trace("add got write lock");let i,s;try{try{if(i=await this.store.load(e),new Set([...i.protocols,...r]).size===i.protocols.length)return}catch(o){if(o.code!==re.ERR_NOT_FOUND)throw o}s=await this.store.mergeOrCreate(e,{protocols:r}),it("added provided protocols for %p",e)}finally{it.trace("add release write lock"),n()}this.dispatchEvent(new X(iu,{detail:{peerId:e,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async remove(e,r){if(e=Xe(e),!Array.isArray(r))throw it.error("protocols must be provided to store data"),(0,su.default)(new Error("protocols must be provided"),re.ERR_INVALID_PARAMETERS);it.trace("remove await write lock");let n=await this.store.lock.writeLock();it.trace("remove got write lock");let i,s;try{try{i=await this.store.load(e);let o=new Set(i.protocols);for(let a of r)o.delete(a);if(i.protocols.length===o.size)return;r=Array.from(o)}catch(o){if(o.code!==re.ERR_NOT_FOUND)throw o}s=await this.store.patchOrCreate(e,{protocols:r})}finally{it.trace("remove release write lock"),n()}this.dispatchEvent(new X(iu,{detail:{peerId:e,protocols:s.protocols,oldProtocols:i==null?[]:i.protocols}}))}async delete(e){e=Xe(e),it.trace("delete await write lock");let r=await this.store.lock.writeLock();it.trace("delete got write lock");let n;try{try{n=await this.store.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i}await this.store.patchOrCreate(e,{protocols:[]})}finally{it.trace("delete release write lock"),r()}n!=null&&this.dispatchEvent(new X(iu,{detail:{peerId:e,protocols:[],oldProtocols:n.protocols}}))}};var id=C(Y(),1);var Vo;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.addresses!=null)for(let s of r.addresses)n.uint32(10),au.codec().encode(s,n,{writeDefaults:!0});if(r.protocols!=null)for(let s of r.protocols)n.uint32(18),n.string(s);if(r.metadata!=null)for(let s of r.metadata)n.uint32(26),cu.codec().encode(s,n,{writeDefaults:!0});r.pubKey!=null&&(n.uint32(34),n.bytes(r.pubKey)),r.peerRecordEnvelope!=null&&(n.uint32(42),n.bytes(r.peerRecordEnvelope)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={addresses:[],protocols:[],metadata:[]},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.addresses.push(au.codec().decode(r,r.uint32()));break;case 2:i.protocols.push(r.string());break;case 3:i.metadata.push(cu.codec().decode(r,r.uint32()));break;case 4:i.pubKey=r.bytes();break;case 5:i.peerRecordEnvelope=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Vo||(Vo={}));var au;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.multiaddr!=null&&r.multiaddr.byteLength>0)&&(n.uint32(10),n.bytes(r.multiaddr)),r.isCertified!=null&&(n.uint32(16),n.bool(r.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={multiaddr:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.multiaddr=r.bytes();break;case 2:i.isCertified=r.bool();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(au||(au={}));var cu;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.key!=="")&&(n.uint32(10),n.string(r.key)),(i.writeDefaults===!0||r.value!=null&&r.value.byteLength>0)&&(n.uint32(18),n.bytes(r.value)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={key:"",value:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.key=r.string();break;case 2:i.value=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(cu||(cu={}));var Iw=C(Ew(),1);var Ho=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Kh=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},vw=t=>globalThis.DOMException===void 0?new Kh(t):new DOMException(t),ww=t=>{let e=t.reason===void 0?vw("This operation was aborted."):t.reason;return e instanceof Error?e:vw(e)};function Vh(t,e,r,n){let i,s=new Promise((o,a)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(e===Number.POSITIVE_INFINITY){o(t);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(ww(c)),c.addEventListener("abort",()=>{a(ww(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{o(r())}catch(l){a(l)}return}let c=typeof r=="string"?r:`Promise timed out after ${e} milliseconds`,u=r instanceof Error?r:new Ho(c);typeof t.cancel=="function"&&t.cancel(),a(u)},e),(async()=>{try{o(await t)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function qh(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var Ai=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},on,zo=class{constructor(){on.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&Ai(this,on,"f")[this.size-1].priority>=r.priority){Ai(this,on,"f").push(n);return}let i=qh(Ai(this,on,"f"),n,(s,o)=>o.priority-s.priority);Ai(this,on,"f").splice(i,0,n)}dequeue(){let e=Ai(this,on,"f").shift();return e?.run}filter(e){return Ai(this,on,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return Ai(this,on,"f").length}};on=new WeakMap;var qe=function(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r},V=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Ze,Go,Yo,Fn,mu,Wo,lu,hr,$o,Ut,fu,Mt,Qo,Mn,hu,xw,bw,Cw,Sw,_w,Aw,du,Hh,zh,yu,pu,KI=new Ho,$h=class extends Error{},Is=class extends Iw.default{constructor(e){var r,n,i,s;if(super(),Ze.add(this),Go.set(this,void 0),Yo.set(this,void 0),Fn.set(this,0),mu.set(this,void 0),Wo.set(this,void 0),lu.set(this,0),hr.set(this,void 0),$o.set(this,void 0),Ut.set(this,void 0),fu.set(this,void 0),Mt.set(this,0),Qo.set(this,void 0),Mn.set(this,void 0),hu.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:zo,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=e.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=e.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof e.interval})`);qe(this,Go,e.carryoverConcurrencyCount,"f"),qe(this,Yo,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),qe(this,mu,e.intervalCap,"f"),qe(this,Wo,e.interval,"f"),qe(this,Ut,new e.queueClass,"f"),qe(this,fu,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,qe(this,hu,e.throwOnTimeout===!0,"f"),qe(this,Mn,e.autoStart===!1,"f")}get concurrency(){return V(this,Qo,"f")}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);qe(this,Qo,e,"f"),V(this,Ze,"m",yu).call(this)}async add(e,r={}){return new Promise((n,i)=>{let s=async()=>{var o,a,c;qe(this,Mt,(a=V(this,Mt,"f"),a++,a),"f"),qe(this,Fn,(c=V(this,Fn,"f"),c++,c),"f");try{if(!((o=r.signal)===null||o===void 0)&&o.aborted){i(new $h("The task was aborted."));return}let l=await(this.timeout===void 0&&r.timeout===void 0?e({signal:r.signal}):Vh(Promise.resolve(e({signal:r.signal})),r.timeout===void 0?this.timeout:r.timeout,()=>{(r.throwOnTimeout===void 0?V(this,hu,"f"):r.throwOnTimeout)&&i(KI)}));n(l),this.emit("completed",l)}catch(u){i(u),this.emit("error",u)}V(this,Ze,"m",Cw).call(this)};V(this,Ut,"f").enqueue(s,r),V(this,Ze,"m",du).call(this),this.emit("add")})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return V(this,Mn,"f")?(qe(this,Mn,!1,"f"),V(this,Ze,"m",yu).call(this),this):this}pause(){qe(this,Mn,!0,"f")}clear(){qe(this,Ut,new(V(this,fu,"f")),"f")}async onEmpty(){V(this,Ut,"f").size!==0&&await V(this,Ze,"m",pu).call(this,"empty")}async onSizeLessThan(e){V(this,Ut,"f").size<e||await V(this,Ze,"m",pu).call(this,"next",()=>V(this,Ut,"f").size<e)}async onIdle(){V(this,Mt,"f")===0&&V(this,Ut,"f").size===0||await V(this,Ze,"m",pu).call(this,"idle")}get size(){return V(this,Ut,"f").size}sizeBy(e){return V(this,Ut,"f").filter(e).length}get pending(){return V(this,Mt,"f")}get isPaused(){return V(this,Mn,"f")}};Go=new WeakMap,Yo=new WeakMap,Fn=new WeakMap,mu=new WeakMap,Wo=new WeakMap,lu=new WeakMap,hr=new WeakMap,$o=new WeakMap,Ut=new WeakMap,fu=new WeakMap,Mt=new WeakMap,Qo=new WeakMap,Mn=new WeakMap,hu=new WeakMap,Ze=new WeakSet,xw=function(){return V(this,Yo,"f")||V(this,Fn,"f")<V(this,mu,"f")},bw=function(){return V(this,Mt,"f")<V(this,Qo,"f")},Cw=function(){var e;qe(this,Mt,(e=V(this,Mt,"f"),e--,e),"f"),V(this,Ze,"m",du).call(this),this.emit("next")},Sw=function(){this.emit("empty"),V(this,Mt,"f")===0&&this.emit("idle")},_w=function(){V(this,Ze,"m",zh).call(this),V(this,Ze,"m",Hh).call(this),qe(this,$o,void 0,"f")},Aw=function(){let e=Date.now();if(V(this,hr,"f")===void 0){let r=V(this,lu,"f")-e;if(r<0)qe(this,Fn,V(this,Go,"f")?V(this,Mt,"f"):0,"f");else return V(this,$o,"f")===void 0&&qe(this,$o,setTimeout(()=>{V(this,Ze,"m",_w).call(this)},r),"f"),!0}return!1},du=function(){if(V(this,Ut,"f").size===0)return V(this,hr,"f")&&clearInterval(V(this,hr,"f")),qe(this,hr,void 0,"f"),V(this,Ze,"m",Sw).call(this),!1;if(!V(this,Mn,"f")){let e=!V(this,Ze,"a",Aw);if(V(this,Ze,"a",xw)&&V(this,Ze,"a",bw)){let r=V(this,Ut,"f").dequeue();return r?(this.emit("active"),r(),e&&V(this,Ze,"m",Hh).call(this),!0):!1}}return!1},Hh=function(){V(this,Yo,"f")||V(this,hr,"f")!==void 0||(qe(this,hr,setInterval(()=>{V(this,Ze,"m",zh).call(this)},V(this,Wo,"f")),"f"),qe(this,lu,Date.now()+V(this,Wo,"f"),"f"))},zh=function(){V(this,Fn,"f")===0&&V(this,Mt,"f")===0&&V(this,hr,"f")&&(clearInterval(V(this,hr,"f")),qe(this,hr,void 0,"f")),qe(this,Fn,V(this,Go,"f")?V(this,Mt,"f"):0,"f"),V(this,Ze,"m",yu).call(this)},yu=function(){for(;V(this,Ze,"m",du).call(this););},pu=async function(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})};var Gh=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Yh=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Tw=t=>globalThis.DOMException===void 0?new Yh(t):new DOMException(t),Rw=t=>{let e=t.reason===void 0?Tw("This operation was aborted."):t.reason;return e instanceof Error?e:Tw(e)};function Wh(t,e){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=e,o,a=new Promise((c,u)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(r===Number.POSITIVE_INFINITY){c(t);return}if(e.signal){let{signal:l}=e;l.aborted&&u(Rw(l)),l.addEventListener("abort",()=>{u(Rw(l))})}o=s.setTimeout.call(void 0,()=>{if(n){try{c(n())}catch(d){u(d)}return}let l=typeof i=="string"?i:`Promise timed out after ${r} milliseconds`,f=i instanceof Error?i:new Gh(l);typeof t.cancel=="function"&&t.cancel(),u(f)},r),(async()=>{try{c(await t)}catch(l){u(l)}finally{s.clearTimeout.call(void 0,o)}})()});return a.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},a}var Qh="lock:worker:request-read",Xh="lock:worker:release-read",jh="lock:master:grant-read",Zh="lock:worker:request-write",Jh="lock:worker:release-write",ed="lock:master:grant-write";var Kn={},Ts=t=>{t.addEventListener("message",e=>{Ts.dispatchEvent("message",t,e)}),t.port!=null&&t.port.addEventListener("message",e=>{Ts.dispatchEvent("message",t,e)})};Ts.addEventListener=(t,e)=>{Kn[t]==null&&(Kn[t]=[]),Kn[t].push(e)};Ts.removeEventListener=(t,e)=>{Kn[t]!=null&&(Kn[t]=Kn[t].filter(r=>r===e))};Ts.dispatchEvent=function(t,e,r){Kn[t]!=null&&Kn[t].forEach(n=>n(e,r))};var td=Ts;var Nw=(t,e,r,n,i)=>(s,o)=>{if(o.data.type!==r)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};t.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>(s.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=l=>{if(l==null||l.data==null)return;let f={type:l.data.type,name:l.data.name,identifier:l.data.identifier};f.type===n&&f.identifier===a.identifier&&(s.removeEventListener("message",u),c())};s.addEventListener("message",u)}))}}))},Dw=(t,e,r,n)=>async()=>{let i=fa();return globalThis.postMessage({type:e,identifier:i,name:t}),await new Promise(s=>{let o=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===r&&c.identifier===i&&(globalThis.removeEventListener("message",o),s(()=>{globalThis.postMessage({type:n,identifier:i,name:t})}))};globalThis.addEventListener("message",o)})},VI={singleProcess:!1},Lw=t=>{if(t=Object.assign({},VI,t),Boolean(globalThis.document)||t.singleProcess){let r=new EventTarget;return td.addEventListener("message",Nw(r,"requestReadLock",Qh,Xh,jh)),td.addEventListener("message",Nw(r,"requestWriteLock",Zh,Jh,ed)),r}return{isWorker:!0,readLock:r=>Dw(r,Qh,jh,Xh),writeLock:r=>Dw(r,Zh,ed,Jh)}};var Ci={},Vn;async function rd(t,e){let r,n=new Promise(i=>{r=i});return t.add(async()=>await Wh((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:e.timeout})),await n}var qI=(t,e)=>{if(Vn.isWorker===!0)return{readLock:Vn.readLock(t,e),writeLock:Vn.writeLock(t,e)};let r=new Is({concurrency:1}),n;return{async readLock(){if(n!=null)return await rd(n,e);n=new Is({concurrency:e.concurrency,autoStart:!1});let i=n,s=rd(n,e);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await rd(r,e)}}},HI={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function nd(t){let e=Object.assign({},HI,t);return Vn==null&&(Vn=Lw(e),Vn.isWorker!==!0&&(Vn.addEventListener("requestReadLock",r=>{Ci[r.data.name]!=null&&Ci[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),Vn.addEventListener("requestWriteLock",async r=>{Ci[r.data.name]!=null&&Ci[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),Ci[e.name]==null&&(Ci[e.name]=qI(e.name,e)),Ci[e.name]}var Pw=M("libp2p:peer-store:store"),Bw="/peers/",gu=class{constructor(e){this.components=e,this.lock=nd({name:"peer-store",singleProcess:!0})}_peerIdToDatastoreKey(e){if(e.type==null)throw Pw.error("peerId must be an instance of peer-id to store data"),(0,id.default)(new Error("peerId must be an instance of peer-id"),re.ERR_INVALID_PARAMETERS);let r=e.toCID().toString();return new ze(`${Bw}${r}`)}async has(e){return await this.components.datastore.has(this._peerIdToDatastoreKey(e))}async delete(e){await this.components.datastore.delete(this._peerIdToDatastoreKey(e))}async load(e){let r=await this.components.datastore.get(this._peerIdToDatastoreKey(e)),n=Vo.decode(r),i=new Map;for(let s of n.metadata)i.set(s.key,s.value);return{...n,id:e,addresses:n.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:oe(s),isCertified:o??!1})),metadata:i,pubKey:n.pubKey??void 0,peerRecordEnvelope:n.peerRecordEnvelope??void 0}}async save(e){if(e.pubKey!=null&&e.id.publicKey!=null&&!Ae(e.pubKey,e.id.publicKey))throw Pw.error("peer publicKey bytes do not match peer id publicKey bytes"),(0,id.default)(new Error("publicKey bytes do not match peer id publicKey bytes"),re.ERR_INVALID_PARAMETERS);let r=new Set,n=e.addresses.filter(o=>r.has(o.multiaddr.toString())?!1:(r.add(o.multiaddr.toString()),!0)).sort((o,a)=>o.multiaddr.toString().localeCompare(a.multiaddr.toString())).map(({multiaddr:o,isCertified:a})=>({multiaddr:o.bytes,isCertified:a})),i=[];[...e.metadata.keys()].sort().forEach(o=>{let a=e.metadata.get(o);a!=null&&i.push({key:o,value:a})});let s=Vo.encode({addresses:n,protocols:e.protocols.sort(),pubKey:e.pubKey,metadata:i,peerRecordEnvelope:e.peerRecordEnvelope});return await this.components.datastore.put(this._peerIdToDatastoreKey(e.id),s.subarray()),await this.load(e.id)}async patch(e,r){let n=await this.load(e);return await this._patch(e,r,n)}async patchOrCreate(e,r){let n;try{n=await this.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i;n={id:e,addresses:[],protocols:[],metadata:new Map}}return await this._patch(e,r,n)}async _patch(e,r,n){return await this.save({...n,...r,id:e})}async merge(e,r){let n=await this.load(e);return await this._merge(e,r,n)}async mergeOrCreate(e,r){let n;try{n=await this.load(e)}catch(i){if(i.code!==re.ERR_NOT_FOUND)throw i;n={id:e,addresses:[],protocols:[],metadata:new Map}}return await this._merge(e,r,n)}async _merge(e,r,n){let i=new Map;return n.addresses.forEach(s=>{i.set(s.multiaddr.toString(),s.isCertified)}),(r.addresses??[]).forEach(s=>{let o=s.multiaddr.toString(),c=Boolean(i.get(o))||s.isCertified;i.set(o,c)}),await this.save({id:e,addresses:Array.from(i.entries()).map(([s,o])=>({multiaddr:oe(s),isCertified:o})),protocols:Array.from(new Set([...n.protocols??[],...r.protocols??[]])),metadata:new Map([...n.metadata?.entries()??[],...r.metadata?.entries()??[]]),pubKey:r.pubKey??n?.pubKey,peerRecordEnvelope:r.peerRecordEnvelope??n?.peerRecordEnvelope})}async*all(){for await(let e of this.components.datastore.queryKeys({prefix:Bw})){let r=e.toString().split("/")[2],n=Rt.decode(r);yield this.load(pn(n))}}};var sd=C(Y(),1);var an;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.tags!=null)for(let s of r.tags)n.uint32(10),Eu.codec().encode(s,n,{writeDefaults:!0});i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={tags:[]},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.tags.push(Eu.codec().decode(r,r.uint32()));break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(an||(an={}));var Eu;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.name!=="")&&(n.uint32(10),n.string(r.name)),r.value!=null&&(n.uint32(16),n.uint32(r.value)),r.expiry!=null&&(n.uint32(24),n.uint64(r.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={name:""},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.name=r.string();break;case 2:i.value=r.uint32();break;case 3:i.expiry=r.uint64();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(Eu||(Eu={}));var jt=M("libp2p:peer-store"),vu=class extends Ue{constructor(e,r={}){super(),this.components=e,this.store=new gu(e),this.addressBook=new eu(this.dispatchEvent.bind(this),this.store,r.addressFilter),this.keyBook=new tu(this.dispatchEvent.bind(this),this.store),this.metadataBook=new nu(this.dispatchEvent.bind(this),this.store),this.protoBook=new ou(this.dispatchEvent.bind(this),this.store)}async forEach(e){jt.trace("getPeers await read lock");let r=await this.store.lock.readLock();jt.trace("getPeers got read lock");try{for await(let n of this.store.all())n.id.equals(this.components.peerId)||e(n)}finally{jt.trace("getPeers release read lock"),r()}}async all(){let e=[];return await this.forEach(r=>{e.push(r)}),e}async delete(e){jt.trace("delete await write lock");let r=await this.store.lock.writeLock();jt.trace("delete got write lock");try{await this.store.delete(e)}finally{jt.trace("delete release write lock"),r()}}async get(e){jt.trace("get await read lock");let r=await this.store.lock.readLock();jt.trace("get got read lock");try{return await this.store.load(e)}finally{jt.trace("get release read lock"),r()}}async has(e){jt.trace("has await read lock");let r=await this.store.lock.readLock();jt.trace("has got read lock");try{return await this.store.has(e)}finally{jt.trace("has release read lock"),r()}}async tagPeer(e,r,n={}){let i=n.value??0,s=Math.round(i),o=n.ttl??void 0;if(s!==i||s<0||s>100)throw(0,sd.default)(new Error("Tag value must be between 0-100"),"ERR_TAG_VALUE_OUT_OF_BOUNDS");let a=await this.metadataBook.getValue(e,"tags"),c=[];a!=null&&(c=an.decode(a).tags);for(let u of c)if(u.name===r)throw(0,sd.default)(new Error("Peer already tagged"),"ERR_DUPLICATE_TAG");c.push({name:r,value:s,expiry:o==null?void 0:BigInt(Date.now()+o)}),await this.metadataBook.setValue(e,"tags",an.encode({tags:c}).subarray())}async unTagPeer(e,r){let n=await this.metadataBook.getValue(e,"tags"),i=[];n!=null&&(i=an.decode(n).tags),i=i.filter(s=>s.name!==r),await this.metadataBook.setValue(e,"tags",an.encode({tags:i}).subarray())}async getTags(e){let r=await this.metadataBook.getValue(e,"tags"),n=[];r!=null&&(n=an.decode(r).tags);let i=BigInt(Date.now()),s=n.filter(o=>o.expiry==null||o.expiry>i);return s.length!==n.length&&await this.metadataBook.setValue(e,"tags",an.encode({tags:s}).subarray()),s.map(o=>({name:o.name,value:o.value??0}))}};var Ow=C(Y(),1),wu=class{constructor(e){this.dht=e}async provide(e){await tr(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 tr(this.dht.put(e,r,n))}async get(e,r){for await(let n of this.dht.get(e,r))if(n.name==="VALUE")return n.value;throw(0,Ow.default)(new Error("Not found"),"ERR_NOT_FOUND")}};var Ft=C(Y(),1);var xu=class{constructor(e={}){this._started=!1,this._peerId=e.peerId,this._addressManager=e.addressManager,this._peerStore=e.peerStore,this._upgrader=e.upgrader,this._metrics=e.metrics,this._registrar=e.registrar,this._connectionManager=e.connectionManager,this._transportManager=e.transportManager,this._connectionGater=e.connectionGater,this._contentRouting=e.contentRouting,this._peerRouting=e.peerRouting,this._datastore=e.datastore,this._connectionProtector=e.connectionProtector,this._dht=e.dht,this._pubsub=e.pubsub,this._dialer=e.dialer}isStarted(){return this._started}async beforeStart(){await Promise.all(Object.values(this).filter(e=>Ur(e)).map(async e=>{e.beforeStart!=null&&await e.beforeStart()}))}async start(){await Promise.all(Object.values(this).filter(e=>Ur(e)).map(async e=>{await e.start()})),this._started=!0}async afterStart(){await Promise.all(Object.values(this).filter(e=>Ur(e)).map(async e=>{e.afterStart!=null&&await e.afterStart()}))}async beforeStop(){await Promise.all(Object.values(this).filter(e=>Ur(e)).map(async e=>{e.beforeStop!=null&&await e.beforeStop()}))}async stop(){await Promise.all(Object.values(this).filter(e=>Ur(e)).map(async e=>{await e.stop()})),this._started=!1}async afterStop(){await Promise.all(Object.values(this).filter(e=>Ur(e)).map(async e=>{e.afterStop!=null&&await e.afterStop()}))}get peerId(){if(this._peerId==null)throw(0,Ft.default)(new Error("peerId not set"),"ERR_SERVICE_MISSING");return this._peerId}set peerId(e){this._peerId=e}get addressManager(){if(this._addressManager==null)throw(0,Ft.default)(new Error("addressManager not set"),"ERR_SERVICE_MISSING");return this._addressManager}set addressManager(e){this._addressManager=e}get peerStore(){if(this._peerStore==null)throw(0,Ft.default)(new Error("peerStore not set"),"ERR_SERVICE_MISSING");return this._peerStore}set peerStore(e){this._peerStore=e}get upgrader(){if(this._upgrader==null)throw(0,Ft.default)(new Error("upgrader not set"),"ERR_SERVICE_MISSING");return this._upgrader}set upgrader(e){this._upgrader=e}get registrar(){if(this._registrar==null)throw(0,Ft.default)(new Error("registrar not set"),"ERR_SERVICE_MISSING");return this._registrar}set registrar(e){this._registrar=e}get connectionManager(){if(this._connectionManager==null)throw(0,Ft.default)(new Error("connectionManager not set"),"ERR_SERVICE_MISSING");return this._connectionManager}set connectionManager(e){this._connectionManager=e}get transportManager(){if(this._transportManager==null)throw(0,Ft.default)(new Error("transportManager not set"),"ERR_SERVICE_MISSING");return this._transportManager}set transportManager(e){this._transportManager=e}get connectionGater(){if(this._connectionGater==null)throw(0,Ft.default)(new Error("connectionGater not set"),"ERR_SERVICE_MISSING");return this._connectionGater}set connectionGater(e){this._connectionGater=e}get contentRouting(){if(this._contentRouting==null)throw(0,Ft.default)(new Error("contentRouting not set"),"ERR_SERVICE_MISSING");return this._contentRouting}set contentRouting(e){this._contentRouting=e}get peerRouting(){if(this._peerRouting==null)throw(0,Ft.default)(new Error("peerRouting not set"),"ERR_SERVICE_MISSING");return this._peerRouting}set peerRouting(e){this._peerRouting=e}get datastore(){if(this._datastore==null)throw(0,Ft.default)(new Error("datastore not set"),"ERR_SERVICE_MISSING");return this._datastore}set datastore(e){this._datastore=e}get connectionProtector(){return this._connectionProtector}set connectionProtector(e){this._connectionProtector=e}get dialer(){if(this._dialer==null)throw(0,Ft.default)(new Error("dialer not set"),"ERR_SERVICE_MISSING");return this._dialer}set dialer(e){this._dialer=e}get metrics(){return this._metrics}set metrics(e){this._metrics=e}get dht(){return this._dht}set dht(e){this._dht=e}get pubsub(){return this._pubsub}set pubsub(e){this._pubsub=e}};var ad=C(Pu(),1),cd=C(Mw(),1);var Fw=globalThis.fetch,Kw=globalThis.Headers,iU=globalThis.Request,sU=globalThis.Response;function bu(t,e,r){return`${t}?name=${e}&type=${r}`}async function Vw(t,e){return await(await Fw(t,{headers:new Kw({accept:"application/dns-json"}),signal:e})).json()}function Ii(t,e){return`${e}_${t}`}var od=Object.assign((0,ad.default)("dns-over-http-resolver"),{error:(0,ad.default)("dns-over-http-resolver:error")}),ud=class{constructor(e={}){this._cache=new cd.default({max:e?.maxCache??100}),this._TXTcache=new cd.default({max:e?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=e.request??Vw,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(Ii(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(bu(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Ii(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),od.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolve6(e){let r="AAAA",n=this._cache.get(Ii(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(bu(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Ii(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),od.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolveTxt(e){let r="TXT",n=this._TXTcache.get(Ii(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(bu(s,e,r),o.signal),c=a.Answer.map(l=>[l.data.replace(/['"]+/g,"")]),u=Math.min(...a.Answer.map(l=>l.TTL));return this._TXTcache.set(Ii(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),od.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},qw=ud;var Hw=qw;var{code:WI}=xe("dnsaddr");async function zw(t,e={}){let r=new Hw;e.signal!=null&&e.signal.addEventListener("abort",()=>{r.cancel()});let n=t.getPeerId(),[,i]=t.stringTuples().find(([a])=>a===WI)??[];if(i==null)throw new Error("No hostname found in multiaddr");let o=(await r.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]);return n!=null&&(o=o.filter(a=>a.includes(n))),o}var Su=C(Y(),1);var JI={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:t=>t},connectionManager:{maxConnections:300,minConnections:50,autoDial:!0,autoDialInterval:1e4,maxParallelDials:100,maxDialsPerPeer:4,dialTimeout:3e4,inboundUpgradeTimeout:3e4,resolvers:{dnsaddr:zw},addressSorter:es},connectionGater:{},transportManager:{faultTolerance:xn.FATAL_ALL},peerRouting:{refreshManager:{enabled:!0,interval:6e5,bootDelay:1e4}},nat:{enabled:!0,ttl:7200,keepAlive:!0},relay:{enabled:!0,advertise:{bootDelay:9e5,enabled:!1,ttl:18e5},hop:{enabled:!1,active:!1,timeout:3e4},autoRelay:{enabled:!1,maxListeners:2}},identify:{protocolPrefix:"ipfs",host:{agentVersion:Lh},timeout:6e4,maxInboundStreams:1,maxOutboundStreams:1,maxPushIncomingStreams:1,maxPushOutgoingStreams:1},ping:{protocolPrefix:"ipfs",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4},fetch:{protocolPrefix:"libp2p",maxInboundStreams:1,maxOutboundStreams:1,timeout:1e4}};function $w(t){let e=Er(JI,t);if(e.transports==null||e.transports.length<1)throw(0,Su.default)(new Error(ne.ERR_TRANSPORTS_REQUIRED),b.ERR_TRANSPORTS_REQUIRED);if(e.connectionEncryption==null||e.connectionEncryption.length===0)throw(0,Su.default)(new Error(ne.CONN_ENCRYPTION_REQUIRED),b.CONN_ENCRYPTION_REQUIRED);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw(0,Su.default)(new Error(ne.ERR_PROTECTOR_REQUIRED),b.ERR_PROTECTOR_REQUIRED);return e.identify.host.agentVersion===Lh&&(cw||ow?e.identify.host.agentVersion+=` UserAgent=${globalThis.process.version}`:(Ko||uw||aw||lw)&&(e.identify.host.agentVersion+=` UserAgent=${globalThis.navigator.userAgent}`)),e}var dd;(function(t){let e;t.codec=()=>(e==null&&(e=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.id!=null&&r.id.byteLength>0)&&(n.uint32(10),n.bytes(r.id)),r.pubKey!=null&&(n.uint32(18),n.bytes(r.pubKey)),r.privKey!=null&&(n.uint32(26),n.bytes(r.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={id:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.id=r.bytes();break;case 2:i.pubKey=r.bytes();break;case 3:i.privKey=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Re(r,t.codec()),t.decode=r=>Te(r,t.codec())})(dd||(dd={}));var Gw=async()=>{let t=await Fc("Ed25519"),e=await eT(t);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function eT(t){return await mn(gv(t.public),Ev(t))}var jo=C(Y(),1);var Zt=C(Y(),1);var Yw=Symbol.for("@libp2p/peer-discovery");var _u=class extends Ue{get[Yw](){return!0}get[Symbol.toStringTag](){return"@libp2p/dummy-dht"}get wan(){throw(0,Zt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}get lan(){throw(0,Zt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}get(){throw(0,Zt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}findProviders(){throw(0,Zt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}findPeer(){throw(0,Zt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}getClosestPeers(){throw(0,Zt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}provide(){throw(0,Zt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}put(){throw(0,Zt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}async getMode(){throw(0,Zt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}async setMode(){throw(0,Zt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}async refreshRoutingTable(){throw(0,Zt.default)(new Error(ne.DHT_DISABLED),b.DHT_DISABLED)}};var cn=C(Y(),1);var Au=class extends Ue{constructor(){super(...arguments),this.topicValidators=new Map}isStarted(){return!1}start(){}stop(){}get globalSignaturePolicy(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}get multicodecs(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getPeers(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getTopics(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}subscribe(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}unsubscribe(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}getSubscribers(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}async publish(){throw(0,cn.default)(new Error(ne.PUBSUB_DISABLED),b.ERR_PUBSUB_DISABLED)}};var Rs=C(Y(),1);var l1=C(Vr(),1),gd=C(md(),1),f1=C(gr(),1);var Xo=C(Y(),1),a1=C(md(),1),c1=C(s1(),1),yd=C(gr(),1);var o1=M("libp2p:dialer:dial-request"),Cu=class{constructor(e){let{addrs:r,dialAction:n,dialer:i}=e;this.addrs=r,this.dialer=i,this.dialAction=n}async run(e={}){let r=this.dialer.getTokens(this.addrs.length);if(r.length<1)throw(0,Xo.default)(new Error("No dial tokens available"),b.ERR_NO_DIAL_TOKENS);let n=new c1.default;for(let a of r)n.push(a).catch(c=>{o1.error(c)});let i=this.addrs.map(()=>{let a=new AbortController;try{(0,yd.setMaxListeners)?.(1/0,a.signal)}catch{}return a});if(e.signal!=null)try{(0,yd.setMaxListeners)?.(1/0,e.signal)}catch{}let s=0,o=!1;try{return await Promise.any(this.addrs.map(async(a,c)=>{let u=await n.shift();if(o)throw this.dialer.releaseToken(r.splice(r.indexOf(u),1)[0]),(0,Xo.default)(new Error("dialAction already succeeded"),b.ERR_ALREADY_SUCCEEDED);let l=i[c];if(l==null)throw(0,Xo.default)(new Error("dialAction did not come with an AbortController"),b.ERR_INVALID_PARAMETERS);let f;try{let d=l.signal;f=await this.dialAction(a,{...e,signal:e.signal!=null?(0,a1.anySignal)([d,e.signal]):d}),i[c]=void 0}finally{s++,this.addrs.length-s>=r.length?n.push(u).catch(d=>{o1.error(d)}):this.dialer.releaseToken(r.splice(r.indexOf(u),1)[0])}if(f==null)throw(0,Xo.default)(new Error("dialAction led to empty object"),b.ERR_TRANSPORT_DIAL_FAILED);return o=!0,f}))}finally{i.forEach(a=>{a!==void 0&&a.abort()}),r.forEach(a=>this.dialer.releaseToken(a))}}};var Br=M("libp2p:dialer"),Iu=class{constructor(e,r={}){this.started=!1,this.addressSorter=r.addressSorter??es,this.maxAddrsToDial=r.maxAddrsToDial??25,this.timeout=r.dialTimeout??3e4,this.maxDialsPerPeer=r.maxDialsPerPeer??4,this.tokens=[...new Array(r.maxParallelDials??100)].map((n,i)=>i),this.components=e,this.pendingDials=Ro({name:"libp2p_dialler_pending_dials",metrics:e.metrics}),this.pendingDialTargets=Ro({name:"libp2p_dialler_pending_dial_targets",metrics:e.metrics});for(let[n,i]of Object.entries(r.resolvers??{}))ml.set(n,i)}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1;for(let e of this.pendingDials.values())try{e.controller.abort()}catch(r){Br.error(r)}this.pendingDials.clear();for(let e of this.pendingDialTargets.values())e.abort();this.pendingDialTargets.clear()}async dial(e,r={}){let{peerId:n,multiaddr:i}=La(e);if(n!=null){if(this.components.peerId.equals(n))throw(0,Rs.default)(new Error("Tried to dial self"),b.ERR_DIALED_SELF);if(i!=null&&(Br("storing multiaddrs %p",n,i),await this.components.peerStore.addressBook.add(n,[i])),await this.components.connectionGater.denyDialPeer(n))throw(0,Rs.default)(new Error("The dial request is blocked by gater.allowDialPeer"),b.ERR_PEER_DIAL_INTERCEPTED)}Br("creating dial target for %p",n);let s=new AbortController,o=u1();this.pendingDialTargets.set(o,s);let a=s.signal;r.signal!=null&&(a=(0,gd.anySignal)([a,r.signal]));let c;try{c=await this._createDialTarget({peerId:n,multiaddr:i},{...r,signal:a})}finally{this.pendingDialTargets.delete(o)}if(c.addrs.length===0)throw(0,Rs.default)(new Error("The dial request has no valid addresses"),b.ERR_NO_VALID_ADDRESSES);let u=this.pendingDials.get(c.id)??this._createPendingDial(c,r);try{let l=await u.promise;return Br("dial succeeded to %s",c.id),l}catch(l){throw Br("dial failed to %s",c.id,l),u.controller.signal.aborted&&(l.code=b.ERR_TIMEOUT),Br.error(l),l}finally{u.destroy()}}async _createDialTarget(e,r){let n=[];if(Kt(e.multiaddr)&&n.push(e.multiaddr),!Kt(e.multiaddr)&&Xn(e.peerId)&&n.push(...await this._loadAddresses(e.peerId)),n=(await Promise.all(n.map(async s=>await this._resolve(s,r)))).flat().filter(s=>Boolean(this.components.transportManager.transportForMultiaddr(s))),n=[...new Set(n.map(s=>s.toString()))].map(s=>oe(s)),n.length>this.maxAddrsToDial)throw(0,Rs.default)(new Error("dial with more addresses than allowed"),b.ERR_TOO_MANY_ADDRESSES);let i=Xn(e.peerId)?e.peerId:void 0;if(i!=null){let s=`/p2p/${i.toString()}`;n=n.map(o=>{let a=o.getPeerId();return a==null||!i.equals(a)?o.encapsulate(s):o})}return{id:i==null?u1():i.toString(),addrs:n}}async _loadAddresses(e){let r=await this.components.peerStore.addressBook.get(e);return(await Promise.all(r.map(async n=>await this.components.connectionGater.denyDialMultiaddr(e,n.multiaddr)?!1:n))).filter(nT).sort(this.addressSorter).map(n=>n.multiaddr)}_createPendingDial(e,r={}){let n=async(u,l={})=>{if(l.signal?.aborted===!0)throw(0,Rs.default)(new Error("already aborted"),b.ERR_ALREADY_ABORTED);return await this.components.transportManager.dial(u,l).catch(f=>{throw Br.error("dial to %s failed",u,f),f})},i=new Cu({addrs:e.addrs,dialAction:n,dialer:this}),s=new l1.TimeoutController(this.timeout),o=[s.signal];r.signal!=null&&o.push(r.signal);let a=(0,gd.anySignal)(o);try{(0,f1.setMaxListeners)?.(1/0,a)}catch{}let c={dialRequest:i,controller:s,promise:i.run({...r,signal:a}),destroy:()=>{s.clear(),this.pendingDials.delete(e.id)}};return this.pendingDials.set(e.id,c),c}getTokens(e){let r=Math.min(e,this.maxDialsPerPeer,this.tokens.length),n=this.tokens.splice(0,r);return Br("%d tokens request, returning %d, %d remaining",e,r,this.tokens.length),n}releaseToken(e){this.tokens.includes(e)||(Br("token %d released",e),this.tokens.push(e))}async _resolve(e,r){if(!e.protoNames().includes("dnsaddr"))return[e];let i=await this._resolveRecord(e,r);return(await Promise.all(i.map(async a=>await this._resolve(a,r)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[])}async _resolveRecord(e,r){try{return e=oe(e.toString()),await e.resolve(r)}catch(n){return Br.error(`multiaddr ${e.toString()} could not be resolved`,n),[]}}};function nT(t){return Boolean(t)}function u1(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var un=M("libp2p"),Ed=class extends Ue{constructor(e){super(),this.started=!1,this.peerId=e.peerId;let r=this.components=new xu({peerId:e.peerId,datastore:e.datastore??new da,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 vu(r,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore}),this.services=[r],e.metrics!=null&&(this.metrics=this.components.metrics=this.configureComponent(e.metrics(this.components))),this.peerStore=this.components.peerStore,this.peerStore.addEventListener("peer",o=>{let{detail:a}=o;this.dispatchEvent(new X("peer:discovery",{detail:a}))}),e.connectionProtector!=null&&(this.components.connectionProtector=e.connectionProtector(r)),this.components.upgrader=new zc(this.components,{connectionEncryption:(e.connectionEncryption??[]).map(o=>this.configureComponent(o(this.components))),muxers:(e.streamMuxers??[]).map(o=>this.configureComponent(o(this.components))),inboundUpgradeTimeout:e.connectionManager.inboundUpgradeTimeout}),this.components.dialer=new Iu(this.components,e.connectionManager),this.connectionManager=this.components.connectionManager=new Oa(this.components,e.connectionManager),this.components.connectionManager.addEventListener("peer:disconnect",o=>{this.dispatchEvent(new X("peer:disconnect",{detail:o.detail}))}),this.components.connectionManager.addEventListener("peer:connect",o=>{this.dispatchEvent(new X("peer:connect",{detail:o.detail}))}),this.registrar=this.components.registrar=new Hc(this.components),this.components.transportManager=new Vc(this.components,e.transportManager),this.components.addressManager=new _a(this.components,e.addresses),this.configureComponent(new Xc(this.components)),this.configureComponent(new ka(this.components,{enabled:e.connectionManager.autoDial,minConnections:e.connectionManager.minConnections,autoDialInterval:e.connectionManager.autoDialInterval}));let n=wi.generateOptions();this.keychain=this.configureComponent(new wi(this.components,{...n,...e.keychain})),this.services.push(new Qc(this.components,e.nat)),e.transports.forEach(o=>{this.components.transportManager.add(this.configureComponent(o(this.components)))}),this.identifyService=new As(this.components,{...e.identify}),this.configureComponent(this.identifyService),e.dht!=null?this.dht=this.components.dht=e.dht(this.components):this.dht=new _u,e.pubsub!=null?this.pubsub=this.components.pubsub=e.pubsub(this.components):this.pubsub=new Au;let i=(e.peerRouters??[]).map(o=>this.configureComponent(o(this.components)));e.dht!=null&&(i.push(this.configureComponent(new jc(this.dht))),this.dht.addEventListener("peer",o=>{this.onDiscoveryPeer(o)})),this.peerRouting=this.components.peerRouting=this.configureComponent(new wa(this.components,{...e.peerRouting,routers:i}));let s=(e.contentRouters??[]).map(o=>this.configureComponent(o(this.components)));e.dht!=null&&s.push(this.configureComponent(new wu(this.dht))),this.contentRouting=this.components.contentRouting=this.configureComponent(new ba(this.components,{routers:s})),e.relay.enabled&&(this.components.transportManager.add(this.configureComponent(new Wa(this.components,e.relay))),this.configureComponent(new tc(this.components,{addressSorter:e.connectionManager.addressSorter,...e.relay}))),this.fetchService=this.configureComponent(new Gc(this.components,{...e.fetch})),this.pingService=this.configureComponent(new Yc(this.components,{...e.ping}));for(let o of e.peerDiscovery??[])this.configureComponent(o(this.components)).addEventListener("peer",c=>{this.onDiscoveryPeer(c)})}configureComponent(e){return Ur(e)&&this.services.push(e),e}async start(){if(!this.started){this.started=!0,un("libp2p is starting");try{await Promise.all(this.services.map(async e=>{e.beforeStart!=null&&await e.beforeStart()})),await Promise.all(this.services.map(e=>e.start())),await Promise.all(this.services.map(async e=>{e.afterStart!=null&&await e.afterStart()})),un("libp2p has started")}catch(e){throw un.error("An error occurred starting libp2p",e),await this.stop(),e}}}async stop(){this.started&&(un("libp2p is stopping"),this.started=!1,await Promise.all(this.services.map(async e=>{e.beforeStop!=null&&await e.beforeStop()})),await Promise.all(this.services.map(e=>e.stop())),await Promise.all(this.services.map(async e=>{e.afterStop!=null&&await e.afterStop()})),un("libp2p has stopped"))}isStarted(){return this.started}getConnections(e){return this.components.connectionManager.getConnections(e)}getPeers(){let e=new $r;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(0,jo.default)(new Error("no protocols were provided to open a stream"),b.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(r=Array.isArray(r)?r:[r],r.length===0)throw(0,jo.default)(new Error("no protocols were provided to open a stream"),b.ERR_INVALID_PROTOCOLS_FOR_STREAM);return await(await this.dial(e,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e){Kt(e)&&(e=ae(e.getPeerId()??"")),await this.components.connectionManager.closeConnections(e)}async getPublicKey(e,r={}){if(un("getPublicKey %p",e),e.publicKey!=null)return e.publicKey;let n=await this.peerStore.get(e);if(n.pubKey!=null)return n.pubKey;if(this.dht==null)throw(0,jo.default)(new Error("Public key was not in the peer store and the DHT is not enabled"),b.ERR_NO_ROUTERS_AVAILABLE);let i=Qe([q("/pk/"),e.multihash.digest]);for await(let s of this.dht.get(i,r))if(s.name==="VALUE"){let o=_o(s.value);return await this.peerStore.keyBook.set(e,s.value),o.bytes}throw(0,jo.default)(new Error(`Node not responding with its public key: ${e.toString()}`),b.ERR_INVALID_RECORD)}async fetch(e,r,n={}){if(Kt(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(Kt(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()){un.error(new Error(b.ERR_DISCOVERED_SELF));return}r.multiaddrs.length>0&&this.components.peerStore.addressBook.add(r.id,r.multiaddrs).catch(n=>un.error(n)),r.protocols.length>0&&this.components.peerStore.protoBook.set(r.id,r.protocols).catch(n=>un.error(n)),this.dispatchEvent(new X("peer:discovery",{detail:r}))}};async function h1(t){if(t.peerId==null){let e=t.datastore;if(e!=null)try{let r=new wi({datastore:e},{...wi.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 Gw()),new Ed($w(t))}async function iT(t){let e=await h1(t);return t.start!==!1&&await e.start(),e}return E1(sT);})();
49
+ `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),AS=new RegExp(`(?:^${We}$)|(?:^${ka}$)`),RS=new RegExp(`^${We}$`),IS=new RegExp(`^${ka}$`),ef=r=>r&&r.exact?AS:new RegExp(`(?:${ln(r)}${We}${ln(r)})|(?:${ln(r)}${ka}${ln(r)})`,"g");ef.v4=r=>r&&r.exact?RS:new RegExp(`${ln(r)}${We}${ln(r)}`,"g");ef.v6=r=>r&&r.exact?IS:new RegExp(`${ln(r)}${ka}${ln(r)}`,"g");var Mg=ef;var qg=N(Fg(),1),{isValid:TS,parse:CS}=qg.default,BS=["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"],DS=BS.map(r=>new Vg.Netmask(r));function LS(r){for(let t of DS)if(t.contains(r))return!0;return!1}function Kg(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 $g=r=>{if(TS(r)){let t=CS(r);if(t.kind()==="ipv4")return LS(t.toNormalizedString());if(t.kind()==="ipv6")return Kg(r)}else if(ni(r)&&Mg.v6().test(r))return Kg(r)};var Yn=$g;function zg(r){return/^127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(r)||/^::1$/.test(r)}function Hg(r){let{address:t}=r.nodeAddress();return zg(t)}var rf=U("libp2p:nat"),nf=7200;function PS(r=1024,t=65535){return Math.floor(Math.random()*(t-r+1)+r)}var Ma=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??`${ug}@${Da} ${this.components.peerId.toString()}`,this.ttl=e.ttl??nf,this.keepAlive=e.keepAlive??!0,this.gateway=e.gateway,this.ttl<nf)throw new w(`NatManager ttl should be at least ${nf} seconds`,S.ERR_INVALID_PARAMETERS)}isStarted(){return this.started}start(){}afterStart(){Ks||!this.enabled||this.started||(this.started=!0,this._start().catch(t=>{rf.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"||Hg(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=PS();rf(`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(zh({family:4,address:c,port:u},o))}}async _getClient(){return this.client!=null?this.client:(this.client=await Rg({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){rf.error(t)}}};var NS=U("libp2p:peer-record-updater"),Ua=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(ot("p2p").code))}),e=await Zt.seal(t,this.components.peerId);await this.components.peerStore.addressBook.consumePeerRecord(e)}).catch(t=>{NS.error("Could not update self peer record: %o",t)})}};var Fa=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"),Ka="change:multiaddrs";async function kS(){return!0}var Va=class{constructor(t,e,n){this.dispatchEvent=t,this.store=e,this.addressFilter=n??kS}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 sf(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 $(Ka,{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 sf(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 $(Ka,{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 sf(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 $(Ka,{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 $(Ka,{detail:{peerId:t,multiaddrs:[],oldMultiaddrs:n==null?[]:n.addresses.map(({multiaddr:i})=>i)}}))}};async function sf(r,t,e,n=!1){let i=[];return await Promise.all(t.map(async s=>{if(!xe(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 pr=U("libp2p:peer-store:key-book"),Gg="change:pubkey",qa=class{constructor(t,e){this.dispatchEvent=t,this.store=e}async set(t,e){if(t=Kt(t),!(e instanceof Uint8Array))throw pr.error("publicKey must be an instance of Uint8Array to store data"),new w("publicKey must be an instance of PublicKey",Y.ERR_INVALID_PARAMETERS);pr.trace("set await write lock");let n=await this.store.lock.writeLock();pr.trace("set got write lock");let i=!1,s;try{try{if(s=await this.store.load(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{pr.trace("set release write lock"),n()}i&&this.dispatchEvent(new $(Gg,{detail:{peerId:t,publicKey:e,oldPublicKey:s?.pubKey}}))}async get(t){t=Kt(t),pr.trace("get await write lock");let e=await this.store.lock.readLock();pr.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{pr("get release write lock"),e()}}async delete(t){t=Kt(t),pr.trace("delete await write lock");let e=await this.store.lock.writeLock();pr.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{pr.trace("delete release write lock"),e()}this.dispatchEvent(new $(Gg,{detail:{peerId:t,publicKey:void 0,oldPublicKey:n?.pubKey}}))}};var Wt=U("libp2p:peer-store:metadata-book"),$a="change:metadata",za=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 $($a,{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 $($a,{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 $($a,{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 $($a,{detail:{peerId:t,metadata:i,oldMetadata:s==null?new Map:s.metadata}}))}};var Qt=U("libp2p:peer-store:proto-book"),Ha="change:protocols",Ga=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 $(Ha,{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 $(Ha,{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 $(Ha,{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 $(Ha,{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),Ya.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),Wa.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(Ya.codec().decode(e,e.uint32()));break;case 2:i.protocols.push(e.string());break;case 3:i.metadata.push(Wa.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 Ya;(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())})(Ya||(Ya={}));var Wa;(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())})(Wa||(Wa={}));var nw=N(Wg(),1);var zs=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},af=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},Qg=r=>globalThis.DOMException===void 0?new af(r):new DOMException(r),Xg=r=>{let t=r.reason===void 0?Qg("This operation was aborted."):r.reason;return t instanceof Error?t:Qg(t)};function cf(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(Xg(c)),c.addEventListener("abort",()=>{a(Xg(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 lf(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=lf(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,ec,Qs,Xa,Qe,Gs,Re,Za,Ie,Xs,un,Ja,Zg,Jg,ew,jg,tw,ja,uf,ff,rc,rw,tc,nc=class extends Error{},Ki=class extends nw.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),ec.set(this,void 0),Qs.set(this,void 0),Xa.set(this,0),Qe.set(this,void 0),Gs.set(this,void 0),Re.set(this,void 0),Za.set(this,void 0),Ie.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,ec,t.intervalCap,"f"),Dt(this,Qs,t.interval,"f"),Dt(this,Re,new t.queueClass,"f"),Dt(this,Za,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",rc).call(this)}async add(t,e={}){return e={timeout:this.timeout,throwOnTimeout:k(this,Ja,"f"),...e},new Promise((n,i)=>{k(this,Re,"f").enqueue(async()=>{var s,o,a;Dt(this,Ie,(o=k(this,Ie,"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 nc("The task was aborted.");let c=t({signal:e.signal});e.timeout&&(c=cf(Promise.resolve(c),e.timeout)),e.signal&&(c=Promise.race([c,k(this,$t,"m",rw).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",ew).call(this)}},e),this.emit("add"),k(this,$t,"m",ja).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",rc).call(this),this):this}pause(){Dt(this,un,!0,"f")}clear(){Dt(this,Re,new(k(this,Za,"f")),"f")}async onEmpty(){k(this,Re,"f").size!==0&&await k(this,$t,"m",tc).call(this,"empty")}async onSizeLessThan(t){k(this,Re,"f").size<t||await k(this,$t,"m",tc).call(this,"next",()=>k(this,Re,"f").size<t)}async onIdle(){k(this,Ie,"f")===0&&k(this,Re,"f").size===0||await k(this,$t,"m",tc).call(this,"idle")}get size(){return k(this,Re,"f").size}sizeBy(t){return k(this,Re,"f").filter(t).length}get pending(){return k(this,Ie,"f")}get isPaused(){return k(this,un,"f")}};Ys=new WeakMap,Ws=new WeakMap,fn=new WeakMap,ec=new WeakMap,Qs=new WeakMap,Xa=new WeakMap,Qe=new WeakMap,Gs=new WeakMap,Re=new WeakMap,Za=new WeakMap,Ie=new WeakMap,Xs=new WeakMap,un=new WeakMap,Ja=new WeakMap,$t=new WeakSet,Zg=function(){return k(this,Ws,"f")||k(this,fn,"f")<k(this,ec,"f")},Jg=function(){return k(this,Ie,"f")<k(this,Xs,"f")},ew=function(){var t;Dt(this,Ie,(t=k(this,Ie,"f"),t--,t),"f"),k(this,$t,"m",ja).call(this),this.emit("next")},jg=function(){k(this,$t,"m",ff).call(this),k(this,$t,"m",uf).call(this),Dt(this,Gs,void 0,"f")},tw=function(){let t=Date.now();if(k(this,Qe,"f")===void 0){let e=k(this,Xa,"f")-t;if(e<0)Dt(this,fn,k(this,Ys,"f")?k(this,Ie,"f"):0,"f");else return k(this,Gs,"f")===void 0&&Dt(this,Gs,setTimeout(()=>{k(this,$t,"m",jg).call(this)},e),"f"),!0}return!1},ja=function(){if(k(this,Re,"f").size===0)return k(this,Qe,"f")&&clearInterval(k(this,Qe,"f")),Dt(this,Qe,void 0,"f"),this.emit("empty"),k(this,Ie,"f")===0&&this.emit("idle"),!1;if(!k(this,un,"f")){let t=!k(this,$t,"a",tw);if(k(this,$t,"a",Zg)&&k(this,$t,"a",Jg)){let e=k(this,Re,"f").dequeue();return e?(this.emit("active"),e(),t&&k(this,$t,"m",uf).call(this),!0):!1}}return!1},uf=function(){k(this,Ws,"f")||k(this,Qe,"f")!==void 0||(Dt(this,Qe,setInterval(()=>{k(this,$t,"m",ff).call(this)},k(this,Qs,"f")),"f"),Dt(this,Xa,Date.now()+k(this,Qs,"f"),"f"))},ff=function(){k(this,fn,"f")===0&&k(this,Ie,"f")===0&&k(this,Qe,"f")&&(clearInterval(k(this,Qe,"f")),Dt(this,Qe,void 0,"f")),Dt(this,fn,k(this,Ys,"f")?k(this,Ie,"f"):0,"f"),k(this,$t,"m",rc).call(this)},rc=function(){for(;k(this,$t,"m",ja).call(this););},rw=async function(t){return new Promise((e,n)=>{t.addEventListener("abort",()=>{n(new nc("The task was aborted."))},{once:!0})})},tc=async function(t,e){return new Promise(n=>{let i=()=>{e&&!e()||(this.off(t,i),n())};this.on(t,i)})};var hf=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},df=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},iw=r=>globalThis.DOMException===void 0?new df(r):new DOMException(r),sw=r=>{let t=r.reason===void 0?iw("This operation was aborted."):r.reason;return t instanceof Error?t:iw(t)};function pf(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(sw(f)),f.addEventListener("abort",()=>{l(sw(f))})}let u=new hf;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 mf="lock:worker:request-read",yf="lock:worker:release-read",gf="lock:master:grant-read",wf="lock:worker:request-write",Ef="lock:worker:release-write",xf="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 vf=Vi;var ow=(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)}))}}))},aw=(r,t,e,n)=>async()=>{let i=fo();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)})},US={singleProcess:!1},cw=r=>{if(r=Object.assign({},US,r),!!globalThis.document||r.singleProcess){let e=new EventTarget;return vf.addEventListener("message",ow(e,"requestReadLock",mf,yf,gf)),vf.addEventListener("message",ow(e,"requestWriteLock",wf,Ef,xf)),e}return{isWorker:!0,readLock:e=>aw(e,mf,gf,yf),writeLock:e=>aw(e,wf,xf,Ef)}};var Qn={},dn;async function bf(r,t){let e,n=new Promise(i=>{e=i});return r.add(async()=>await pf((async()=>await new Promise(i=>{e(()=>{i()})}))(),{milliseconds:t.timeout})),await n}var FS=(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 bf(n,t);n=new Ki({concurrency:t.concurrency,autoStart:!1});let i=n,s=bf(n,t);return e.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await bf(e,t)}}},KS={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function _f(r){let t=Object.assign({},KS,r);return dn==null&&(dn=cw(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]=FS(t.name,t)),Qn[t.name]}var lw=U("libp2p:peer-store:store"),uw="/peers/",ic=class{constructor(t){this.components=t,this.lock=_f({name:"peer-store",singleProcess:!0})}_peerIdToDatastoreKey(t){if(t.type==null)throw lw.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(`${uw}${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:It(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 lw.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:It(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:uw})){let e=t.toString().split("/")[2],n=Ee.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),sc.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(sc.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 sc;(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())})(sc||(sc={}));var Oe=U("libp2p:peer-store"),oc=class extends Pt{constructor(t,e={}){super(),this.components=t,this.store=new ic(t),this.addressBook=new Va(this.dispatchEvent.bind(this),this.store,e.addressFilter),this.keyBook=new qa(this.dispatchEvent.bind(this),this.store),this.metadataBook=new za(this.dispatchEvent.bind(this),this.store),this.protoBook=new Ga(this.dispatchEvent.bind(this),this.store)}async forEach(t){Oe.trace("getPeers await read lock");let e=await this.store.lock.readLock();Oe.trace("getPeers got read lock");try{for await(let n of this.store.all())n.id.equals(this.components.peerId)||t(n)}finally{Oe.trace("getPeers release read lock"),e()}}async all(){let t=[];return await this.forEach(e=>{t.push(e)}),t}async delete(t){Oe.trace("delete await write lock");let e=await this.store.lock.writeLock();Oe.trace("delete got write lock");try{await this.store.delete(t)}finally{Oe.trace("delete release write lock"),e()}}async get(t){Oe.trace("get await read lock");let e=await this.store.lock.readLock();Oe.trace("get got read lock");try{return await this.store.load(t)}finally{Oe.trace("get release read lock"),e()}}async has(t){Oe.trace("has await read lock");let e=await this.store.lock.readLock();Oe.trace("has got read lock");try{return await this.store.has(t)}finally{Oe.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 ac=class{constructor(t){this.dht=t}async provide(t){await Ue(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 Ue(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 Sf;(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())})(Sf||(Sf={}));var cc=async()=>{let r=await xa("Ed25519"),t=await VS(r);if(t.type==="Ed25519")return t;throw new Error(`Generated unexpected PeerId type "${t.type}"`)};async function VS(r){return await $r(Fy(r.public),Ky(r))}var If=N(tr(),1);var lc=globalThis.CustomEvent??Event;async function*Af(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 lc("task-complete"))},y=>{m.done=!0,m.err=y,i.dispatchEvent(new lc("task-complete"))})}c=!0,i.dispatchEvent(new lc("task-complete"))}catch(p){l=p,i.dispatchEvent(new lc("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 Tf=N(_r(),1);var uc="/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"),Rf=4,qS=5e3,$S=6e4,fc=class{constructor(t,e){this.components=t,this.started=!1,this._init=e,this.startupDelay=e.startupDelay??qS,this.refreshInterval=e.refreshInterval??$S,this._verifyExternalAddresses=this._verifyExternalAddresses.bind(this)}isStarted(){return this.started}async start(){this.started||(await this.components.registrar.handle(uc,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(uc),clearTimeout(this.verifyAddressTimeout),this.started=!1}async handleIncomingAutonatStream(t){let e=new Tf.TimeoutController(this._init.timeout);try{(0,If.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=>It(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(ot("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}})},Ae(),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 Tf.TimeoutController(this._init.timeout);try{(0,If.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 cc()).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(uc,{signal:n.signal}),p=ye(d,n.signal),m=await Ft([s],Ae(),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 Af(Qi(this.components.peerRouting.getClosestPeers(a,{signal:n.signal}),h=>async()=>await u(h)),{concurrency:Rf}))try{if(f==null)continue;let h=f.addr==null?e[0]:It(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===Rf){lt("%s is externally dialable",h),t.confirmObservedAddr(h);return}if(c[d].failure===Rf){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 hc=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 Bf=N(Sc(),1),Df=N(dw(),1);var pw=globalThis.fetch,mw=globalThis.Headers,sk=globalThis.Request,ok=globalThis.Response;function dc(r,t,e){return`${r}?name=${t}&type=${e}`}async function yw(r,t){return await(await pw(r,{headers:new mw({accept:"application/dns-json"}),signal:t})).json()}function Xn(r,t){return`${t}_${r}`}var Cf=Object.assign((0,Bf.default)("dns-over-http-resolver"),{error:(0,Bf.default)("dns-over-http-resolver:error")}),Lf=class{constructor(t={}){this._cache=new Df.default({max:t?.maxCache??100}),this._TXTcache=new Df.default({max:t?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=t.request??yw,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(dc(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),Cf.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(dc(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),Cf.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(dc(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),Cf.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()}},gw=Lf;var ww=gw;var{code:WS}=ot("dnsaddr");async function Ew(r,t={}){let e=new ww;t.signal!=null&&t.signal.addEventListener("abort",()=>{e.cancel()});let n=r.getPeerId(),[,i]=r.stringTuples().find(([a])=>a===WS)??[];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 Pf(r){let{address:t}=r.nodeAddress();return!!Yn(t)}function pc(r,t){let e=Pf(r.multiaddr),n=Pf(t.multiaddr);return e&&!n?1:!e&&n||r.isCertified&&!t.isCertified?-1:!r.isCertified&&t.isCertified?1:0}var ZS={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:r=>r},connectionManager:{maxConnections:300,minConnections:50,autoDialInterval:1e4,maxParallelDials:100,maxDialsPerPeer:4,dialTimeout:3e4,inboundUpgradeTimeout:3e4,resolvers:{dnsaddr:Ew},addressSorter:pc},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:ju},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 xw(r){let t=Ce(ZS,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===ju&&(Lg||Bg?t.identify.host.agentVersion+=` UserAgent=${globalThis.process.version}`:(Ks||Pg||Dg||Ng)&&(t.identify.host.agentVersion+=` UserAgent=${globalThis.navigator.userAgent}`)),t}var vw=Symbol.for("@libp2p/peer-discovery");var mc=class extends Pt{get[vw](){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 yc=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 Uw=N(_r(),1),Kf=N(Uf(),1),Fw=N(tr(),1);var kw=N(Uf(),1),Ow=N(Pw(),1),Ff=N(tr(),1);var Nw=U("libp2p:dialer:dial-request"),gc=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 Ow.default;for(let a of e)n.push(a).catch(c=>{Nw.error(c)});let i=this.addrs.map(()=>{let a=new AbortController;try{(0,Ff.setMaxListeners)?.(1/0,a.signal)}catch{}return a});if(t.signal!=null)try{(0,Ff.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,kw.anySignal)([h,t.signal]):h}),i[c]=void 0}finally{s++,this.addrs.length-s>=e.length?n.push(l).catch(h=>{Nw.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 mr=U("libp2p:dialer"),wc=class{constructor(t,e={}){this.started=!1,this.addressSorter=e.addressSorter??pc,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??{}))ol.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){mr.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}=Lo(t);if(n!=null){if(this.components.peerId.equals(n))throw new w("Tried to dial self",S.ERR_DIALED_SELF);if(i!=null&&(mr("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)}mr("creating dial target for %p",n);let s=new AbortController,o=Mw();this.pendingDialTargets.set(o,s);let a=s.signal;e.signal!=null&&(a=(0,Kf.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 mr("dial succeeded to %s",c.id),u}catch(u){throw mr("dial failed to %s",c.id,u),l.controller.signal.aborted&&(u.code=S.ERR_TIMEOUT),mr.error(u),u}finally{l.destroy()}}getPendingDialTargets(){return this.pendingDialTargets}hasPendingDial(t){return xe(t)?this.pendingDials.has(t.getPeerId()??""):this.pendingDials.has(t.toString())}async _createDialTarget(t,e){let n=[];if(xe(t.multiaddr)&&n.push(t.multiaddr),!xe(t.multiaddr)&&bn(t.peerId)&&n.push(...await this._loadAddresses(t.peerId)),n=(await Promise.all(n.map(async s=>await this._resolve(s,e)))).flat().filter(s=>!!this.components.transportManager.transportForMultiaddr(s)),n=[...new Set(n.map(s=>s.toString()))].map(s=>It(s)),n.length>this.maxAddrsToDial)throw new w("dial with more addresses than allowed",S.ERR_TOO_MANY_ADDRESSES);let i=bn(t.peerId)?t.peerId:void 0;if(i!=null){let s=`/p2p/${i.toString()}`;n=n.map(o=>{let a=o.getPeerId();return a==null||!i.equals(a)?o.encapsulate(s):o})}return{id:i==null?Mw():i.toString(),addrs:n}}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(tA).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 mr.error("dial to %s failed",l,f),f})},i=new gc({addrs:t.addrs,dialAction:n,dialer:this}),s=new Uw.TimeoutController(this.timeout),o=[s.signal];e.signal!=null&&o.push(e.signal);let a=(0,Kf.anySignal)(o);try{(0,Fw.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 mr("%d tokens request, returning %d, %d remaining",t,e,this.tokens.length),n}releaseToken(t){this.tokens.includes(t)||(mr("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=It(t.toString()),await t.resolve(e)}catch(n){return mr.error(`multiaddr ${t.toString()} could not be resolved`,n),[]}}};function tA(r){return!!r}function Mw(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var yr=U("libp2p"),Vf=class extends Pt{constructor(t){super(),this.started=!1,this.peerId=t.peerId;let e=this.components=new hc({peerId:t.peerId,datastore:t.datastore??new po,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 oc(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 Ba(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 wc(this.components,t.connectionManager),this.connectionManager=this.components.connectionManager=new No(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 Ca(this.components),this.components.transportManager=new ba(this.components,t.transportManager),this.components.addressManager=new So(this.components,t.addresses),this.configureComponent(new Ua(this.components));let n=qn.generateOptions();this.keychain=this.configureComponent(new qn(this.components,{...n,...t.keychain})),this.services.push(new Ma(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 mc,t.pubsub!=null?this.pubsub=this.components.pubsub=t.pubsub(this.components):this.pubsub=new yc;let i=(t.peerRouters??[]).map(o=>this.configureComponent(o(this.components)));t.dht!=null&&(i.push(this.configureComponent(new Fa(this.dht))),this.dht.addEventListener("peer",o=>{this.onDiscoveryPeer(o)})),this.peerRouting=this.components.peerRouting=this.configureComponent(new vo(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 ac(this.dht))),this.contentRouting=this.components.contentRouting=this.configureComponent(new _o(this.components,{routers:s})),this.fetchService=this.configureComponent(new La(this.components,{...t.fetch})),this.pingService=this.configureComponent(new Pa(this.components,{...t.ping})),this.autonatService=this.configureComponent(new fc(this.components,{...t.autonat})),this.configureComponent(new ko(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){xe(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(xe(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(xe(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 Kw(r){if(r.peerId==null){let t=r.datastore;if(t!=null)try{let e=new qn({datastore:t},Ce(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 cc()),new Vf(xw(r))}async function eA(r){let t=await Kw(r);return r.start!==!1&&await t.start(),t}return Gw(rA);})();
50
50
  /*! Bundled license information:
51
51
 
52
52
  @noble/secp256k1/lib/esm/index.js: