@libp2p/kad-dht 10.0.12 → 10.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +10 -10
- package/package.json +3 -3
package/dist/index.min.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PKadDht = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
-
"use strict";var Libp2PKadDht=(()=>{var i6=Object.create;var U0=Object.defineProperty;var o6=Object.getOwnPropertyDescriptor;var s6=Object.getOwnPropertyNames;var a6=Object.getPrototypeOf,c6=Object.prototype.hasOwnProperty;var nt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ft=(e,t)=>{for(var r in t)U0(e,r,{get:t[r],enumerable:!0})},u2=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of s6(t))!c6.call(e,i)&&i!==r&&U0(e,i,{get:()=>t[i],enumerable:!(n=o6(t,i))||n.enumerable});return e};var St=(e,t,r)=>(r=e!=null?i6(a6(e)):{},u2(t||!e||!e.__esModule?U0(r,"default",{value:e,enumerable:!0}):r,e)),u6=e=>u2(U0({},"__esModule",{value:!0}),e);var p2=nt((ih,d2)=>{var an=1e3,cn=an*60,un=cn*60,Dr=un*24,f6=Dr*7,l6=Dr*365.25;d2.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return h6(e);if(r==="number"&&isFinite(e))return t.long?p6(e):d6(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function h6(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*l6;case"weeks":case"week":case"w":return r*f6;case"days":case"day":case"d":return r*Dr;case"hours":case"hour":case"hrs":case"hr":case"h":return r*un;case"minutes":case"minute":case"mins":case"min":case"m":return r*cn;case"seconds":case"second":case"secs":case"sec":case"s":return r*an;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function d6(e){var t=Math.abs(e);return t>=Dr?Math.round(e/Dr)+"d":t>=un?Math.round(e/un)+"h":t>=cn?Math.round(e/cn)+"m":t>=an?Math.round(e/an)+"s":e+"ms"}function p6(e){var t=Math.abs(e);return t>=Dr?K0(e,t,Dr,"day"):t>=un?K0(e,t,un,"hour"):t>=cn?K0(e,t,cn,"minute"):t>=an?K0(e,t,an,"second"):e+" ms"}function K0(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var g2=nt((oh,y2)=>{function y6(e){r.debug=r,r.default=r,r.coerce=c,r.disable=o,r.enable=i,r.enabled=a,r.humanize=p2(),r.destroy=u,Object.keys(e).forEach(f=>{r[f]=e[f]}),r.names=[],r.skips=[],r.formatters={};function t(f){let l=0;for(let p=0;p<f.length;p++)l=(l<<5)-l+f.charCodeAt(p),l|=0;return r.colors[Math.abs(l)%r.colors.length]}r.selectColor=t;function r(f){let l,p=null,d,h;function y(...g){if(!y.enabled)return;let m=y,x=Number(new Date),v=x-(l||x);m.diff=v,m.prev=l,m.curr=x,l=x,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let C=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(S,L)=>{if(S==="%%")return"%";C++;let N=r.formatters[L];if(typeof N=="function"){let $=g[C];S=N.call(m,$),g.splice(C,1),C--}return S}),r.formatArgs.call(m,g),(m.log||r.log).apply(m,g)}return y.namespace=f,y.useColors=r.useColors(),y.color=r.selectColor(f),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(d!==r.namespaces&&(d=r.namespaces,h=r.enabled(f)),h),set:g=>{p=g}}),typeof r.init=="function"&&r.init(y),y}function n(f,l){let p=r(this.namespace+(typeof l>"u"?":":l)+f);return p.log=this.log,p}function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let l,p=(typeof f=="string"?f:"").split(/[\s,]+/),d=p.length;for(l=0;l<d;l++)p[l]&&(f=p[l].replace(/\*/g,".*?"),f[0]==="-"?r.skips.push(new RegExp("^"+f.slice(1)+"$")):r.names.push(new RegExp("^"+f+"$")))}function o(){let f=[...r.names.map(s),...r.skips.map(s).map(l=>"-"+l)].join(",");return r.enable(""),f}function a(f){if(f[f.length-1]==="*")return!0;let l,p;for(l=0,p=r.skips.length;l<p;l++)if(r.skips[l].test(f))return!1;for(l=0,p=r.names.length;l<p;l++)if(r.names[l].test(f))return!0;return!1}function s(f){return f.toString().substring(2,f.toString().length-2).replace(/\.\*\?$/,"*")}function c(f){return f instanceof Error?f.stack||f.message:f}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}y2.exports=y6});var m2=nt((fe,M0)=>{fe.formatArgs=m6;fe.save=x6;fe.load=v6;fe.useColors=g6;fe.storage=b6();fe.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();fe.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 g6(){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 m6(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+M0.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}fe.log=console.debug||console.log||(()=>{});function x6(e){try{e?fe.storage.setItem("debug",e):fe.storage.removeItem("debug")}catch{}}function v6(){let e;try{e=fe.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function b6(){try{return localStorage}catch{}}M0.exports=g2()(fe);var{formatters:w6}=M0.exports;w6.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var I2=nt(Wn=>{(function(){var e,t,r,n,i,o,a,s;s=function(c){var u,f,l,p;return u=(c&255<<24)>>>24,f=(c&255<<16)>>>16,l=(c&65280)>>>8,p=c&255,[u,f,l,p].join(".")},a=function(c){var u,f,l,p,d,h;for(u=[],l=p=0;p<=3&&c.length!==0;l=++p){if(l>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}h=t(c),d=h[0],f=h[1],c=c.substring(f),u.push(d)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),o=r("a"),i=r("A"),t=function(c){var u,f,l,p,d;for(p=0,u=10,f="9",l=0,c.length>1&&c[l]==="0"&&(c[l+1]==="x"||c[l+1]==="X"?(l+=2,u=16):"0"<=c[l+1]&&c[l+1]<="9"&&(l++,u=8,f="7")),d=l;l<c.length;){if("0"<=c[l]&&c[l]<=f)p=p*u+(r(c[l])-n)>>>0;else if(u===16)if("a"<=c[l]&&c[l]<="f")p=p*u+(10+r(c[l])-o)>>>0;else if("A"<=c[l]&&c[l]<="F")p=p*u+(10+r(c[l])-i)>>>0;else break;else break;if(p>4294967295)throw new Error("too large");l++}if(l===d)throw new Error("empty octet");return[p,l]},e=function(){function c(u,f){var l,p,d,h;if(typeof u!="string")throw new Error("Missing `net' parameter");if(f||(h=u.split("/",2),u=h[0],f=h[1]),f||(f=32),typeof f=="string"&&f.indexOf(".")>-1){try{this.maskLong=a(f)}catch(y){throw l=y,new Error("Invalid mask: "+f)}for(p=d=32;d>=0;p=--d)if(this.maskLong===4294967295<<32-p>>>0){this.bitmask=p;break}}else if(f||f===0)this.bitmask=parseInt(f,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(a(u)&this.maskLong)>>>0}catch(y){throw l=y,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+f);this.size=Math.pow(2,32-this.bitmask),this.base=s(this.netLong),this.mask=s(this.maskLong),this.hostmask=s(~this.maskLong),this.first=this.bitmask<=30?s(this.netLong+1):this.base,this.last=this.bitmask<=30?s(this.netLong+this.size-2):s(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?s(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):(a(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(s(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var f,l,p;for(p=a(this.first),l=a(this.last),f=0;p<=l;)u(s(p),p,f),f++,p++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Wn.ip2long=a,Wn.long2ip=s,Wn.Netmask=e}).call(Wn)});var P2=nt((R2,G0)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),o="%[0-9a-z]{1,}",a="(?:[0-9a-f]+::?)+",s={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${a})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${a})|(?:::)(?:${a})?)${t}\\.${t}\\.${t}\\.${t}(${o})?$`,"i")};function c(d,h){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let y=0,g=-1,m=(d.match(s.zoneIndex)||[])[0],x,v;for(m&&(m=m.substring(1),d=d.replace(/%.+$/,""));(g=d.indexOf(":",g+1))>=0;)y++;if(d.substr(0,2)==="::"&&y--,d.substr(-2,2)==="::"&&y--,y>h)return null;for(v=h-y,x=":";v--;)x+="0:";return d=d.replace("::",x),d[0]===":"&&(d=d.slice(1)),d[d.length-1]===":"&&(d=d.slice(0,-1)),h=function(){let C=d.split(":"),E=[];for(let S=0;S<C.length;S++)E.push(parseInt(C[S],16));return E}(),{parts:h,zoneId:m}}function u(d,h,y,g){if(d.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let m=0,x;for(;g>0;){if(x=y-g,x<0&&(x=0),d[m]>>x!==h[m]>>x)return!1;g-=y,m+=1}return!0}function f(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 l(d,h){for(;d.length<h;)d=`0${d}`;return d}let p={};p.IPv4=function(){function d(h){if(h.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let y,g;for(y=0;y<h.length;y++)if(g=h[y],!(0<=g&&g<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=h}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,18,0,0]),15],[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(h,y){let g;if(y===void 0&&(g=h,h=g[0],y=g[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,y)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,y=!1,g={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},m,x,v;for(m=3;m>=0;m-=1)if(x=this.octets[m],x in g){if(v=g[x],y&&v!==0)return null;v!==8&&(y=!0),h+=v}else return null;return 32-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){return this.octets.slice(0)},d.prototype.toIPv4MappedAddress=function(){return p.IPv6.parse(`::ffff:${this.toString()}`)},d.prototype.toNormalizedString=function(){return this.toString()},d.prototype.toString=function(){return this.octets.join(".")},d}(),p.IPv4.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),y=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<4;)m.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.isIPv4=function(d){return this.parser(d)!==null},p.IPv4.isValid=function(d){try{return new this(this.parser(d)),!0}catch{return!1}},p.IPv4.isValidFourPartDecimal=function(d){return!!(p.IPv4.isValid(d)&&d.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},p.IPv4.networkAddressFromCIDR=function(d){let h,y,g,m,x;try{for(h=this.parseCIDR(d),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],y=0;y<4;)m.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.parse=function(d){let h=this.parser(d);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},p.IPv4.parseCIDR=function(d){let h;if(h=d.match(/^(.+)\/(\d+)$/)){let y=parseInt(h[2]);if(y>=0&&y<=32){let g=[this.parse(h[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")},p.IPv4.parser=function(d){let h,y,g;if(h=d.match(r.fourOctet))return function(){let m=h.slice(1,6),x=[];for(let v=0;v<m.length;v++)y=m[v],x.push(f(y));return x}();if(h=d.match(r.longValue)){if(g=f(h[1]),g>4294967295||g<0)throw new Error("ipaddr: address outside defined range");return function(){let m=[],x;for(x=0;x<=24;x+=8)m.push(g>>x&255);return m}().reverse()}else return(h=d.match(r.twoOctet))?function(){let m=h.slice(1,4),x=[];if(g=f(m[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(g>>16&255),x.push(g>>8&255),x.push(g&255),x}():(h=d.match(r.threeOctet))?function(){let m=h.slice(1,5),x=[];if(g=f(m[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(f(m[1])),x.push(g>>8&255),x.push(g&255),x}():null},p.IPv4.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)h[y]=255,y++;return g<4&&(h[g]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.IPv6=function(){function d(h,y){let g,m;if(h.length===16)for(this.parts=[],g=0;g<=14;g+=2)this.parts.push(h[g]<<8|h[g+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(g=0;g<this.parts.length;g++)if(m=this.parts[g],!(0<=m&&m<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");y&&(this.zoneId=y)}return d.prototype.SpecialRanges={unspecified:[new d([0,0,0,0,0,0,0,0]),128],linkLocal:[new d([65152,0,0,0,0,0,0,0]),10],multicast:[new d([65280,0,0,0,0,0,0,0]),8],loopback:[new d([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new d([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new d([0,0,0,0,0,65535,0,0]),96],rfc6145:[new d([0,0,0,0,65535,0,0,0]),96],rfc6052:[new d([100,65435,0,0,0,0,0,0]),96],"6to4":[new d([8194,0,0,0,0,0,0,0]),16],teredo:[new d([8193,0,0,0,0,0,0,0]),32],reserved:[[new d([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new d([8193,2,0,0,0,0,0,0]),48],amt:[new d([8193,3,0,0,0,0,0,0]),32],as112v6:[new d([8193,4,274,0,0,0,0,0]),48],deprecated:[new d([8193,16,0,0,0,0,0,0]),28],orchid2:[new d([8193,32,0,0,0,0,0,0]),28]},d.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},d.prototype.kind=function(){return"ipv6"},d.prototype.match=function(h,y){let g;if(y===void 0&&(g=h,h=g[0],y=g[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,y)},d.prototype.prefixLengthFromSubnetMask=function(){let h=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},m,x;for(let v=7;v>=0;v-=1)if(m=this.parts[v],m in g){if(x=g[m],y&&x!==0)return null;x!==16&&(y=!0),h+=x}else return null;return 128-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){let h,y=[],g=this.parts;for(let m=0;m<g.length;m++)h=g[m],y.push(h>>8),y.push(h&255);return y},d.prototype.toFixedLengthString=function(){let h=function(){let g=[];for(let m=0;m<this.parts.length;m++)g.push(l(this.parts[m].toString(16),4));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),h+y},d.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let h=this.parts.slice(-2),y=h[0],g=h[1];return new p.IPv4([y>>8,y&255,g>>8,g&255])},d.prototype.toNormalizedString=function(){let h=function(){let g=[];for(let m=0;m<this.parts.length;m++)g.push(this.parts[m].toString(16));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),h+y},d.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,y=this.toNormalizedString(),g=0,m=-1,x;for(;x=h.exec(y);)x[0].length>m&&(g=x.index,m=x[0].length);return m<0?y:`${y.substring(0,g)}::${y.substring(g+m)}`},d.prototype.toString=function(){return this.toRFC5952String()},d}(),p.IPv6.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),y=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<16;)m.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(m)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},p.IPv6.isIPv6=function(d){return this.parser(d)!==null},p.IPv6.isValid=function(d){if(typeof d=="string"&&d.indexOf(":")===-1)return!1;try{let h=this.parser(d);return new this(h.parts,h.zoneId),!0}catch{return!1}},p.IPv6.networkAddressFromCIDR=function(d){let h,y,g,m,x;try{for(h=this.parseCIDR(d),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],y=0;y<16;)m.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(m)}catch(v){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${v})`)}},p.IPv6.parse=function(d){let h=this.parser(d);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},p.IPv6.parseCIDR=function(d){let h,y,g;if((y=d.match(/^(.+)\/(\d+)$/))&&(h=parseInt(y[2]),h>=0&&h<=128))return g=[this.parse(y[1]),h],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},p.IPv6.parser=function(d){let h,y,g,m,x,v;if(g=d.match(s.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(s.native.test(d))return c(d,8);if((g=d.match(s.transitional))&&(v=g[6]||"",h=c(g[1].slice(0,-1)+v,6),h.parts)){for(x=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],y=0;y<x.length;y++)if(m=x[y],!(0<=m&&m<=255))return null;return h.parts.push(x[0]<<8|x[1]),h.parts.push(x[2]<<8|x[3]),{parts:h.parts,zoneId:h.zoneId}}return null},p.IPv6.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)h[y]=255,y++;return g<16&&(h[g]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.fromByteArray=function(d){let h=d.length;if(h===4)return new p.IPv4(d);if(h===16)return new p.IPv6(d);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},p.isValid=function(d){return p.IPv6.isValid(d)||p.IPv4.isValid(d)},p.parse=function(d){if(p.IPv6.isValid(d))return p.IPv6.parse(d);if(p.IPv4.isValid(d))return p.IPv4.parse(d);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},p.parseCIDR=function(d){try{return p.IPv6.parseCIDR(d)}catch{try{return p.IPv4.parseCIDR(d)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},p.process=function(d){let h=this.parse(d);return h.kind()==="ipv6"&&h.isIPv4MappedAddress()?h.toIPv4Address():h},p.subnetMatch=function(d,h,y){let g,m,x,v;y==null&&(y="unicast");for(m in h)if(Object.prototype.hasOwnProperty.call(h,m)){for(x=h[m],x[0]&&!(x[0]instanceof Array)&&(x=[x]),g=0;g<x.length;g++)if(v=x[g],d.kind()===v[0].kind()&&d.match.apply(d,v))return m}return y},typeof G0<"u"&&G0.exports?G0.exports=p:e.ipaddr=p})(R2)});var Za=nt((Xg,Wa)=>{"use strict";function Ya(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function qc(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return Ya(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Ya(new i,r)}}Wa.exports=qc});var ut=nt((ym,Ja)=>{Ja.exports={options:{usePureJavaScript:!1}}});var e3=nt((gm,t3)=>{var ko={};t3.exports=ko;var ja={};ko.encode=function(e,t,r){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(e instanceof Uint8Array))n=$c(e,t);else{var i=0,o=t.length,a=t.charAt(0),s=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[i];c<s.length;++c)u+=s[c]<<8,s[c]=u%o,u=u/o|0;for(;u>0;)s.push(u%o),u=u/o|0}for(i=0;e[i]===0&&i<e.length-1;++i)n+=a;for(i=s.length-1;i>=0;--i)n+=t[s[i]]}if(r){var f=new RegExp(".{1,"+r+"}","g");n=n.match(f).join(`\r
|
|
3
|
-
`)}return n};ko.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var r=ja[t];if(!r){r=ja[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,o=t.charAt(0),a=[0],n=0;n<e.length;n++){var s=r[e.charCodeAt(n)];if(s===void 0)return;for(var c=0,u=s;c<a.length;++c)u+=a[c]*i,a[c]=u&255,u>>=8;for(;u>0;)a.push(u&255),u>>=8}for(var f=0;e[f]===o&&f<e.length-1;++f)a.push(0);return typeof Buffer<"u"?Buffer.from(a.reverse()):new Uint8Array(a.reverse())};function $c(e,t){var r=0,n=t.length,i=t.charAt(0),o=[0];for(r=0;r<e.length();++r){for(var a=0,s=e.at(r);a<o.length;++a)s+=o[a]<<8,o[a]=s%n,s=s/n|0;for(;s>0;)o.push(s%n),s=s/n|0}var c="";for(r=0;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=o.length-1;r>=0;--r)c+=t[o[r]];return c}});var kt=nt((mm,o3)=>{var r3=ut(),n3=e3(),b=o3.exports=r3.util=r3.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){b.nextTick=process.nextTick,typeof setImmediate=="function"?b.setImmediate=setImmediate:b.setImmediate=b.nextTick;return}if(typeof setImmediate=="function"){b.setImmediate=function(){return setImmediate.apply(void 0,arguments)},b.nextTick=function(s){return setImmediate(s)};return}if(b.setImmediate=function(s){setTimeout(s,0)},typeof window<"u"&&typeof window.postMessage=="function"){let s=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(f){f()})}};var a=s,e="forge.setImmediate",t=[];b.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",s,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var o=b.setImmediate;b.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),o(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}b.nextTick=b.setImmediate})();b.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;b.globalScope=function(){return b.isNodejs?globalThis:typeof self>"u"?window:self}();b.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};b.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};b.isArrayBufferView=function(e){return e&&b.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function f0(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}b.ByteBuffer=Do;function Do(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(b.isArrayBuffer(e)||b.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var r=0;r<t.length;++r)this.putByte(t[r])}}else(e instanceof Do||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}b.ByteStringBuffer=Do;var Gc=4096;b.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>Gc&&(this.data.substr(0,1),this._constructedStringLength=0)};b.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};b.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};b.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};b.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this};b.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};b.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(b.encodeUtf8(e))};b.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};b.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};b.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};b.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};b.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};b.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};b.ByteStringBuffer.prototype.putInt=function(e,t){f0(t);var r="";do t-=8,r+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(r)};b.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)};b.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())};b.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};b.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e};b.ByteStringBuffer.prototype.getInt24=function(){var e=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,e};b.ByteStringBuffer.prototype.getInt32=function(){var e=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,e};b.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e};b.ByteStringBuffer.prototype.getInt24Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,e};b.ByteStringBuffer.prototype.getInt32Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,e};b.ByteStringBuffer.prototype.getInt=function(e){f0(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t};b.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};b.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};b.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};b.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};b.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this};b.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};b.ByteStringBuffer.prototype.copy=function(){var e=b.createBuffer(this.data);return e.read=this.read,e};b.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};b.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};b.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this};b.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.length;++t){var r=this.data.charCodeAt(t);r<16&&(e+="0"),e+=r.toString(16)}return e};b.ByteStringBuffer.prototype.toString=function(){return b.decodeUtf8(this.bytes())};function Qc(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=b.isArrayBuffer(e),n=b.isArrayBufferView(e);if(r||n){r?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}b.DataBuffer=Qc;b.DataBuffer.prototype.length=function(){return this.write-this.read};b.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};b.DataBuffer.prototype.accommodate=function(e,t){if(this.length()>=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this};b.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};b.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r<t;++r)this.data.setUint8(e);return this};b.DataBuffer.prototype.putBytes=function(e,t){if(b.isArrayBufferView(e)){var r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(b.isArrayBuffer(e)){var r=new Uint8Array(e);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(e instanceof b.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&b.isArrayBufferView(e.data)){var r=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(r.byteLength);var i=new Uint8Array(e.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(e instanceof b.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var o;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.hex.decode(e,o,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.base64.decode(e,o,this.write),this;if(t==="utf8"&&(e=b.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.raw.decode(o),this;if(t==="utf16")return this.accommodate(e.length*2),o=new Uint16Array(this.data.buffer,this.write),this.write+=b.text.utf16.encode(o),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)};b.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this};b.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")};b.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this};b.DataBuffer.prototype.putInt24=function(e){return this.accommodate(3),this.data.setInt16(this.write,e>>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this};b.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};b.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};b.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this};b.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};b.DataBuffer.prototype.putInt=function(e,t){f0(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};b.DataBuffer.prototype.putSignedInt=function(e,t){return f0(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)};b.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};b.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e};b.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e};b.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e};b.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e};b.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e};b.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e};b.DataBuffer.prototype.getInt=function(e){f0(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};b.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};b.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};b.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};b.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};b.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};b.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};b.DataBuffer.prototype.copy=function(){return new b.DataBuffer(this)};b.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};b.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};b.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};b.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var r=this.data.getUint8(t);r<16&&(e+="0"),e+=r.toString(16)}return e};b.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return b.binary.raw.encode(t);if(e==="hex")return b.binary.hex.encode(t);if(e==="base64")return b.binary.base64.encode(t);if(e==="utf8")return b.text.utf8.decode(t);if(e==="utf16")return b.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};b.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=b.encodeUtf8(e)),new b.ByteBuffer(e)};b.fillString=function(e,t){for(var r="";t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};b.xorBytes=function(e,t,r){for(var n="",i="",o="",a=0,s=0;r>0;--r,++a)i=e.charCodeAt(a)^t.charCodeAt(a),s>=10&&(n+=o,o="",s=0),o+=String.fromCharCode(i),++s;return n+=o,n};b.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t};b.bytesToHex=function(e){return b.createBuffer(e).toHex()};b.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var wr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Er=[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],i3="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";b.encode64=function(e,t){for(var r="",n="",i,o,a,s=0;s<e.length;)i=e.charCodeAt(s++),o=e.charCodeAt(s++),a=e.charCodeAt(s++),r+=wr.charAt(i>>2),r+=wr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=wr.charAt((o&15)<<2|a>>6),r+=isNaN(a)?"=":wr.charAt(a&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
4
|
-
`,r=r.substr(t));return n+=r,n};b.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,o,a=0;a<e.length;)r=Er[e.charCodeAt(a++)-43],n=Er[e.charCodeAt(a++)-43],i=Er[e.charCodeAt(a++)-43],o=Er[e.charCodeAt(a++)-43],t+=String.fromCharCode(r<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),o!==64&&(t+=String.fromCharCode((i&3)<<6|o)));return t};b.encodeUtf8=function(e){return unescape(encodeURIComponent(e))};b.decodeUtf8=function(e){return decodeURIComponent(escape(e))};b.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:
|
|
5
|
-
`,r=r.substr(t));return n+=r,n};b.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,o,a,s,c=0,u=r;c<e.length;)i=Er[e.charCodeAt(c++)-43],o=Er[e.charCodeAt(c++)-43],a=Er[e.charCodeAt(c++)-43],s=Er[e.charCodeAt(c++)-43],n[u++]=i<<2|o>>4,a!==64&&(n[u++]=(o&15)<<4|a>>2,s!==64&&(n[u++]=(a&3)<<6|s));return t?u-r:n.subarray(0,u)};b.binary.base58.encode=function(e,t){return b.binary.baseN.encode(e,i3,t)};b.binary.base58.decode=function(e,t){return b.binary.baseN.decode(e,i3,t)};b.text={utf8:{},utf16:{}};b.text.utf8.encode=function(e,t,r){e=b.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o);return t?i-r:n};b.text.utf8.decode=function(e){return b.decodeUtf8(String.fromCharCode.apply(null,e))};b.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var o=r,a=r,s=0;s<e.length;++s)i[a++]=e.charCodeAt(s),o+=2;return t?o-r:n};b.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};b.deflate=function(e,t,r){if(t=b.decode64(e.deflate(b.encode64(t)).rval),r){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};b.inflate=function(e,t,r){var n=e.inflate(b.encode64(t)).rval;return n===null?null:b.decode64(n)};var Oo=function(e,t,r){if(!e)throw new Error("WebStorage not available.");var n;if(r===null?n=e.removeItem(t):(r=b.encode64(JSON.stringify(r)),n=e.setItem(t,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},Uo=function(e,t){if(!e)throw new Error("WebStorage not available.");var r=e.getItem(t);if(e.init)if(r.rval===null){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return r!==null&&(r=JSON.parse(b.decode64(r))),r},Yc=function(e,t,r,n){var i=Uo(e,t);i===null&&(i={}),i[r]=n,Oo(e,t,i)},Wc=function(e,t,r){var n=Uo(e,t);return n!==null&&(n=r in n?n[r]:null),n},Zc=function(e,t,r){var n=Uo(e,t);if(n!==null&&r in n){delete n[r];var i=!0;for(var o in n){i=!1;break}i&&(n=null),Oo(e,t,n)}},Xc=function(e,t){Oo(e,t,null)},a1=function(e,t,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,o=!1,a=null;for(var s in r){i=r[s];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),o=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),o=!0)}catch(c){a=c}if(o)break}if(!o)throw a;return n};b.setItem=function(e,t,r,n,i){a1(Yc,arguments,i)};b.getItem=function(e,t,r,n){return a1(Wc,arguments,n)};b.removeItem=function(e,t,r,n){a1(Zc,arguments,n)};b.clearItems=function(e,t,r){a1(Xc,arguments,r)};b.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};b.format=function(e){for(var t=/%./g,r,n,i=0,o=[],a=0;r=t.exec(e);){n=e.substring(a,t.lastIndex-2),n.length>0&&o.push(n),a=t.lastIndex;var s=r[0][1];switch(s){case"s":case"o":i<arguments.length?o.push(arguments[i+++1]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+s+"?>")}}return o.push(e.substring(a)),o.join("")};b.formatNumber=function(e,t,r,n){var i=e,o=isNaN(t=Math.abs(t))?2:t,a=r===void 0?",":r,s=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(o),10)+"",f=u.length>3?u.length%3:0;return c+(f?u.substr(0,f)+s:"")+u.substr(f).replace(/(\d{3})(?=\d)/g,"$1"+s)+(o?a+Math.abs(i-u).toFixed(o).slice(2):"")};b.formatSize=function(e){return e>=1073741824?e=b.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=b.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=b.formatNumber(e/1024,0)+" KiB":e=b.formatNumber(e,0)+" bytes",e};b.bytesFromIP=function(e){return e.indexOf(".")!==-1?b.bytesFromIPv4(e):e.indexOf(":")!==-1?b.bytesFromIPv6(e):null};b.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=b.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};b.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(a){return a.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=b.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var o=b.hexToBytes(e[i]);o.length<2&&n.putByte(0),n.putBytes(o)}return n.getBytes()};b.bytesToIP=function(e){return e.length===4?b.bytesToIPv4(e):e.length===16?b.bytesToIPv6(e):null};b.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")};b.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var o=b.bytesToHex(e[i]+e[i+1]);o[0]==="0"&&o!=="0";)o=o.substr(1);if(o==="0"){var a=r[r.length-1],s=t.length;!a||s!==a.end+1?r.push({start:s,end:s}):(a.end=s,a.end-a.start>r[n].end-r[n].start&&(n=r.length-1))}t.push(o)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};b.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in b&&!e.update)return t(null,b.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return b.cores=navigator.hardwareConcurrency,t(null,b.cores);if(typeof Worker>"u")return b.cores=1,t(null,b.cores);if(typeof Blob>"u")return b.cores=2,t(null,b.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(a){for(var s=Date.now(),c=s+4;Date.now()<c;);self.postMessage({st:s,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(a,s,c){if(s===0){var u=Math.floor(a.reduce(function(f,l){return f+l},0)/a.length);return b.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,b.cores)}i(c,function(f,l){a.push(o(c,l)),n(a,s-1,c)})}function i(a,s){for(var c=[],u=[],f=0;f<a;++f){var l=new Worker(r);l.addEventListener("message",function(p){if(u.push(p.data),u.length===a){for(var d=0;d<a;++d)c[d].terminate();s(null,u)}}),c.push(l)}for(var f=0;f<a;++f)c[f].postMessage(f)}function o(a,s){for(var c=[],u=0;u<a;++u)for(var f=s[u],l=c[u]=[],p=0;p<a;++p)if(u!==p){var d=s[p];(f.st>d.st&&f.st<d.et||d.st>f.st&&d.st<f.et)&&l.push(p)}return c.reduce(function(h,y){return Math.max(h,y.length)},0)}}});var Ko=nt((xm,s3)=>{var Ht=ut();kt();s3.exports=Ht.cipher=Ht.cipher||{};Ht.cipher.algorithms=Ht.cipher.algorithms||{};Ht.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ht.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ht.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Ht.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ht.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ht.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Ht.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Ht.cipher.algorithms[e]=t};Ht.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Ht.cipher.algorithms?Ht.cipher.algorithms[e]:null};var Fo=Ht.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};Fo.prototype.start=function(e){e=e||{};var t={};for(var r in e)t[r]=e[r];t.decrypt=this._decrypt,this._finish=!1,this._input=Ht.util.createBuffer(),this.output=e.output||Ht.util.createBuffer(),this.mode.start(t)};Fo.prototype.update=function(e){for(e&&this._input.putBuffer(e);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};Fo.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return e(this.blockSize,r,!1)},this.mode.unpad=function(r){return e(this.blockSize,r,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var Vo=nt((vm,a3)=>{var $t=ut();kt();$t.cipher=$t.cipher||{};var J=a3.exports=$t.cipher.modes=$t.cipher.modes||{};J.ecb=function(e){e=e||{},this.name="ECB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};J.ecb.prototype.start=function(e){};J.ecb.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};J.ecb.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};J.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};J.ecb.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};J.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};J.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=c1(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};J.cbc.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};J.cbc.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};J.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};J.cbc.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};J.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};J.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=c1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};J.cfb.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32()^this._outBlock[i],t.putInt32(this._inBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};J.cfb.prototype.decrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32(),t.putInt32(this._inBlock[i]^this._outBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};J.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};J.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=c1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};J.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(e.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};J.ofb.prototype.decrypt=J.ofb.prototype.encrypt;J.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};J.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=c1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};J.ctr.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]);else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}u1(this._inBlock)};J.ctr.prototype.decrypt=J.ctr.prototype.encrypt;J.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0,this._R=3774873600};J.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=$t.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=$t.util.createBuffer(e.additionalData):r=$t.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=$t.util.createBuffer(e.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Mo(n*8)))}this._inBlock=this._j0.slice(0),u1(this._inBlock),this._partialBytes=0,r=$t.util.createBuffer(r),this._aDataLength=Mo(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()])};J.gcm.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=e.getInt32());this._cipherLength+=this.blockSize}else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o<=0||r){if(r){var a=n%this.blockSize;this._cipherLength+=a,this._partialOutput.truncate(this.blockSize-a)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),u1(this._inBlock)};J.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),u1(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};J.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=$t.util.createBuffer();var n=this._aDataLength.concat(Mo(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var o=0;o<this._ints;++o)this.tag.putInt32(this._s[o]^i[o]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};J.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var o=e[i/32|0]&1<<31-i%32;o&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};J.gcm.prototype.pow=function(e,t){for(var r=e[3]&1,n=3;n>0;--n)t[n]=e[n]>>>1|(e[n-1]&1)<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)};J.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=e[n]>>>(7-r%8)*4&15,o=this._m[r][i];t[0]^=o[0],t[1]^=o[1],t[2]^=o[2],t[3]^=o[3]}return t};J.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)};J.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,i=16*r,o=new Array(i),a=0;a<i;++a){var s=[0,0,0,0],c=a/n|0,u=(n-1-a%n)*t;s[c]=1<<t-1<<u,o[a]=this.generateSubHashTable(this.multiply(s,e),t)}return o};J.gcm.prototype.generateSubHashTable=function(e,t){var r=1<<t,n=r>>>1,i=new Array(r);i[n]=e.slice(0);for(var o=n>>>1;o>0;)this.pow(i[2*o],i[o]=[]),o>>=1;for(o=2;o<n;){for(var a=1;a<o;++a){var s=i[o],c=i[a];i[o+a]=[s[0]^c[0],s[1]^c[1],s[2]^c[2],s[3]^c[3]]}o*=2}for(i[0]=[0,0,0,0],o=n+1;o<r;++o){var u=i[o^n];i[o]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function c1(e,t){if(typeof e=="string"&&(e=$t.util.createBuffer(e)),$t.util.isArray(e)&&e.length>4){var r=e;e=$t.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!$t.util.isArray(e)){for(var i=[],o=t/4,n=0;n<o;++n)i.push(e.getInt32());e=i}return e}function u1(e){e[e.length-1]=e[e.length-1]+1&4294967295}function Mo(e){return[e/4294967296|0,e&4294967295]}});var l1=nt((bm,l3)=>{var yt=ut();Ko();Vo();kt();l3.exports=yt.aes=yt.aes||{};yt.aes.startEncrypting=function(e,t,r,n){var i=f1({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};yt.aes.createEncryptionCipher=function(e,t){return f1({key:e,output:null,decrypt:!1,mode:t})};yt.aes.startDecrypting=function(e,t,r,n){var i=f1({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};yt.aes.createDecryptionCipher=function(e,t){return f1({key:e,output:null,decrypt:!0,mode:t})};yt.aes.Algorithm=function(e,t){Ho||u3();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return zo(r._w,n,i,!1)},decrypt:function(n,i){return zo(r._w,n,i,!0)}}}),r._init=!1};yt.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,r;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=yt.util.createBuffer(t);else if(yt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=yt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!yt.util.isArray(t)){r=t,t=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(r.getInt32())}}if(!yt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var o=this.mode.name,a=["CFB","OFB","CTR","GCM"].indexOf(o)!==-1;this._w=f3(t,e.decrypt&&!a),this._init=!0}};yt.aes._expandKey=function(e,t){return Ho||u3(),f3(e,t)};yt.aes._updateBlock=zo;Pn("AES-ECB",yt.cipher.modes.ecb);Pn("AES-CBC",yt.cipher.modes.cbc);Pn("AES-CFB",yt.cipher.modes.cfb);Pn("AES-OFB",yt.cipher.modes.ofb);Pn("AES-CTR",yt.cipher.modes.ctr);Pn("AES-GCM",yt.cipher.modes.gcm);function Pn(e,t){var r=function(){return new yt.aes.Algorithm(e,t)};yt.cipher.registerAlgorithm(e,r)}var Ho=!1,Rn=4,ie,qo,c3,$r,Ce;function u3(){Ho=!0,c3=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;ie=new Array(256),qo=new Array(256),$r=new Array(4),Ce=new Array(4);for(var t=0;t<4;++t)$r[t]=new Array(256),Ce[t]=new Array(256);for(var r=0,n=0,i,o,a,s,c,u,f,t=0;t<256;++t){s=n^n<<1^n<<2^n<<3^n<<4,s=s>>8^s&255^99,ie[r]=s,qo[s]=r,c=e[s],i=e[r],o=e[i],a=e[o],u=c<<24^s<<16^s<<8^(s^c),f=(i^o^a)<<24^(r^a)<<16^(r^o^a)<<8^(r^i^a);for(var l=0;l<4;++l)$r[l][r]=u,Ce[l][s]=f,u=u<<24|u>>>8,f=f<<24|f>>>8;r===0?r=n=1:(r=i^e[e[e[i^a]]],n^=e[e[n]])}}function f3(e,t){for(var r=e.slice(0),n,i=1,o=r.length,a=o+6+1,s=Rn*a,c=o;c<s;++c)n=r[c-1],c%o===0?(n=ie[n>>>16&255]<<24^ie[n>>>8&255]<<16^ie[n&255]<<8^ie[n>>>24]^c3[i]<<24,i++):o>6&&c%o===4&&(n=ie[n>>>24]<<24^ie[n>>>16&255]<<16^ie[n>>>8&255]<<8^ie[n&255]),r[c]=r[c-o]^n;if(t){var u,f=Ce[0],l=Ce[1],p=Ce[2],d=Ce[3],h=r.slice(0);s=r.length;for(var c=0,y=s-Rn;c<s;c+=Rn,y-=Rn)if(c===0||c===s-Rn)h[c]=r[y],h[c+1]=r[y+3],h[c+2]=r[y+2],h[c+3]=r[y+1];else for(var g=0;g<Rn;++g)u=r[y+g],h[c+(3&-g)]=f[ie[u>>>24]]^l[ie[u>>>16&255]]^p[ie[u>>>8&255]]^d[ie[u&255]];r=h}return r}function zo(e,t,r,n){var i=e.length/4-1,o,a,s,c,u;n?(o=Ce[0],a=Ce[1],s=Ce[2],c=Ce[3],u=qo):(o=$r[0],a=$r[1],s=$r[2],c=$r[3],u=ie);var f,l,p,d,h,y,g;f=t[0]^e[0],l=t[n?3:1]^e[1],p=t[2]^e[2],d=t[n?1:3]^e[3];for(var m=3,x=1;x<i;++x)h=o[f>>>24]^a[l>>>16&255]^s[p>>>8&255]^c[d&255]^e[++m],y=o[l>>>24]^a[p>>>16&255]^s[d>>>8&255]^c[f&255]^e[++m],g=o[p>>>24]^a[d>>>16&255]^s[f>>>8&255]^c[l&255]^e[++m],d=o[d>>>24]^a[f>>>16&255]^s[l>>>8&255]^c[p&255]^e[++m],f=h,l=y,p=g;r[0]=u[f>>>24]<<24^u[l>>>16&255]<<16^u[p>>>8&255]<<8^u[d&255]^e[++m],r[n?3:1]=u[l>>>24]<<24^u[p>>>16&255]<<16^u[d>>>8&255]<<8^u[f&255]^e[++m],r[2]=u[p>>>24]<<24^u[d>>>16&255]<<16^u[f>>>8&255]<<8^u[l&255]^e[++m],r[n?1:3]=u[d>>>24]<<24^u[f>>>16&255]<<16^u[l>>>8&255]<<8^u[p&255]^e[++m]}function f1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=yt.cipher.createDecipher(r,e.key):n=yt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,a){var s=null;a instanceof yt.util.ByteBuffer&&(s=a,a={}),a=a||{},a.output=s,a.iv=o,i.call(n,a)},n}});var h1=nt((Lm,y3)=>{var l0=ut();l0.pki=l0.pki||{};var $o=y3.exports=l0.pki.oids=l0.oids=l0.oids||{};function _(e,t){$o[e]=t,$o[t]=e}function at(e,t){$o[e]=t}_("1.2.840.113549.1.1.1","rsaEncryption");_("1.2.840.113549.1.1.4","md5WithRSAEncryption");_("1.2.840.113549.1.1.5","sha1WithRSAEncryption");_("1.2.840.113549.1.1.7","RSAES-OAEP");_("1.2.840.113549.1.1.8","mgf1");_("1.2.840.113549.1.1.9","pSpecified");_("1.2.840.113549.1.1.10","RSASSA-PSS");_("1.2.840.113549.1.1.11","sha256WithRSAEncryption");_("1.2.840.113549.1.1.12","sha384WithRSAEncryption");_("1.2.840.113549.1.1.13","sha512WithRSAEncryption");_("1.3.101.112","EdDSA25519");_("1.2.840.10040.4.3","dsa-with-sha1");_("1.3.14.3.2.7","desCBC");_("1.3.14.3.2.26","sha1");_("1.3.14.3.2.29","sha1WithRSASignature");_("2.16.840.1.101.3.4.2.1","sha256");_("2.16.840.1.101.3.4.2.2","sha384");_("2.16.840.1.101.3.4.2.3","sha512");_("2.16.840.1.101.3.4.2.4","sha224");_("2.16.840.1.101.3.4.2.5","sha512-224");_("2.16.840.1.101.3.4.2.6","sha512-256");_("1.2.840.113549.2.2","md2");_("1.2.840.113549.2.5","md5");_("1.2.840.113549.1.7.1","data");_("1.2.840.113549.1.7.2","signedData");_("1.2.840.113549.1.7.3","envelopedData");_("1.2.840.113549.1.7.4","signedAndEnvelopedData");_("1.2.840.113549.1.7.5","digestedData");_("1.2.840.113549.1.7.6","encryptedData");_("1.2.840.113549.1.9.1","emailAddress");_("1.2.840.113549.1.9.2","unstructuredName");_("1.2.840.113549.1.9.3","contentType");_("1.2.840.113549.1.9.4","messageDigest");_("1.2.840.113549.1.9.5","signingTime");_("1.2.840.113549.1.9.6","counterSignature");_("1.2.840.113549.1.9.7","challengePassword");_("1.2.840.113549.1.9.8","unstructuredAddress");_("1.2.840.113549.1.9.14","extensionRequest");_("1.2.840.113549.1.9.20","friendlyName");_("1.2.840.113549.1.9.21","localKeyId");_("1.2.840.113549.1.9.22.1","x509Certificate");_("1.2.840.113549.1.12.10.1.1","keyBag");_("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");_("1.2.840.113549.1.12.10.1.3","certBag");_("1.2.840.113549.1.12.10.1.4","crlBag");_("1.2.840.113549.1.12.10.1.5","secretBag");_("1.2.840.113549.1.12.10.1.6","safeContentsBag");_("1.2.840.113549.1.5.13","pkcs5PBES2");_("1.2.840.113549.1.5.12","pkcs5PBKDF2");_("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");_("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");_("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");_("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");_("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");_("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");_("1.2.840.113549.2.7","hmacWithSHA1");_("1.2.840.113549.2.8","hmacWithSHA224");_("1.2.840.113549.2.9","hmacWithSHA256");_("1.2.840.113549.2.10","hmacWithSHA384");_("1.2.840.113549.2.11","hmacWithSHA512");_("1.2.840.113549.3.7","des-EDE3-CBC");_("2.16.840.1.101.3.4.1.2","aes128-CBC");_("2.16.840.1.101.3.4.1.22","aes192-CBC");_("2.16.840.1.101.3.4.1.42","aes256-CBC");_("2.5.4.3","commonName");_("2.5.4.4","surname");_("2.5.4.5","serialNumber");_("2.5.4.6","countryName");_("2.5.4.7","localityName");_("2.5.4.8","stateOrProvinceName");_("2.5.4.9","streetAddress");_("2.5.4.10","organizationName");_("2.5.4.11","organizationalUnitName");_("2.5.4.12","title");_("2.5.4.13","description");_("2.5.4.15","businessCategory");_("2.5.4.17","postalCode");_("2.5.4.42","givenName");_("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");_("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");_("2.16.840.1.113730.1.1","nsCertType");_("2.16.840.1.113730.1.13","nsComment");at("2.5.29.1","authorityKeyIdentifier");at("2.5.29.2","keyAttributes");at("2.5.29.3","certificatePolicies");at("2.5.29.4","keyUsageRestriction");at("2.5.29.5","policyMapping");at("2.5.29.6","subtreesConstraint");at("2.5.29.7","subjectAltName");at("2.5.29.8","issuerAltName");at("2.5.29.9","subjectDirectoryAttributes");at("2.5.29.10","basicConstraints");at("2.5.29.11","nameConstraints");at("2.5.29.12","policyConstraints");at("2.5.29.13","basicConstraints");_("2.5.29.14","subjectKeyIdentifier");_("2.5.29.15","keyUsage");at("2.5.29.16","privateKeyUsagePeriod");_("2.5.29.17","subjectAltName");_("2.5.29.18","issuerAltName");_("2.5.29.19","basicConstraints");at("2.5.29.20","cRLNumber");at("2.5.29.21","cRLReason");at("2.5.29.22","expirationDate");at("2.5.29.23","instructionCode");at("2.5.29.24","invalidityDate");at("2.5.29.25","cRLDistributionPoints");at("2.5.29.26","issuingDistributionPoint");at("2.5.29.27","deltaCRLIndicator");at("2.5.29.28","issuingDistributionPoint");at("2.5.29.29","certificateIssuer");at("2.5.29.30","nameConstraints");_("2.5.29.31","cRLDistributionPoints");_("2.5.29.32","certificatePolicies");at("2.5.29.33","policyMappings");at("2.5.29.34","policyConstraints");_("2.5.29.35","authorityKeyIdentifier");at("2.5.29.36","policyConstraints");_("2.5.29.37","extKeyUsage");at("2.5.29.46","freshestCRL");at("2.5.29.54","inhibitAnyPolicy");_("1.3.6.1.4.1.11129.2.4.2","timestampList");_("1.3.6.1.5.5.7.1.1","authorityInfoAccess");_("1.3.6.1.5.5.7.3.1","serverAuth");_("1.3.6.1.5.5.7.3.2","clientAuth");_("1.3.6.1.5.5.7.3.3","codeSigning");_("1.3.6.1.5.5.7.3.4","emailProtection");_("1.3.6.1.5.5.7.3.8","timeStamping")});var d0=nt((Nm,m3)=>{var mt=ut();kt();h1();var O=m3.exports=mt.asn1=mt.asn1||{};O.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};O.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};O.create=function(e,t,r,n,i){if(mt.util.isArray(n)){for(var o=[],a=0;a<n.length;++a)n[a]!==void 0&&o.push(n[a]);n=o}var s={tagClass:e,type:t,constructed:r,composed:r||mt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(s.bitStringContents=i.bitStringContents,s.original=O.copy(s)),s};O.copy=function(e,t){var r;if(mt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(O.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:O.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};O.equals=function(e,t,r){if(mt.util.isArray(e)){if(!mt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!O.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&O.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};O.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function h0(e,t,r){if(r>t){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}var nu=function(e,t){var r=e.getByte();if(t--,r!==128){var n,i=r&128;if(!i)n=r;else{var o=r&127;h0(e,t,o),n=e.getInt(o<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=mt.util.createBuffer(e));var r=e.length(),n=d1(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=e.length(),i}return n};function d1(e,t,r,n){var i;h0(e,t,2);var o=e.getByte();t--;var a=o&192,s=o&31;i=e.length();var c=nu(e,t);if(t-=i-e.length(),c!==void 0&&c>t){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=e.length(),u.remaining=t,u.requested=c,u}c=t}var f,l,p=(o&32)===32;if(p)if(f=[],c===void 0)for(;;){if(h0(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}i=e.length(),f.push(d1(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),f.push(d1(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(f===void 0&&a===O.Class.UNIVERSAL&&s===O.Type.BITSTRING&&(l=e.bytes(c)),f===void 0&&n.decodeBitStrings&&a===O.Class.UNIVERSAL&&s===O.Type.BITSTRING&&c>1){var d=e.read,h=t,y=0;if(s===O.Type.BITSTRING&&(h0(e,t,1),y=e.getByte(),t--),y===0)try{i=e.length();var g={strict:!0,decodeBitStrings:!0},m=d1(e,t,r+1,g),x=i-e.length();t-=x,s==O.Type.BITSTRING&&x++;var v=m.tagClass;x===c&&(v===O.Class.UNIVERSAL||v===O.Class.CONTEXT_SPECIFIC)&&(f=[m])}catch{}f===void 0&&(e.read=d,t=h)}if(f===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(s===O.Type.BMPSTRING)for(f="";c>0;c-=2)h0(e,t,2),f+=String.fromCharCode(e.getInt16()),t-=2;else f=e.getBytes(c),t-=c}var C=l===void 0?null:{bitStringContents:l};return O.create(a,s,p,f,C)}O.toDer=function(e){var t=mt.util.createBuffer(),r=e.tagClass|e.type,n=mt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=O.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var o=0;o<e.value.length;++o)e.value[o]!==void 0&&n.putBuffer(O.toDer(e.value[o]))}else if(e.type===O.Type.BMPSTRING)for(var o=0;o<e.value.length;++o)n.putInt16(e.value.charCodeAt(o));else e.type===O.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var a=n.length(),s="";do s+=String.fromCharCode(a&255),a=a>>>8;while(a>0);t.putByte(s.length|128);for(var o=s.length-1;o>=0;--o)t.putByte(s.charCodeAt(o))}return t.putBuffer(n),t};O.oidToDer=function(e){var t=e.split("."),r=mt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,o,a,s=2;s<t.length;++s){n=!0,i=[],o=parseInt(t[s],10);do a=o&127,o=o>>>7,n||(a|=128),i.push(a),n=!1;while(o>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};O.derToOid=function(e){var t;typeof e=="string"&&(e=mt.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};O.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),o=parseInt(e.substr(6,2),10),a=parseInt(e.substr(8,2),10),s=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(s=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(o,a,s,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var f=parseInt(e.substr(u+1,2),10),l=parseInt(e.substr(u+4,2),10),p=f*60+l;p*=6e4,c==="+"?t.setTime(+t-p):t.setTime(+t+p)}return t};O.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),a=parseInt(e.substr(10,2),10),s=parseInt(e.substr(12,2),10),c=0,u=0,f=!1;e.charAt(e.length-1)==="Z"&&(f=!0);var l=e.length-5,p=e.charAt(l);if(p==="+"||p==="-"){var d=parseInt(e.substr(l+1,2),10),h=parseInt(e.substr(l+4,2),10);u=d*60+h,u*=6e4,p==="+"&&(u*=-1),f=!0}return e.charAt(14)==="."&&(c=parseFloat(e.substr(14),10)*1e3),f?(t.setUTCFullYear(r,n,i),t.setUTCHours(o,a,s,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(o,a,s,c)),t};O.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push(""+e.getUTCFullYear()),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.integerToDer=function(e){var t=mt.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r};O.derToInteger=function(e){typeof e=="string"&&(e=mt.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};O.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&mt.util.isArray(t.value))for(var o=0,a=0;i&&a<t.value.length;++a)i=t.value[a].optional||!1,e.value[o]&&(i=O.validate(e.value[o],t.value[a],r,n),i?++o:t.value[a].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(t.capture&&(r[t.capture]=e.value),t.captureAsn1&&(r[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(r[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)){var s;if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{var c=e.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return i};var g3=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
|
|
2
|
+
"use strict";var Libp2PKadDht=(()=>{var s6=Object.create;var U0=Object.defineProperty;var a6=Object.getOwnPropertyDescriptor;var c6=Object.getOwnPropertyNames;var u6=Object.getPrototypeOf,f6=Object.prototype.hasOwnProperty;var nt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ft=(e,t)=>{for(var r in t)U0(e,r,{get:t[r],enumerable:!0})},f2=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of c6(t))!f6.call(e,i)&&i!==r&&U0(e,i,{get:()=>t[i],enumerable:!(n=a6(t,i))||n.enumerable});return e};var St=(e,t,r)=>(r=e!=null?s6(u6(e)):{},f2(t||!e||!e.__esModule?U0(r,"default",{value:e,enumerable:!0}):r,e)),l6=e=>f2(U0({},"__esModule",{value:!0}),e);var y2=nt((ih,p2)=>{var an=1e3,cn=an*60,un=cn*60,Dr=un*24,h6=Dr*7,d6=Dr*365.25;p2.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return p6(e);if(r==="number"&&isFinite(e))return t.long?g6(e):y6(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function p6(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*d6;case"weeks":case"week":case"w":return r*h6;case"days":case"day":case"d":return r*Dr;case"hours":case"hour":case"hrs":case"hr":case"h":return r*un;case"minutes":case"minute":case"mins":case"min":case"m":return r*cn;case"seconds":case"second":case"secs":case"sec":case"s":return r*an;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function y6(e){var t=Math.abs(e);return t>=Dr?Math.round(e/Dr)+"d":t>=un?Math.round(e/un)+"h":t>=cn?Math.round(e/cn)+"m":t>=an?Math.round(e/an)+"s":e+"ms"}function g6(e){var t=Math.abs(e);return t>=Dr?K0(e,t,Dr,"day"):t>=un?K0(e,t,un,"hour"):t>=cn?K0(e,t,cn,"minute"):t>=an?K0(e,t,an,"second"):e+" ms"}function K0(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var m2=nt((oh,g2)=>{function m6(e){r.debug=r,r.default=r,r.coerce=c,r.disable=o,r.enable=i,r.enabled=a,r.humanize=y2(),r.destroy=u,Object.keys(e).forEach(f=>{r[f]=e[f]}),r.names=[],r.skips=[],r.formatters={};function t(f){let l=0;for(let p=0;p<f.length;p++)l=(l<<5)-l+f.charCodeAt(p),l|=0;return r.colors[Math.abs(l)%r.colors.length]}r.selectColor=t;function r(f){let l,p=null,d,h;function y(...g){if(!y.enabled)return;let m=y,x=Number(new Date),v=x-(l||x);m.diff=v,m.prev=l,m.curr=x,l=x,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let C=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(S,L)=>{if(S==="%%")return"%";C++;let N=r.formatters[L];if(typeof N=="function"){let $=g[C];S=N.call(m,$),g.splice(C,1),C--}return S}),r.formatArgs.call(m,g),(m.log||r.log).apply(m,g)}return y.namespace=f,y.useColors=r.useColors(),y.color=r.selectColor(f),y.extend=n,y.destroy=r.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(d!==r.namespaces&&(d=r.namespaces,h=r.enabled(f)),h),set:g=>{p=g}}),typeof r.init=="function"&&r.init(y),y}function n(f,l){let p=r(this.namespace+(typeof l>"u"?":":l)+f);return p.log=this.log,p}function i(f){r.save(f),r.namespaces=f,r.names=[],r.skips=[];let l,p=(typeof f=="string"?f:"").split(/[\s,]+/),d=p.length;for(l=0;l<d;l++)p[l]&&(f=p[l].replace(/\*/g,".*?"),f[0]==="-"?r.skips.push(new RegExp("^"+f.slice(1)+"$")):r.names.push(new RegExp("^"+f+"$")))}function o(){let f=[...r.names.map(s),...r.skips.map(s).map(l=>"-"+l)].join(",");return r.enable(""),f}function a(f){if(f[f.length-1]==="*")return!0;let l,p;for(l=0,p=r.skips.length;l<p;l++)if(r.skips[l].test(f))return!1;for(l=0,p=r.names.length;l<p;l++)if(r.names[l].test(f))return!0;return!1}function s(f){return f.toString().substring(2,f.toString().length-2).replace(/\.\*\?$/,"*")}function c(f){return f instanceof Error?f.stack||f.message:f}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}g2.exports=m6});var x2=nt((fe,M0)=>{fe.formatArgs=v6;fe.save=b6;fe.load=w6;fe.useColors=x6;fe.storage=E6();fe.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();fe.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 x6(){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 v6(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+M0.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}fe.log=console.debug||console.log||(()=>{});function b6(e){try{e?fe.storage.setItem("debug",e):fe.storage.removeItem("debug")}catch{}}function w6(){let e;try{e=fe.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function E6(){try{return localStorage}catch{}}M0.exports=m2()(fe);var{formatters:S6}=M0.exports;S6.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var A2=nt(Wn=>{(function(){var e,t,r,n,i,o,a,s;s=function(c){var u,f,l,p;return u=(c&255<<24)>>>24,f=(c&255<<16)>>>16,l=(c&65280)>>>8,p=c&255,[u,f,l,p].join(".")},a=function(c){var u,f,l,p,d,h;for(u=[],l=p=0;p<=3&&c.length!==0;l=++p){if(l>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}h=t(c),d=h[0],f=h[1],c=c.substring(f),u.push(d)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),o=r("a"),i=r("A"),t=function(c){var u,f,l,p,d;for(p=0,u=10,f="9",l=0,c.length>1&&c[l]==="0"&&(c[l+1]==="x"||c[l+1]==="X"?(l+=2,u=16):"0"<=c[l+1]&&c[l+1]<="9"&&(l++,u=8,f="7")),d=l;l<c.length;){if("0"<=c[l]&&c[l]<=f)p=p*u+(r(c[l])-n)>>>0;else if(u===16)if("a"<=c[l]&&c[l]<="f")p=p*u+(10+r(c[l])-o)>>>0;else if("A"<=c[l]&&c[l]<="F")p=p*u+(10+r(c[l])-i)>>>0;else break;else break;if(p>4294967295)throw new Error("too large");l++}if(l===d)throw new Error("empty octet");return[p,l]},e=function(){function c(u,f){var l,p,d,h;if(typeof u!="string")throw new Error("Missing `net' parameter");if(f||(h=u.split("/",2),u=h[0],f=h[1]),f||(f=32),typeof f=="string"&&f.indexOf(".")>-1){try{this.maskLong=a(f)}catch(y){throw l=y,new Error("Invalid mask: "+f)}for(p=d=32;d>=0;p=--d)if(this.maskLong===4294967295<<32-p>>>0){this.bitmask=p;break}}else if(f||f===0)this.bitmask=parseInt(f,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(a(u)&this.maskLong)>>>0}catch(y){throw l=y,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+f);this.size=Math.pow(2,32-this.bitmask),this.base=s(this.netLong),this.mask=s(this.maskLong),this.hostmask=s(~this.maskLong),this.first=this.bitmask<=30?s(this.netLong+1):this.base,this.last=this.bitmask<=30?s(this.netLong+this.size-2):s(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?s(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):(a(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(s(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var f,l,p;for(p=a(this.first),l=a(this.last),f=0;p<=l;)u(s(p),p,f),f++,p++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Wn.ip2long=a,Wn.long2ip=s,Wn.Netmask=e}).call(Wn)});var L2=nt((P2,G0)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),o="%[0-9a-z]{1,}",a="(?:[0-9a-f]+::?)+",s={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${a})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${a})|(?:::)(?:${a})?)${t}\\.${t}\\.${t}\\.${t}(${o})?$`,"i")};function c(d,h){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let y=0,g=-1,m=(d.match(s.zoneIndex)||[])[0],x,v;for(m&&(m=m.substring(1),d=d.replace(/%.+$/,""));(g=d.indexOf(":",g+1))>=0;)y++;if(d.substr(0,2)==="::"&&y--,d.substr(-2,2)==="::"&&y--,y>h)return null;for(v=h-y,x=":";v--;)x+="0:";return d=d.replace("::",x),d[0]===":"&&(d=d.slice(1)),d[d.length-1]===":"&&(d=d.slice(0,-1)),h=function(){let C=d.split(":"),E=[];for(let S=0;S<C.length;S++)E.push(parseInt(C[S],16));return E}(),{parts:h,zoneId:m}}function u(d,h,y,g){if(d.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let m=0,x;for(;g>0;){if(x=y-g,x<0&&(x=0),d[m]>>x!==h[m]>>x)return!1;g-=y,m+=1}return!0}function f(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 l(d,h){for(;d.length<h;)d=`0${d}`;return d}let p={};p.IPv4=function(){function d(h){if(h.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let y,g;for(y=0;y<h.length;y++)if(g=h[y],!(0<=g&&g<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=h}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,18,0,0]),15],[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(h,y){let g;if(y===void 0&&(g=h,h=g[0],y=g[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,y)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,y=!1,g={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},m,x,v;for(m=3;m>=0;m-=1)if(x=this.octets[m],x in g){if(v=g[x],y&&v!==0)return null;v!==8&&(y=!0),h+=v}else return null;return 32-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){return this.octets.slice(0)},d.prototype.toIPv4MappedAddress=function(){return p.IPv6.parse(`::ffff:${this.toString()}`)},d.prototype.toNormalizedString=function(){return this.toString()},d.prototype.toString=function(){return this.octets.join(".")},d}(),p.IPv4.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),y=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<4;)m.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.isIPv4=function(d){return this.parser(d)!==null},p.IPv4.isValid=function(d){try{return new this(this.parser(d)),!0}catch{return!1}},p.IPv4.isValidFourPartDecimal=function(d){return!!(p.IPv4.isValid(d)&&d.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},p.IPv4.networkAddressFromCIDR=function(d){let h,y,g,m,x;try{for(h=this.parseCIDR(d),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],y=0;y<4;)m.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.parse=function(d){let h=this.parser(d);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},p.IPv4.parseCIDR=function(d){let h;if(h=d.match(/^(.+)\/(\d+)$/)){let y=parseInt(h[2]);if(y>=0&&y<=32){let g=[this.parse(h[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")},p.IPv4.parser=function(d){let h,y,g;if(h=d.match(r.fourOctet))return function(){let m=h.slice(1,6),x=[];for(let v=0;v<m.length;v++)y=m[v],x.push(f(y));return x}();if(h=d.match(r.longValue)){if(g=f(h[1]),g>4294967295||g<0)throw new Error("ipaddr: address outside defined range");return function(){let m=[],x;for(x=0;x<=24;x+=8)m.push(g>>x&255);return m}().reverse()}else return(h=d.match(r.twoOctet))?function(){let m=h.slice(1,4),x=[];if(g=f(m[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(g>>16&255),x.push(g>>8&255),x.push(g&255),x}():(h=d.match(r.threeOctet))?function(){let m=h.slice(1,5),x=[];if(g=f(m[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(f(m[1])),x.push(g>>8&255),x.push(g&255),x}():null},p.IPv4.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)h[y]=255,y++;return g<4&&(h[g]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.IPv6=function(){function d(h,y){let g,m;if(h.length===16)for(this.parts=[],g=0;g<=14;g+=2)this.parts.push(h[g]<<8|h[g+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(g=0;g<this.parts.length;g++)if(m=this.parts[g],!(0<=m&&m<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");y&&(this.zoneId=y)}return d.prototype.SpecialRanges={unspecified:[new d([0,0,0,0,0,0,0,0]),128],linkLocal:[new d([65152,0,0,0,0,0,0,0]),10],multicast:[new d([65280,0,0,0,0,0,0,0]),8],loopback:[new d([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new d([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new d([0,0,0,0,0,65535,0,0]),96],rfc6145:[new d([0,0,0,0,65535,0,0,0]),96],rfc6052:[new d([100,65435,0,0,0,0,0,0]),96],"6to4":[new d([8194,0,0,0,0,0,0,0]),16],teredo:[new d([8193,0,0,0,0,0,0,0]),32],reserved:[[new d([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new d([8193,2,0,0,0,0,0,0]),48],amt:[new d([8193,3,0,0,0,0,0,0]),32],as112v6:[new d([8193,4,274,0,0,0,0,0]),48],deprecated:[new d([8193,16,0,0,0,0,0,0]),28],orchid2:[new d([8193,32,0,0,0,0,0,0]),28]},d.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},d.prototype.kind=function(){return"ipv6"},d.prototype.match=function(h,y){let g;if(y===void 0&&(g=h,h=g[0],y=g[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,y)},d.prototype.prefixLengthFromSubnetMask=function(){let h=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},m,x;for(let v=7;v>=0;v-=1)if(m=this.parts[v],m in g){if(x=g[m],y&&x!==0)return null;x!==16&&(y=!0),h+=x}else return null;return 128-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){let h,y=[],g=this.parts;for(let m=0;m<g.length;m++)h=g[m],y.push(h>>8),y.push(h&255);return y},d.prototype.toFixedLengthString=function(){let h=function(){let g=[];for(let m=0;m<this.parts.length;m++)g.push(l(this.parts[m].toString(16),4));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),h+y},d.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let h=this.parts.slice(-2),y=h[0],g=h[1];return new p.IPv4([y>>8,y&255,g>>8,g&255])},d.prototype.toNormalizedString=function(){let h=function(){let g=[];for(let m=0;m<this.parts.length;m++)g.push(this.parts[m].toString(16));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),h+y},d.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,y=this.toNormalizedString(),g=0,m=-1,x;for(;x=h.exec(y);)x[0].length>m&&(g=x.index,m=x[0].length);return m<0?y:`${y.substring(0,g)}::${y.substring(g+m)}`},d.prototype.toString=function(){return this.toRFC5952String()},d}(),p.IPv6.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),y=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<16;)m.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(m)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},p.IPv6.isIPv6=function(d){return this.parser(d)!==null},p.IPv6.isValid=function(d){if(typeof d=="string"&&d.indexOf(":")===-1)return!1;try{let h=this.parser(d);return new this(h.parts,h.zoneId),!0}catch{return!1}},p.IPv6.networkAddressFromCIDR=function(d){let h,y,g,m,x;try{for(h=this.parseCIDR(d),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],y=0;y<16;)m.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(m)}catch(v){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${v})`)}},p.IPv6.parse=function(d){let h=this.parser(d);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},p.IPv6.parseCIDR=function(d){let h,y,g;if((y=d.match(/^(.+)\/(\d+)$/))&&(h=parseInt(y[2]),h>=0&&h<=128))return g=[this.parse(y[1]),h],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},p.IPv6.parser=function(d){let h,y,g,m,x,v;if(g=d.match(s.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(s.native.test(d))return c(d,8);if((g=d.match(s.transitional))&&(v=g[6]||"",h=c(g[1].slice(0,-1)+v,6),h.parts)){for(x=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],y=0;y<x.length;y++)if(m=x[y],!(0<=m&&m<=255))return null;return h.parts.push(x[0]<<8|x[1]),h.parts.push(x[2]<<8|x[3]),{parts:h.parts,zoneId:h.zoneId}}return null},p.IPv6.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)h[y]=255,y++;return g<16&&(h[g]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.fromByteArray=function(d){let h=d.length;if(h===4)return new p.IPv4(d);if(h===16)return new p.IPv6(d);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},p.isValid=function(d){return p.IPv6.isValid(d)||p.IPv4.isValid(d)},p.parse=function(d){if(p.IPv6.isValid(d))return p.IPv6.parse(d);if(p.IPv4.isValid(d))return p.IPv4.parse(d);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},p.parseCIDR=function(d){try{return p.IPv6.parseCIDR(d)}catch{try{return p.IPv4.parseCIDR(d)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},p.process=function(d){let h=this.parse(d);return h.kind()==="ipv6"&&h.isIPv4MappedAddress()?h.toIPv4Address():h},p.subnetMatch=function(d,h,y){let g,m,x,v;y==null&&(y="unicast");for(m in h)if(Object.prototype.hasOwnProperty.call(h,m)){for(x=h[m],x[0]&&!(x[0]instanceof Array)&&(x=[x]),g=0;g<x.length;g++)if(v=x[g],d.kind()===v[0].kind()&&d.match.apply(d,v))return m}return y},typeof G0<"u"&&G0.exports?G0.exports=p:e.ipaddr=p})(P2)});var Ja=nt((em,Xa)=>{"use strict";function Za(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function qc(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return Za(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Za(new i,r)}}Xa.exports=qc});var ft=nt((vm,t3)=>{t3.exports={options:{usePureJavaScript:!1}}});var n3=nt((bm,r3)=>{var Do={};r3.exports=Do;var e3={};Do.encode=function(e,t,r){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(e instanceof Uint8Array))n=$c(e,t);else{var i=0,o=t.length,a=t.charAt(0),s=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[i];c<s.length;++c)u+=s[c]<<8,s[c]=u%o,u=u/o|0;for(;u>0;)s.push(u%o),u=u/o|0}for(i=0;e[i]===0&&i<e.length-1;++i)n+=a;for(i=s.length-1;i>=0;--i)n+=t[s[i]]}if(r){var f=new RegExp(".{1,"+r+"}","g");n=n.match(f).join(`\r
|
|
3
|
+
`)}return n};Do.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var r=e3[t];if(!r){r=e3[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,o=t.charAt(0),a=[0],n=0;n<e.length;n++){var s=r[e.charCodeAt(n)];if(s===void 0)return;for(var c=0,u=s;c<a.length;++c)u+=a[c]*i,a[c]=u&255,u>>=8;for(;u>0;)a.push(u&255),u>>=8}for(var f=0;e[f]===o&&f<e.length-1;++f)a.push(0);return typeof Buffer<"u"?Buffer.from(a.reverse()):new Uint8Array(a.reverse())};function $c(e,t){var r=0,n=t.length,i=t.charAt(0),o=[0];for(r=0;r<e.length();++r){for(var a=0,s=e.at(r);a<o.length;++a)s+=o[a]<<8,o[a]=s%n,s=s/n|0;for(;s>0;)o.push(s%n),s=s/n|0}var c="";for(r=0;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=o.length-1;r>=0;--r)c+=t[o[r]];return c}});var kt=nt((wm,a3)=>{var i3=ft(),o3=n3(),b=a3.exports=i3.util=i3.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){b.nextTick=process.nextTick,typeof setImmediate=="function"?b.setImmediate=setImmediate:b.setImmediate=b.nextTick;return}if(typeof setImmediate=="function"){b.setImmediate=function(){return setImmediate.apply(void 0,arguments)},b.nextTick=function(s){return setImmediate(s)};return}if(b.setImmediate=function(s){setTimeout(s,0)},typeof window<"u"&&typeof window.postMessage=="function"){let s=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(f){f()})}};var a=s,e="forge.setImmediate",t=[];b.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",s,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var o=b.setImmediate;b.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),o(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}b.nextTick=b.setImmediate})();b.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;b.globalScope=function(){return b.isNodejs?globalThis:typeof self>"u"?window:self}();b.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};b.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};b.isArrayBufferView=function(e){return e&&b.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function f0(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}b.ByteBuffer=Oo;function Oo(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(b.isArrayBuffer(e)||b.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var r=0;r<t.length;++r)this.putByte(t[r])}}else(e instanceof Oo||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}b.ByteStringBuffer=Oo;var Gc=4096;b.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>Gc&&(this.data.substr(0,1),this._constructedStringLength=0)};b.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};b.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};b.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};b.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this};b.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};b.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(b.encodeUtf8(e))};b.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};b.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};b.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};b.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};b.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};b.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};b.ByteStringBuffer.prototype.putInt=function(e,t){f0(t);var r="";do t-=8,r+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(r)};b.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)};b.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())};b.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};b.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e};b.ByteStringBuffer.prototype.getInt24=function(){var e=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,e};b.ByteStringBuffer.prototype.getInt32=function(){var e=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,e};b.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e};b.ByteStringBuffer.prototype.getInt24Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,e};b.ByteStringBuffer.prototype.getInt32Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,e};b.ByteStringBuffer.prototype.getInt=function(e){f0(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t};b.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};b.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};b.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};b.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};b.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this};b.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};b.ByteStringBuffer.prototype.copy=function(){var e=b.createBuffer(this.data);return e.read=this.read,e};b.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};b.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};b.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this};b.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.length;++t){var r=this.data.charCodeAt(t);r<16&&(e+="0"),e+=r.toString(16)}return e};b.ByteStringBuffer.prototype.toString=function(){return b.decodeUtf8(this.bytes())};function Qc(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=b.isArrayBuffer(e),n=b.isArrayBufferView(e);if(r||n){r?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}b.DataBuffer=Qc;b.DataBuffer.prototype.length=function(){return this.write-this.read};b.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};b.DataBuffer.prototype.accommodate=function(e,t){if(this.length()>=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this};b.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};b.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r<t;++r)this.data.setUint8(e);return this};b.DataBuffer.prototype.putBytes=function(e,t){if(b.isArrayBufferView(e)){var r=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(b.isArrayBuffer(e)){var r=new Uint8Array(e);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(e instanceof b.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&b.isArrayBufferView(e.data)){var r=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(r.byteLength);var i=new Uint8Array(e.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(e instanceof b.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var o;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.hex.decode(e,o,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.base64.decode(e,o,this.write),this;if(t==="utf8"&&(e=b.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),o=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.raw.decode(o),this;if(t==="utf16")return this.accommodate(e.length*2),o=new Uint16Array(this.data.buffer,this.write),this.write+=b.text.utf16.encode(o),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)};b.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this};b.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")};b.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this};b.DataBuffer.prototype.putInt24=function(e){return this.accommodate(3),this.data.setInt16(this.write,e>>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this};b.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};b.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};b.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this};b.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};b.DataBuffer.prototype.putInt=function(e,t){f0(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};b.DataBuffer.prototype.putSignedInt=function(e,t){return f0(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)};b.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};b.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e};b.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e};b.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e};b.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e};b.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e};b.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e};b.DataBuffer.prototype.getInt=function(e){f0(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};b.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};b.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};b.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};b.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};b.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};b.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};b.DataBuffer.prototype.copy=function(){return new b.DataBuffer(this)};b.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};b.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};b.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};b.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var r=this.data.getUint8(t);r<16&&(e+="0"),e+=r.toString(16)}return e};b.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return b.binary.raw.encode(t);if(e==="hex")return b.binary.hex.encode(t);if(e==="base64")return b.binary.base64.encode(t);if(e==="utf8")return b.text.utf8.decode(t);if(e==="utf16")return b.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};b.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=b.encodeUtf8(e)),new b.ByteBuffer(e)};b.fillString=function(e,t){for(var r="";t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};b.xorBytes=function(e,t,r){for(var n="",i="",o="",a=0,s=0;r>0;--r,++a)i=e.charCodeAt(a)^t.charCodeAt(a),s>=10&&(n+=o,o="",s=0),o+=String.fromCharCode(i),++s;return n+=o,n};b.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t};b.bytesToHex=function(e){return b.createBuffer(e).toHex()};b.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var wr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Er=[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],s3="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";b.encode64=function(e,t){for(var r="",n="",i,o,a,s=0;s<e.length;)i=e.charCodeAt(s++),o=e.charCodeAt(s++),a=e.charCodeAt(s++),r+=wr.charAt(i>>2),r+=wr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=wr.charAt((o&15)<<2|a>>6),r+=isNaN(a)?"=":wr.charAt(a&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
4
|
+
`,r=r.substr(t));return n+=r,n};b.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,o,a=0;a<e.length;)r=Er[e.charCodeAt(a++)-43],n=Er[e.charCodeAt(a++)-43],i=Er[e.charCodeAt(a++)-43],o=Er[e.charCodeAt(a++)-43],t+=String.fromCharCode(r<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),o!==64&&(t+=String.fromCharCode((i&3)<<6|o)));return t};b.encodeUtf8=function(e){return unescape(encodeURIComponent(e))};b.decodeUtf8=function(e){return decodeURIComponent(escape(e))};b.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:o3.encode,decode:o3.decode}};b.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)};b.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o);return t?i-r:n};b.binary.hex.encode=b.bytesToHex;b.binary.hex.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/2))),r=r||0;var i=0,o=r;for(e.length&1&&(i=1,n[o++]=parseInt(e[0],16));i<e.length;i+=2)n[o++]=parseInt(e.substr(i,2),16);return t?o-r:n};b.binary.base64.encode=function(e,t){for(var r="",n="",i,o,a,s=0;s<e.byteLength;)i=e[s++],o=e[s++],a=e[s++],r+=wr.charAt(i>>2),r+=wr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=wr.charAt((o&15)<<2|a>>6),r+=isNaN(a)?"=":wr.charAt(a&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
5
|
+
`,r=r.substr(t));return n+=r,n};b.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,o,a,s,c=0,u=r;c<e.length;)i=Er[e.charCodeAt(c++)-43],o=Er[e.charCodeAt(c++)-43],a=Er[e.charCodeAt(c++)-43],s=Er[e.charCodeAt(c++)-43],n[u++]=i<<2|o>>4,a!==64&&(n[u++]=(o&15)<<4|a>>2,s!==64&&(n[u++]=(a&3)<<6|s));return t?u-r:n.subarray(0,u)};b.binary.base58.encode=function(e,t){return b.binary.baseN.encode(e,s3,t)};b.binary.base58.decode=function(e,t){return b.binary.baseN.decode(e,s3,t)};b.text={utf8:{},utf16:{}};b.text.utf8.encode=function(e,t,r){e=b.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o);return t?i-r:n};b.text.utf8.decode=function(e){return b.decodeUtf8(String.fromCharCode.apply(null,e))};b.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var o=r,a=r,s=0;s<e.length;++s)i[a++]=e.charCodeAt(s),o+=2;return t?o-r:n};b.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};b.deflate=function(e,t,r){if(t=b.decode64(e.deflate(b.encode64(t)).rval),r){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};b.inflate=function(e,t,r){var n=e.inflate(b.encode64(t)).rval;return n===null?null:b.decode64(n)};var Uo=function(e,t,r){if(!e)throw new Error("WebStorage not available.");var n;if(r===null?n=e.removeItem(t):(r=b.encode64(JSON.stringify(r)),n=e.setItem(t,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},Fo=function(e,t){if(!e)throw new Error("WebStorage not available.");var r=e.getItem(t);if(e.init)if(r.rval===null){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return r!==null&&(r=JSON.parse(b.decode64(r))),r},Yc=function(e,t,r,n){var i=Fo(e,t);i===null&&(i={}),i[r]=n,Uo(e,t,i)},Wc=function(e,t,r){var n=Fo(e,t);return n!==null&&(n=r in n?n[r]:null),n},Zc=function(e,t,r){var n=Fo(e,t);if(n!==null&&r in n){delete n[r];var i=!0;for(var o in n){i=!1;break}i&&(n=null),Uo(e,t,n)}},Xc=function(e,t){Uo(e,t,null)},c1=function(e,t,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,o=!1,a=null;for(var s in r){i=r[s];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),o=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),o=!0)}catch(c){a=c}if(o)break}if(!o)throw a;return n};b.setItem=function(e,t,r,n,i){c1(Yc,arguments,i)};b.getItem=function(e,t,r,n){return c1(Wc,arguments,n)};b.removeItem=function(e,t,r,n){c1(Zc,arguments,n)};b.clearItems=function(e,t,r){c1(Xc,arguments,r)};b.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};b.format=function(e){for(var t=/%./g,r,n,i=0,o=[],a=0;r=t.exec(e);){n=e.substring(a,t.lastIndex-2),n.length>0&&o.push(n),a=t.lastIndex;var s=r[0][1];switch(s){case"s":case"o":i<arguments.length?o.push(arguments[i+++1]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+s+"?>")}}return o.push(e.substring(a)),o.join("")};b.formatNumber=function(e,t,r,n){var i=e,o=isNaN(t=Math.abs(t))?2:t,a=r===void 0?",":r,s=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(o),10)+"",f=u.length>3?u.length%3:0;return c+(f?u.substr(0,f)+s:"")+u.substr(f).replace(/(\d{3})(?=\d)/g,"$1"+s)+(o?a+Math.abs(i-u).toFixed(o).slice(2):"")};b.formatSize=function(e){return e>=1073741824?e=b.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=b.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=b.formatNumber(e/1024,0)+" KiB":e=b.formatNumber(e,0)+" bytes",e};b.bytesFromIP=function(e){return e.indexOf(".")!==-1?b.bytesFromIPv4(e):e.indexOf(":")!==-1?b.bytesFromIPv6(e):null};b.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=b.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};b.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(a){return a.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=b.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var o=b.hexToBytes(e[i]);o.length<2&&n.putByte(0),n.putBytes(o)}return n.getBytes()};b.bytesToIP=function(e){return e.length===4?b.bytesToIPv4(e):e.length===16?b.bytesToIPv6(e):null};b.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")};b.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var o=b.bytesToHex(e[i]+e[i+1]);o[0]==="0"&&o!=="0";)o=o.substr(1);if(o==="0"){var a=r[r.length-1],s=t.length;!a||s!==a.end+1?r.push({start:s,end:s}):(a.end=s,a.end-a.start>r[n].end-r[n].start&&(n=r.length-1))}t.push(o)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};b.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in b&&!e.update)return t(null,b.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return b.cores=navigator.hardwareConcurrency,t(null,b.cores);if(typeof Worker>"u")return b.cores=1,t(null,b.cores);if(typeof Blob>"u")return b.cores=2,t(null,b.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(a){for(var s=Date.now(),c=s+4;Date.now()<c;);self.postMessage({st:s,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(a,s,c){if(s===0){var u=Math.floor(a.reduce(function(f,l){return f+l},0)/a.length);return b.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,b.cores)}i(c,function(f,l){a.push(o(c,l)),n(a,s-1,c)})}function i(a,s){for(var c=[],u=[],f=0;f<a;++f){var l=new Worker(r);l.addEventListener("message",function(p){if(u.push(p.data),u.length===a){for(var d=0;d<a;++d)c[d].terminate();s(null,u)}}),c.push(l)}for(var f=0;f<a;++f)c[f].postMessage(f)}function o(a,s){for(var c=[],u=0;u<a;++u)for(var f=s[u],l=c[u]=[],p=0;p<a;++p)if(u!==p){var d=s[p];(f.st>d.st&&f.st<d.et||d.st>f.st&&d.st<f.et)&&l.push(p)}return c.reduce(function(h,y){return Math.max(h,y.length)},0)}}});var Mo=nt((Em,c3)=>{var Ht=ft();kt();c3.exports=Ht.cipher=Ht.cipher||{};Ht.cipher.algorithms=Ht.cipher.algorithms||{};Ht.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ht.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ht.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Ht.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ht.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ht.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Ht.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Ht.cipher.algorithms[e]=t};Ht.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Ht.cipher.algorithms?Ht.cipher.algorithms[e]:null};var Ko=Ht.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};Ko.prototype.start=function(e){e=e||{};var t={};for(var r in e)t[r]=e[r];t.decrypt=this._decrypt,this._finish=!1,this._input=Ht.util.createBuffer(),this.output=e.output||Ht.util.createBuffer(),this.mode.start(t)};Ko.prototype.update=function(e){for(e&&this._input.putBuffer(e);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};Ko.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return e(this.blockSize,r,!1)},this.mode.unpad=function(r){return e(this.blockSize,r,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var qo=nt((Sm,u3)=>{var $t=ft();kt();$t.cipher=$t.cipher||{};var J=u3.exports=$t.cipher.modes=$t.cipher.modes||{};J.ecb=function(e){e=e||{},this.name="ECB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};J.ecb.prototype.start=function(e){};J.ecb.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};J.ecb.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};J.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};J.ecb.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};J.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};J.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=u1(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};J.cbc.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};J.cbc.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};J.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};J.cbc.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};J.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};J.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=u1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};J.cfb.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32()^this._outBlock[i],t.putInt32(this._inBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};J.cfb.prototype.decrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=e.getInt32(),t.putInt32(this._inBlock[i]^this._outBlock[i]);return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};J.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};J.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=u1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};J.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(e.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o>0)e.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};J.ofb.prototype.decrypt=J.ofb.prototype.encrypt;J.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};J.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=u1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};J.ctr.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)t.putInt32(e.getInt32()^this._outBlock[i]);else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}f1(this._inBlock)};J.ctr.prototype.decrypt=J.ctr.prototype.encrypt;J.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0,this._R=3774873600};J.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=$t.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=$t.util.createBuffer(e.additionalData):r=$t.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=$t.util.createBuffer(e.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Vo(n*8)))}this._inBlock=this._j0.slice(0),f1(this._inBlock),this._partialBytes=0,r=$t.util.createBuffer(r),this._aDataLength=Vo(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()])};J.gcm.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=e.getInt32());this._cipherLength+=this.blockSize}else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o<=0||r){if(r){var a=n%this.blockSize;this._cipherLength+=a,this._partialOutput.truncate(this.blockSize-a)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),f1(this._inBlock)};J.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),f1(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};J.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=$t.util.createBuffer();var n=this._aDataLength.concat(Vo(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var o=0;o<this._ints;++o)this.tag.putInt32(this._s[o]^i[o]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};J.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var o=e[i/32|0]&1<<31-i%32;o&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};J.gcm.prototype.pow=function(e,t){for(var r=e[3]&1,n=3;n>0;--n)t[n]=e[n]>>>1|(e[n-1]&1)<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)};J.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=e[n]>>>(7-r%8)*4&15,o=this._m[r][i];t[0]^=o[0],t[1]^=o[1],t[2]^=o[2],t[3]^=o[3]}return t};J.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)};J.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,i=16*r,o=new Array(i),a=0;a<i;++a){var s=[0,0,0,0],c=a/n|0,u=(n-1-a%n)*t;s[c]=1<<t-1<<u,o[a]=this.generateSubHashTable(this.multiply(s,e),t)}return o};J.gcm.prototype.generateSubHashTable=function(e,t){var r=1<<t,n=r>>>1,i=new Array(r);i[n]=e.slice(0);for(var o=n>>>1;o>0;)this.pow(i[2*o],i[o]=[]),o>>=1;for(o=2;o<n;){for(var a=1;a<o;++a){var s=i[o],c=i[a];i[o+a]=[s[0]^c[0],s[1]^c[1],s[2]^c[2],s[3]^c[3]]}o*=2}for(i[0]=[0,0,0,0],o=n+1;o<r;++o){var u=i[o^n];i[o]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function u1(e,t){if(typeof e=="string"&&(e=$t.util.createBuffer(e)),$t.util.isArray(e)&&e.length>4){var r=e;e=$t.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!$t.util.isArray(e)){for(var i=[],o=t/4,n=0;n<o;++n)i.push(e.getInt32());e=i}return e}function f1(e){e[e.length-1]=e[e.length-1]+1&4294967295}function Vo(e){return[e/4294967296|0,e&4294967295]}});var h1=nt((Im,d3)=>{var yt=ft();Mo();qo();kt();d3.exports=yt.aes=yt.aes||{};yt.aes.startEncrypting=function(e,t,r,n){var i=l1({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};yt.aes.createEncryptionCipher=function(e,t){return l1({key:e,output:null,decrypt:!1,mode:t})};yt.aes.startDecrypting=function(e,t,r,n){var i=l1({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};yt.aes.createDecryptionCipher=function(e,t){return l1({key:e,output:null,decrypt:!0,mode:t})};yt.aes.Algorithm=function(e,t){$o||l3();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return Ho(r._w,n,i,!1)},decrypt:function(n,i){return Ho(r._w,n,i,!0)}}}),r._init=!1};yt.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,r;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=yt.util.createBuffer(t);else if(yt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=yt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!yt.util.isArray(t)){r=t,t=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(r.getInt32())}}if(!yt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var o=this.mode.name,a=["CFB","OFB","CTR","GCM"].indexOf(o)!==-1;this._w=h3(t,e.decrypt&&!a),this._init=!0}};yt.aes._expandKey=function(e,t){return $o||l3(),h3(e,t)};yt.aes._updateBlock=Ho;Pn("AES-ECB",yt.cipher.modes.ecb);Pn("AES-CBC",yt.cipher.modes.cbc);Pn("AES-CFB",yt.cipher.modes.cfb);Pn("AES-OFB",yt.cipher.modes.ofb);Pn("AES-CTR",yt.cipher.modes.ctr);Pn("AES-GCM",yt.cipher.modes.gcm);function Pn(e,t){var r=function(){return new yt.aes.Algorithm(e,t)};yt.cipher.registerAlgorithm(e,r)}var $o=!1,Rn=4,ie,zo,f3,$r,Ce;function l3(){$o=!0,f3=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;ie=new Array(256),zo=new Array(256),$r=new Array(4),Ce=new Array(4);for(var t=0;t<4;++t)$r[t]=new Array(256),Ce[t]=new Array(256);for(var r=0,n=0,i,o,a,s,c,u,f,t=0;t<256;++t){s=n^n<<1^n<<2^n<<3^n<<4,s=s>>8^s&255^99,ie[r]=s,zo[s]=r,c=e[s],i=e[r],o=e[i],a=e[o],u=c<<24^s<<16^s<<8^(s^c),f=(i^o^a)<<24^(r^a)<<16^(r^o^a)<<8^(r^i^a);for(var l=0;l<4;++l)$r[l][r]=u,Ce[l][s]=f,u=u<<24|u>>>8,f=f<<24|f>>>8;r===0?r=n=1:(r=i^e[e[e[i^a]]],n^=e[e[n]])}}function h3(e,t){for(var r=e.slice(0),n,i=1,o=r.length,a=o+6+1,s=Rn*a,c=o;c<s;++c)n=r[c-1],c%o===0?(n=ie[n>>>16&255]<<24^ie[n>>>8&255]<<16^ie[n&255]<<8^ie[n>>>24]^f3[i]<<24,i++):o>6&&c%o===4&&(n=ie[n>>>24]<<24^ie[n>>>16&255]<<16^ie[n>>>8&255]<<8^ie[n&255]),r[c]=r[c-o]^n;if(t){var u,f=Ce[0],l=Ce[1],p=Ce[2],d=Ce[3],h=r.slice(0);s=r.length;for(var c=0,y=s-Rn;c<s;c+=Rn,y-=Rn)if(c===0||c===s-Rn)h[c]=r[y],h[c+1]=r[y+3],h[c+2]=r[y+2],h[c+3]=r[y+1];else for(var g=0;g<Rn;++g)u=r[y+g],h[c+(3&-g)]=f[ie[u>>>24]]^l[ie[u>>>16&255]]^p[ie[u>>>8&255]]^d[ie[u&255]];r=h}return r}function Ho(e,t,r,n){var i=e.length/4-1,o,a,s,c,u;n?(o=Ce[0],a=Ce[1],s=Ce[2],c=Ce[3],u=zo):(o=$r[0],a=$r[1],s=$r[2],c=$r[3],u=ie);var f,l,p,d,h,y,g;f=t[0]^e[0],l=t[n?3:1]^e[1],p=t[2]^e[2],d=t[n?1:3]^e[3];for(var m=3,x=1;x<i;++x)h=o[f>>>24]^a[l>>>16&255]^s[p>>>8&255]^c[d&255]^e[++m],y=o[l>>>24]^a[p>>>16&255]^s[d>>>8&255]^c[f&255]^e[++m],g=o[p>>>24]^a[d>>>16&255]^s[f>>>8&255]^c[l&255]^e[++m],d=o[d>>>24]^a[f>>>16&255]^s[l>>>8&255]^c[p&255]^e[++m],f=h,l=y,p=g;r[0]=u[f>>>24]<<24^u[l>>>16&255]<<16^u[p>>>8&255]<<8^u[d&255]^e[++m],r[n?3:1]=u[l>>>24]<<24^u[p>>>16&255]<<16^u[d>>>8&255]<<8^u[f&255]^e[++m],r[2]=u[p>>>24]<<24^u[d>>>16&255]<<16^u[f>>>8&255]<<8^u[l&255]^e[++m],r[n?1:3]=u[d>>>24]<<24^u[f>>>16&255]<<16^u[l>>>8&255]<<8^u[p&255]^e[++m]}function l1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=yt.cipher.createDecipher(r,e.key):n=yt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,a){var s=null;a instanceof yt.util.ByteBuffer&&(s=a,a={}),a=a||{},a.output=s,a.iv=o,i.call(n,a)},n}});var d1=nt((Om,m3)=>{var l0=ft();l0.pki=l0.pki||{};var Go=m3.exports=l0.pki.oids=l0.oids=l0.oids||{};function _(e,t){Go[e]=t,Go[t]=e}function at(e,t){Go[e]=t}_("1.2.840.113549.1.1.1","rsaEncryption");_("1.2.840.113549.1.1.4","md5WithRSAEncryption");_("1.2.840.113549.1.1.5","sha1WithRSAEncryption");_("1.2.840.113549.1.1.7","RSAES-OAEP");_("1.2.840.113549.1.1.8","mgf1");_("1.2.840.113549.1.1.9","pSpecified");_("1.2.840.113549.1.1.10","RSASSA-PSS");_("1.2.840.113549.1.1.11","sha256WithRSAEncryption");_("1.2.840.113549.1.1.12","sha384WithRSAEncryption");_("1.2.840.113549.1.1.13","sha512WithRSAEncryption");_("1.3.101.112","EdDSA25519");_("1.2.840.10040.4.3","dsa-with-sha1");_("1.3.14.3.2.7","desCBC");_("1.3.14.3.2.26","sha1");_("1.3.14.3.2.29","sha1WithRSASignature");_("2.16.840.1.101.3.4.2.1","sha256");_("2.16.840.1.101.3.4.2.2","sha384");_("2.16.840.1.101.3.4.2.3","sha512");_("2.16.840.1.101.3.4.2.4","sha224");_("2.16.840.1.101.3.4.2.5","sha512-224");_("2.16.840.1.101.3.4.2.6","sha512-256");_("1.2.840.113549.2.2","md2");_("1.2.840.113549.2.5","md5");_("1.2.840.113549.1.7.1","data");_("1.2.840.113549.1.7.2","signedData");_("1.2.840.113549.1.7.3","envelopedData");_("1.2.840.113549.1.7.4","signedAndEnvelopedData");_("1.2.840.113549.1.7.5","digestedData");_("1.2.840.113549.1.7.6","encryptedData");_("1.2.840.113549.1.9.1","emailAddress");_("1.2.840.113549.1.9.2","unstructuredName");_("1.2.840.113549.1.9.3","contentType");_("1.2.840.113549.1.9.4","messageDigest");_("1.2.840.113549.1.9.5","signingTime");_("1.2.840.113549.1.9.6","counterSignature");_("1.2.840.113549.1.9.7","challengePassword");_("1.2.840.113549.1.9.8","unstructuredAddress");_("1.2.840.113549.1.9.14","extensionRequest");_("1.2.840.113549.1.9.20","friendlyName");_("1.2.840.113549.1.9.21","localKeyId");_("1.2.840.113549.1.9.22.1","x509Certificate");_("1.2.840.113549.1.12.10.1.1","keyBag");_("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");_("1.2.840.113549.1.12.10.1.3","certBag");_("1.2.840.113549.1.12.10.1.4","crlBag");_("1.2.840.113549.1.12.10.1.5","secretBag");_("1.2.840.113549.1.12.10.1.6","safeContentsBag");_("1.2.840.113549.1.5.13","pkcs5PBES2");_("1.2.840.113549.1.5.12","pkcs5PBKDF2");_("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");_("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");_("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");_("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");_("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");_("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");_("1.2.840.113549.2.7","hmacWithSHA1");_("1.2.840.113549.2.8","hmacWithSHA224");_("1.2.840.113549.2.9","hmacWithSHA256");_("1.2.840.113549.2.10","hmacWithSHA384");_("1.2.840.113549.2.11","hmacWithSHA512");_("1.2.840.113549.3.7","des-EDE3-CBC");_("2.16.840.1.101.3.4.1.2","aes128-CBC");_("2.16.840.1.101.3.4.1.22","aes192-CBC");_("2.16.840.1.101.3.4.1.42","aes256-CBC");_("2.5.4.3","commonName");_("2.5.4.4","surname");_("2.5.4.5","serialNumber");_("2.5.4.6","countryName");_("2.5.4.7","localityName");_("2.5.4.8","stateOrProvinceName");_("2.5.4.9","streetAddress");_("2.5.4.10","organizationName");_("2.5.4.11","organizationalUnitName");_("2.5.4.12","title");_("2.5.4.13","description");_("2.5.4.15","businessCategory");_("2.5.4.17","postalCode");_("2.5.4.42","givenName");_("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");_("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");_("2.16.840.1.113730.1.1","nsCertType");_("2.16.840.1.113730.1.13","nsComment");at("2.5.29.1","authorityKeyIdentifier");at("2.5.29.2","keyAttributes");at("2.5.29.3","certificatePolicies");at("2.5.29.4","keyUsageRestriction");at("2.5.29.5","policyMapping");at("2.5.29.6","subtreesConstraint");at("2.5.29.7","subjectAltName");at("2.5.29.8","issuerAltName");at("2.5.29.9","subjectDirectoryAttributes");at("2.5.29.10","basicConstraints");at("2.5.29.11","nameConstraints");at("2.5.29.12","policyConstraints");at("2.5.29.13","basicConstraints");_("2.5.29.14","subjectKeyIdentifier");_("2.5.29.15","keyUsage");at("2.5.29.16","privateKeyUsagePeriod");_("2.5.29.17","subjectAltName");_("2.5.29.18","issuerAltName");_("2.5.29.19","basicConstraints");at("2.5.29.20","cRLNumber");at("2.5.29.21","cRLReason");at("2.5.29.22","expirationDate");at("2.5.29.23","instructionCode");at("2.5.29.24","invalidityDate");at("2.5.29.25","cRLDistributionPoints");at("2.5.29.26","issuingDistributionPoint");at("2.5.29.27","deltaCRLIndicator");at("2.5.29.28","issuingDistributionPoint");at("2.5.29.29","certificateIssuer");at("2.5.29.30","nameConstraints");_("2.5.29.31","cRLDistributionPoints");_("2.5.29.32","certificatePolicies");at("2.5.29.33","policyMappings");at("2.5.29.34","policyConstraints");_("2.5.29.35","authorityKeyIdentifier");at("2.5.29.36","policyConstraints");_("2.5.29.37","extKeyUsage");at("2.5.29.46","freshestCRL");at("2.5.29.54","inhibitAnyPolicy");_("1.3.6.1.4.1.11129.2.4.2","timestampList");_("1.3.6.1.5.5.7.1.1","authorityInfoAccess");_("1.3.6.1.5.5.7.3.1","serverAuth");_("1.3.6.1.5.5.7.3.2","clientAuth");_("1.3.6.1.5.5.7.3.3","codeSigning");_("1.3.6.1.5.5.7.3.4","emailProtection");_("1.3.6.1.5.5.7.3.8","timeStamping")});var d0=nt((Um,v3)=>{var mt=ft();kt();d1();var O=v3.exports=mt.asn1=mt.asn1||{};O.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};O.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};O.create=function(e,t,r,n,i){if(mt.util.isArray(n)){for(var o=[],a=0;a<n.length;++a)n[a]!==void 0&&o.push(n[a]);n=o}var s={tagClass:e,type:t,constructed:r,composed:r||mt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(s.bitStringContents=i.bitStringContents,s.original=O.copy(s)),s};O.copy=function(e,t){var r;if(mt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(O.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:O.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};O.equals=function(e,t,r){if(mt.util.isArray(e)){if(!mt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!O.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&O.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};O.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function h0(e,t,r){if(r>t){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}var nu=function(e,t){var r=e.getByte();if(t--,r!==128){var n,i=r&128;if(!i)n=r;else{var o=r&127;h0(e,t,o),n=e.getInt(o<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=mt.util.createBuffer(e));var r=e.length(),n=p1(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=e.length(),i}return n};function p1(e,t,r,n){var i;h0(e,t,2);var o=e.getByte();t--;var a=o&192,s=o&31;i=e.length();var c=nu(e,t);if(t-=i-e.length(),c!==void 0&&c>t){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=e.length(),u.remaining=t,u.requested=c,u}c=t}var f,l,p=(o&32)===32;if(p)if(f=[],c===void 0)for(;;){if(h0(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}i=e.length(),f.push(p1(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),f.push(p1(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(f===void 0&&a===O.Class.UNIVERSAL&&s===O.Type.BITSTRING&&(l=e.bytes(c)),f===void 0&&n.decodeBitStrings&&a===O.Class.UNIVERSAL&&s===O.Type.BITSTRING&&c>1){var d=e.read,h=t,y=0;if(s===O.Type.BITSTRING&&(h0(e,t,1),y=e.getByte(),t--),y===0)try{i=e.length();var g={strict:!0,decodeBitStrings:!0},m=p1(e,t,r+1,g),x=i-e.length();t-=x,s==O.Type.BITSTRING&&x++;var v=m.tagClass;x===c&&(v===O.Class.UNIVERSAL||v===O.Class.CONTEXT_SPECIFIC)&&(f=[m])}catch{}f===void 0&&(e.read=d,t=h)}if(f===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(s===O.Type.BMPSTRING)for(f="";c>0;c-=2)h0(e,t,2),f+=String.fromCharCode(e.getInt16()),t-=2;else f=e.getBytes(c),t-=c}var C=l===void 0?null:{bitStringContents:l};return O.create(a,s,p,f,C)}O.toDer=function(e){var t=mt.util.createBuffer(),r=e.tagClass|e.type,n=mt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=O.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var o=0;o<e.value.length;++o)e.value[o]!==void 0&&n.putBuffer(O.toDer(e.value[o]))}else if(e.type===O.Type.BMPSTRING)for(var o=0;o<e.value.length;++o)n.putInt16(e.value.charCodeAt(o));else e.type===O.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var a=n.length(),s="";do s+=String.fromCharCode(a&255),a=a>>>8;while(a>0);t.putByte(s.length|128);for(var o=s.length-1;o>=0;--o)t.putByte(s.charCodeAt(o))}return t.putBuffer(n),t};O.oidToDer=function(e){var t=e.split("."),r=mt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,o,a,s=2;s<t.length;++s){n=!0,i=[],o=parseInt(t[s],10);do a=o&127,o=o>>>7,n||(a|=128),i.push(a),n=!1;while(o>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};O.derToOid=function(e){var t;typeof e=="string"&&(e=mt.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};O.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),o=parseInt(e.substr(6,2),10),a=parseInt(e.substr(8,2),10),s=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(s=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(o,a,s,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var f=parseInt(e.substr(u+1,2),10),l=parseInt(e.substr(u+4,2),10),p=f*60+l;p*=6e4,c==="+"?t.setTime(+t-p):t.setTime(+t+p)}return t};O.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),a=parseInt(e.substr(10,2),10),s=parseInt(e.substr(12,2),10),c=0,u=0,f=!1;e.charAt(e.length-1)==="Z"&&(f=!0);var l=e.length-5,p=e.charAt(l);if(p==="+"||p==="-"){var d=parseInt(e.substr(l+1,2),10),h=parseInt(e.substr(l+4,2),10);u=d*60+h,u*=6e4,p==="+"&&(u*=-1),f=!0}return e.charAt(14)==="."&&(c=parseFloat(e.substr(14),10)*1e3),f?(t.setUTCFullYear(r,n,i),t.setUTCHours(o,a,s,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(o,a,s,c)),t};O.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push(""+e.getUTCFullYear()),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.integerToDer=function(e){var t=mt.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r};O.derToInteger=function(e){typeof e=="string"&&(e=mt.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};O.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&mt.util.isArray(t.value))for(var o=0,a=0;i&&a<t.value.length;++a)i=t.value[a].optional||!1,e.value[o]&&(i=O.validate(e.value[o],t.value[a],r,n),i?++o:t.value[a].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(t.capture&&(r[t.capture]=e.value),t.captureAsn1&&(r[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(r[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)){var s;if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{var c=e.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return i};var x3=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
|
|
6
6
|
`);for(var i="",o=0;o<t*r;++o)i+=" ";switch(n+=i+"Tag: ",e.tagClass){case O.Class.UNIVERSAL:n+="Universal:";break;case O.Class.APPLICATION:n+="Application:";break;case O.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case O.Class.PRIVATE:n+="Private:";break}if(e.tagClass===O.Class.UNIVERSAL)switch(n+=e.type,e.type){case O.Type.NONE:n+=" (None)";break;case O.Type.BOOLEAN:n+=" (Boolean)";break;case O.Type.INTEGER:n+=" (Integer)";break;case O.Type.BITSTRING:n+=" (Bit string)";break;case O.Type.OCTETSTRING:n+=" (Octet string)";break;case O.Type.NULL:n+=" (Null)";break;case O.Type.OID:n+=" (Object Identifier)";break;case O.Type.ODESC:n+=" (Object Descriptor)";break;case O.Type.EXTERNAL:n+=" (External or Instance of)";break;case O.Type.REAL:n+=" (Real)";break;case O.Type.ENUMERATED:n+=" (Enumerated)";break;case O.Type.EMBEDDED:n+=" (Embedded PDV)";break;case O.Type.UTF8:n+=" (UTF8)";break;case O.Type.ROID:n+=" (Relative Object Identifier)";break;case O.Type.SEQUENCE:n+=" (Sequence)";break;case O.Type.SET:n+=" (Set)";break;case O.Type.PRINTABLESTRING:n+=" (Printable String)";break;case O.Type.IA5String:n+=" (IA5String (ASCII))";break;case O.Type.UTCTIME:n+=" (UTC time)";break;case O.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case O.Type.BMPSTRING:n+=" (BMP String)";break}else n+=e.type;if(n+=`
|
|
7
7
|
`,n+=i+"Constructed: "+e.constructed+`
|
|
8
|
-
`,e.composed){for(var a=0,s="",o=0;o<e.value.length;++o)e.value[o]!==void 0&&(a+=1,s+=O.prettyPrint(e.value[o],t+1,r),o+1<e.value.length&&(s+=","));n+=i+"Sub values: "+a+s}else{if(n+=i+"Value: ",e.type===O.Type.OID){var c=O.derToOid(e.value);n+=c,mt.pki&&mt.pki.oids&&c in mt.pki.oids&&(n+=" ("+mt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+mt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+mt.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===O.Type.OCTETSTRING)g3.test(e.value)||(n+="("+e.value+") "),n+="0x"+mt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=mt.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")n+="0x"+mt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:g3.test(e.value)?n+="0x"+mt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var b3=nt((km,v3)=>{var bt=ut();Ko();Vo();kt();v3.exports=bt.des=bt.des||{};bt.des.startEncrypting=function(e,t,r,n){var i=p1({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};bt.des.createEncryptionCipher=function(e,t){return p1({key:e,output:null,decrypt:!1,mode:t})};bt.des.startDecrypting=function(e,t,r,n){var i=p1({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};bt.des.createDecryptionCipher=function(e,t){return p1({key:e,output:null,decrypt:!0,mode:t})};bt.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return x3(r._keys,n,i,!1)},decrypt:function(n,i){return x3(r._keys,n,i,!0)}}}),r._init=!1};bt.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=bt.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=hu(t),this._init=!0}};Ke("DES-ECB",bt.cipher.modes.ecb);Ke("DES-CBC",bt.cipher.modes.cbc);Ke("DES-CFB",bt.cipher.modes.cfb);Ke("DES-OFB",bt.cipher.modes.ofb);Ke("DES-CTR",bt.cipher.modes.ctr);Ke("3DES-ECB",bt.cipher.modes.ecb);Ke("3DES-CBC",bt.cipher.modes.cbc);Ke("3DES-CFB",bt.cipher.modes.cfb);Ke("3DES-OFB",bt.cipher.modes.ofb);Ke("3DES-CTR",bt.cipher.modes.ctr);function Ke(e,t){var r=function(){return new bt.des.Algorithm(e,t)};bt.cipher.registerAlgorithm(e,r)}var iu=[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],ou=[-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],su=[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],au=[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],cu=[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],uu=[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],fu=[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],lu=[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 hu(e){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],o=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],a=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],s=[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],f=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],l=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],p=[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],h=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],y=e.length()>8?3:1,g=[],m=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,v,C=0;C<y;C++){var E=e.getInt32(),S=e.getInt32();v=(E>>>4^S)&252645135,S^=v,E^=v<<4,v=(S>>>-16^E)&65535,E^=v,S^=v<<-16,v=(E>>>2^S)&858993459,S^=v,E^=v<<2,v=(S>>>-16^E)&65535,E^=v,S^=v<<-16,v=(E>>>1^S)&1431655765,S^=v,E^=v<<1,v=(S>>>8^E)&16711935,E^=v,S^=v<<8,v=(E>>>1^S)&1431655765,S^=v,E^=v<<1,v=E<<8|S>>>20&240,E=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=v;for(var L=0;L<m.length;++L){m[L]?(E=E<<2|E>>>26,S=S<<2|S>>>26):(E=E<<1|E>>>27,S=S<<1|S>>>27),E&=-15,S&=-15;var N=t[E>>>28]|r[E>>>24&15]|n[E>>>20&15]|i[E>>>16&15]|o[E>>>12&15]|a[E>>>8&15]|s[E>>>4&15],$=c[S>>>28]|u[S>>>24&15]|f[S>>>20&15]|l[S>>>16&15]|p[S>>>12&15]|d[S>>>8&15]|h[S>>>4&15];v=($>>>16^N)&65535,g[x++]=N^v,g[x++]=$^v<<16}}return g}function x3(e,t,r,n){var i=e.length===32?3:9,o;i===3?o=n?[30,-2,-2]:[0,32,2]:o=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var a,s=t[0],c=t[1];a=(s>>>4^c)&252645135,c^=a,s^=a<<4,a=(s>>>16^c)&65535,c^=a,s^=a<<16,a=(c>>>2^s)&858993459,s^=a,c^=a<<2,a=(c>>>8^s)&16711935,s^=a,c^=a<<8,a=(s>>>1^c)&1431655765,c^=a,s^=a<<1,s=s<<1|s>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var f=o[u+1],l=o[u+2],p=o[u];p!=f;p+=l){var d=c^e[p],h=(c>>>4|c<<28)^e[p+1];a=s,s=c,c=a^(ou[d>>>24&63]|au[d>>>16&63]|uu[d>>>8&63]|lu[d&63]|iu[h>>>24&63]|su[h>>>16&63]|cu[h>>>8&63]|fu[h&63])}a=s,s=c,c=a}s=s>>>1|s<<31,c=c>>>1|c<<31,a=(s>>>1^c)&1431655765,c^=a,s^=a<<1,a=(c>>>8^s)&16711935,s^=a,c^=a<<8,a=(c>>>2^s)&858993459,s^=a,c^=a<<2,a=(s>>>16^c)&65535,c^=a,s^=a<<16,a=(s>>>4^c)&252645135,c^=a,s^=a<<4,r[0]=s,r[1]=c}function p1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=bt.cipher.createDecipher(r,e.key):n=bt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,a){var s=null;a instanceof bt.util.ByteBuffer&&(s=a,a={}),a=a||{},a.output=s,a.iv=o,i.call(n,a)},n}});var Gr=nt((Dm,w3)=>{var y1=ut();w3.exports=y1.md=y1.md||{};y1.md.algorithms=y1.md.algorithms||{}});var S3=nt((Om,E3)=>{var je=ut();Gr();kt();var du=E3.exports=je.hmac=je.hmac||{};du.create=function(){var e=null,t=null,r=null,n=null,i={};return i.start=function(o,a){if(o!==null)if(typeof o=="string")if(o=o.toLowerCase(),o in je.md.algorithms)t=je.md.algorithms[o].create();else throw new Error('Unknown hash algorithm "'+o+'"');else t=o;if(a===null)a=e;else{if(typeof a=="string")a=je.util.createBuffer(a);else if(je.util.isArray(a)){var s=a;a=je.util.createBuffer();for(var c=0;c<s.length;++c)a.putByte(s[c])}var u=a.length();u>t.blockLength&&(t.start(),t.update(a.bytes()),a=t.digest()),r=je.util.createBuffer(),n=je.util.createBuffer(),u=a.length();for(var c=0;c<u;++c){var s=a.at(c);r.putByte(54^s),n.putByte(92^s)}if(u<t.blockLength)for(var s=t.blockLength-u,c=0;c<s;++c)r.putByte(54),n.putByte(92);e=a,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(o){t.update(o)},i.getMac=function(){var o=t.digest().bytes();return t.start(),t.update(n),t.update(o),t.digest()},i.digest=i.getMac,i}});var g1=nt(()=>{});var Go=nt((Km,I3)=>{var oe=ut();S3();Gr();kt();var pu=oe.pkcs5=oe.pkcs5||{},tr;oe.util.isNodejs&&!oe.options.usePureJavaScript&&(tr=g1());I3.exports=oe.pbkdf2=pu.pbkdf2=function(e,t,r,n,i,o){if(typeof i=="function"&&(o=i,i=null),oe.util.isNodejs&&!oe.options.usePureJavaScript&&tr.pbkdf2&&(i===null||typeof i!="object")&&(tr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),o?tr.pbkdf2Sync.length===4?tr.pbkdf2(e,t,r,n,function(v,C){if(v)return o(v);o(null,C.toString("binary"))}):tr.pbkdf2(e,t,r,n,i,function(v,C){if(v)return o(v);o(null,C.toString("binary"))}):tr.pbkdf2Sync.length===4?tr.pbkdf2Sync(e,t,r,n).toString("binary"):tr.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in oe.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=oe.md[i].create()}var a=i.digestLength;if(n>4294967295*a){var s=new Error("Derived key is too long.");if(o)return o(s);throw s}var c=Math.ceil(n/a),u=n-(c-1)*a,f=oe.hmac.create();f.start(i,e);var l="",p,d,h;if(!o){for(var y=1;y<=c;++y){f.start(null,null),f.update(t),f.update(oe.util.int32ToBytes(y)),p=h=f.digest().getBytes();for(var g=2;g<=r;++g)f.start(null,null),f.update(h),d=f.digest().getBytes(),p=oe.util.xorBytes(p,d,a),h=d;l+=y<c?p:p.substr(0,u)}return l}var y=1,g;function m(){if(y>c)return o(null,l);f.start(null,null),f.update(t),f.update(oe.util.int32ToBytes(y)),p=h=f.digest().getBytes(),g=2,x()}function x(){if(g<=r)return f.start(null,null),f.update(h),d=f.digest().getBytes(),p=oe.util.xorBytes(p,d,a),h=d,++g,oe.util.setImmediate(x);l+=y<c?p:p.substr(0,u),++y,m()}m()}});var B3=nt((Mm,C3)=>{var x1=ut();kt();var A3=C3.exports=x1.pem=x1.pem||{};A3.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
|
|
9
|
-
`,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r+=
|
|
10
|
-
`),r+=
|
|
8
|
+
`,e.composed){for(var a=0,s="",o=0;o<e.value.length;++o)e.value[o]!==void 0&&(a+=1,s+=O.prettyPrint(e.value[o],t+1,r),o+1<e.value.length&&(s+=","));n+=i+"Sub values: "+a+s}else{if(n+=i+"Value: ",e.type===O.Type.OID){var c=O.derToOid(e.value);n+=c,mt.pki&&mt.pki.oids&&c in mt.pki.oids&&(n+=" ("+mt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+mt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+mt.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===O.Type.OCTETSTRING)x3.test(e.value)||(n+="("+e.value+") "),n+="0x"+mt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=mt.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")n+="0x"+mt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:x3.test(e.value)?n+="0x"+mt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var E3=nt((Fm,w3)=>{var bt=ft();Mo();qo();kt();w3.exports=bt.des=bt.des||{};bt.des.startEncrypting=function(e,t,r,n){var i=y1({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};bt.des.createEncryptionCipher=function(e,t){return y1({key:e,output:null,decrypt:!1,mode:t})};bt.des.startDecrypting=function(e,t,r,n){var i=y1({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};bt.des.createDecryptionCipher=function(e,t){return y1({key:e,output:null,decrypt:!0,mode:t})};bt.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return b3(r._keys,n,i,!1)},decrypt:function(n,i){return b3(r._keys,n,i,!0)}}}),r._init=!1};bt.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=bt.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=hu(t),this._init=!0}};Ke("DES-ECB",bt.cipher.modes.ecb);Ke("DES-CBC",bt.cipher.modes.cbc);Ke("DES-CFB",bt.cipher.modes.cfb);Ke("DES-OFB",bt.cipher.modes.ofb);Ke("DES-CTR",bt.cipher.modes.ctr);Ke("3DES-ECB",bt.cipher.modes.ecb);Ke("3DES-CBC",bt.cipher.modes.cbc);Ke("3DES-CFB",bt.cipher.modes.cfb);Ke("3DES-OFB",bt.cipher.modes.ofb);Ke("3DES-CTR",bt.cipher.modes.ctr);function Ke(e,t){var r=function(){return new bt.des.Algorithm(e,t)};bt.cipher.registerAlgorithm(e,r)}var iu=[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],ou=[-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],su=[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],au=[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],cu=[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],uu=[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],fu=[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],lu=[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 hu(e){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],o=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],a=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],s=[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],f=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],l=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],p=[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],h=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],y=e.length()>8?3:1,g=[],m=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,v,C=0;C<y;C++){var E=e.getInt32(),S=e.getInt32();v=(E>>>4^S)&252645135,S^=v,E^=v<<4,v=(S>>>-16^E)&65535,E^=v,S^=v<<-16,v=(E>>>2^S)&858993459,S^=v,E^=v<<2,v=(S>>>-16^E)&65535,E^=v,S^=v<<-16,v=(E>>>1^S)&1431655765,S^=v,E^=v<<1,v=(S>>>8^E)&16711935,E^=v,S^=v<<8,v=(E>>>1^S)&1431655765,S^=v,E^=v<<1,v=E<<8|S>>>20&240,E=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=v;for(var L=0;L<m.length;++L){m[L]?(E=E<<2|E>>>26,S=S<<2|S>>>26):(E=E<<1|E>>>27,S=S<<1|S>>>27),E&=-15,S&=-15;var N=t[E>>>28]|r[E>>>24&15]|n[E>>>20&15]|i[E>>>16&15]|o[E>>>12&15]|a[E>>>8&15]|s[E>>>4&15],$=c[S>>>28]|u[S>>>24&15]|f[S>>>20&15]|l[S>>>16&15]|p[S>>>12&15]|d[S>>>8&15]|h[S>>>4&15];v=($>>>16^N)&65535,g[x++]=N^v,g[x++]=$^v<<16}}return g}function b3(e,t,r,n){var i=e.length===32?3:9,o;i===3?o=n?[30,-2,-2]:[0,32,2]:o=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var a,s=t[0],c=t[1];a=(s>>>4^c)&252645135,c^=a,s^=a<<4,a=(s>>>16^c)&65535,c^=a,s^=a<<16,a=(c>>>2^s)&858993459,s^=a,c^=a<<2,a=(c>>>8^s)&16711935,s^=a,c^=a<<8,a=(s>>>1^c)&1431655765,c^=a,s^=a<<1,s=s<<1|s>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var f=o[u+1],l=o[u+2],p=o[u];p!=f;p+=l){var d=c^e[p],h=(c>>>4|c<<28)^e[p+1];a=s,s=c,c=a^(ou[d>>>24&63]|au[d>>>16&63]|uu[d>>>8&63]|lu[d&63]|iu[h>>>24&63]|su[h>>>16&63]|cu[h>>>8&63]|fu[h&63])}a=s,s=c,c=a}s=s>>>1|s<<31,c=c>>>1|c<<31,a=(s>>>1^c)&1431655765,c^=a,s^=a<<1,a=(c>>>8^s)&16711935,s^=a,c^=a<<8,a=(c>>>2^s)&858993459,s^=a,c^=a<<2,a=(s>>>16^c)&65535,c^=a,s^=a<<16,a=(s>>>4^c)&252645135,c^=a,s^=a<<4,r[0]=s,r[1]=c}function y1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=bt.cipher.createDecipher(r,e.key):n=bt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,a){var s=null;a instanceof bt.util.ByteBuffer&&(s=a,a={}),a=a||{},a.output=s,a.iv=o,i.call(n,a)},n}});var Gr=nt((Km,S3)=>{var g1=ft();S3.exports=g1.md=g1.md||{};g1.md.algorithms=g1.md.algorithms||{}});var A3=nt((Mm,I3)=>{var je=ft();Gr();kt();var du=I3.exports=je.hmac=je.hmac||{};du.create=function(){var e=null,t=null,r=null,n=null,i={};return i.start=function(o,a){if(o!==null)if(typeof o=="string")if(o=o.toLowerCase(),o in je.md.algorithms)t=je.md.algorithms[o].create();else throw new Error('Unknown hash algorithm "'+o+'"');else t=o;if(a===null)a=e;else{if(typeof a=="string")a=je.util.createBuffer(a);else if(je.util.isArray(a)){var s=a;a=je.util.createBuffer();for(var c=0;c<s.length;++c)a.putByte(s[c])}var u=a.length();u>t.blockLength&&(t.start(),t.update(a.bytes()),a=t.digest()),r=je.util.createBuffer(),n=je.util.createBuffer(),u=a.length();for(var c=0;c<u;++c){var s=a.at(c);r.putByte(54^s),n.putByte(92^s)}if(u<t.blockLength)for(var s=t.blockLength-u,c=0;c<s;++c)r.putByte(54),n.putByte(92);e=a,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(o){t.update(o)},i.getMac=function(){var o=t.digest().bytes();return t.start(),t.update(n),t.update(o),t.digest()},i.digest=i.getMac,i}});var m1=nt(()=>{});var Qo=nt((zm,C3)=>{var oe=ft();A3();Gr();kt();var pu=oe.pkcs5=oe.pkcs5||{},tr;oe.util.isNodejs&&!oe.options.usePureJavaScript&&(tr=m1());C3.exports=oe.pbkdf2=pu.pbkdf2=function(e,t,r,n,i,o){if(typeof i=="function"&&(o=i,i=null),oe.util.isNodejs&&!oe.options.usePureJavaScript&&tr.pbkdf2&&(i===null||typeof i!="object")&&(tr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),o?tr.pbkdf2Sync.length===4?tr.pbkdf2(e,t,r,n,function(v,C){if(v)return o(v);o(null,C.toString("binary"))}):tr.pbkdf2(e,t,r,n,i,function(v,C){if(v)return o(v);o(null,C.toString("binary"))}):tr.pbkdf2Sync.length===4?tr.pbkdf2Sync(e,t,r,n).toString("binary"):tr.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in oe.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=oe.md[i].create()}var a=i.digestLength;if(n>4294967295*a){var s=new Error("Derived key is too long.");if(o)return o(s);throw s}var c=Math.ceil(n/a),u=n-(c-1)*a,f=oe.hmac.create();f.start(i,e);var l="",p,d,h;if(!o){for(var y=1;y<=c;++y){f.start(null,null),f.update(t),f.update(oe.util.int32ToBytes(y)),p=h=f.digest().getBytes();for(var g=2;g<=r;++g)f.start(null,null),f.update(h),d=f.digest().getBytes(),p=oe.util.xorBytes(p,d,a),h=d;l+=y<c?p:p.substr(0,u)}return l}var y=1,g;function m(){if(y>c)return o(null,l);f.start(null,null),f.update(t),f.update(oe.util.int32ToBytes(y)),p=h=f.digest().getBytes(),g=2,x()}function x(){if(g<=r)return f.start(null,null),f.update(h),d=f.digest().getBytes(),p=oe.util.xorBytes(p,d,a),h=d,++g,oe.util.setImmediate(x);l+=y<c?p:p.substr(0,u),++y,m()}m()}});var _3=nt((Hm,T3)=>{var v1=ft();kt();var B3=T3.exports=v1.pem=v1.pem||{};B3.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
|
|
9
|
+
`,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r+=x1(n)),e.contentDomain&&(n={name:"Content-Domain",values:[e.contentDomain]},r+=x1(n)),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),r+=x1(n)),e.headers)for(var i=0;i<e.headers.length;++i)r+=x1(e.headers[i]);return e.procType&&(r+=`\r
|
|
10
|
+
`),r+=v1.util.encode64(e.body,t.maxline||64)+`\r
|
|
11
11
|
`,r+="-----END "+e.type+`-----\r
|
|
12
|
-
`,r};
|
|
12
|
+
`,r};B3.decode=function(e){for(var t=[],r=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,o;o=r.exec(e),!!o;){var a=o[1];a==="NEW CERTIFICATE REQUEST"&&(a="CERTIFICATE REQUEST");var s={type:a,procType:null,contentDomain:null,dekInfo:null,headers:[],body:v1.util.decode64(o[3])};if(t.push(s),!!o[2]){for(var c=o[2].split(i),u=0;o&&u<c.length;){for(var f=c[u].replace(/\s+$/,""),l=u+1;l<c.length;++l){var p=c[l];if(!/\s/.test(p[0]))break;f+=p,u=l}if(o=f.match(n),o){for(var d={name:o[1],values:[]},h=o[2].split(","),y=0;y<h.length;++y)d.values.push(yu(h[y]));if(s.procType)if(!s.contentDomain&&d.name==="Content-Domain")s.contentDomain=h[0]||"";else if(!s.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.');s.dekInfo={algorithm:h[0],parameters:h[1]||null}}else s.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.');s.procType={version:h[0],type:h[1]}}}++u}if(s.procType==="ENCRYPTED"&&!s.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 x1(e){for(var t=e.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<e.values.length;++i)r.push(e.values[i].replace(/^(\S+\r\n)/,n));t+=r.join(",")+`\r
|
|
13
13
|
`;for(var o=0,a=-1,i=0;i<t.length;++i,++o)if(o>65&&a!==-1){var s=t[a];s===","?(++a,t=t.substr(0,a)+`\r
|
|
14
14
|
`+t.substr(a)):t=t.substr(0,a)+`\r
|
|
15
|
-
`+s+t.substr(a+1),o=i-a-1,a=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(a=i);return t}function yu(e){return e.replace(/^\s+/,"")}});var N3=nt((Vm,L3)=>{var Me=ut();Gr();kt();var _3=L3.exports=Me.sha256=Me.sha256||{};Me.md.sha256=Me.md.algorithms.sha256=_3;_3.create=function(){R3||gu();var e=null,t=Me.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=Me.util.createBuffer(),e={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=Me.util.encodeUtf8(i));var a=i.length;n.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var s=n.fullMessageLength.length-1;s>=0;--s)n.fullMessageLength[s]+=a[1],a[1]=a[0]+(n.fullMessageLength[s]/4294967296>>>0),n.fullMessageLength[s]=n.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(i),T3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Me.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,a=o&n.blockLength-1;i.putBytes(Qo.substr(0,n.blockLength-a));for(var s,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)s=n.fullMessageLength[f+1]*8,c=s/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=s>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};T3(l,r,i);var p=Me.util.createBuffer();return p.putInt32(l.h0),p.putInt32(l.h1),p.putInt32(l.h2),p.putInt32(l.h3),p.putInt32(l.h4),p.putInt32(l.h5),p.putInt32(l.h6),p.putInt32(l.h7),p},n};var Qo=null,R3=!1,P3=null;function gu(){Qo=String.fromCharCode(128),Qo+=Me.util.fillString(String.fromCharCode(0),64),P3=[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],R3=!0}function T3(e,t,r){for(var n,i,o,a,s,c,u,f,l,p,d,h,y,g,m,x=r.length();x>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(f=e.h0,l=e.h1,p=e.h2,d=e.h3,h=e.h4,y=e.h5,g=e.h6,m=e.h7,u=0;u<64;++u)a=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),s=g^h&(y^g),o=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),c=f&l|p&(f^l),n=m+a+s+P3[u]+t[u],i=o+c,m=g,g=y,y=h,h=d+n>>>0,d=p,p=l,l=f,f=n+i>>>0;e.h0=e.h0+f|0,e.h1=e.h1+l|0,e.h2=e.h2+p|0,e.h3=e.h3+d|0,e.h4=e.h4+h|0,e.h5=e.h5+y|0,e.h6=e.h6+g|0,e.h7=e.h7+m|0,x-=64}}});var D3=nt((qm,k3)=>{var Ve=ut();kt();var v1=null;Ve.util.isNodejs&&!Ve.options.usePureJavaScript&&!process.versions["node-webkit"]&&(v1=g1());var mu=k3.exports=Ve.prng=Ve.prng||{};mu.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,f){if(!f)return t.generateSync(u);var l=t.plugin.cipher,p=t.plugin.increment,d=t.plugin.formatKey,h=t.plugin.formatSeed,y=Ve.util.createBuffer();t.key=null,g();function g(m){if(m)return f(m);if(y.length()>=u)return f(null,y.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return Ve.util.nextTick(function(){o(g)});var x=l(t.key,t.seed);t.generated+=x.length,y.putBytes(x),t.key=d(l(t.key,p(t.seed))),t.seed=h(l(t.key,t.seed)),Ve.util.setImmediate(g)}},t.generateSync=function(u){var f=t.plugin.cipher,l=t.plugin.increment,p=t.plugin.formatKey,d=t.plugin.formatSeed;t.key=null;for(var h=Ve.util.createBuffer();h.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&a();var y=f(t.key,t.seed);t.generated+=y.length,h.putBytes(y),t.key=p(f(t.key,l(t.seed))),t.seed=d(f(t.key,t.seed))}return h.getBytes(u)};function o(u){if(t.pools[0].messageLength>=32)return s(),u();var f=32-t.pools[0].messageLength<<5;t.seedFile(f,function(l,p){if(l)return u(l);t.collect(p),s(),u()})}function a(){if(t.pools[0].messageLength>=32)return s();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),s()}function s(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var u=t.plugin.md.create();u.update(t.keyBytes);for(var f=1,l=0;l<32;++l)t.reseeds%f===0&&(u.update(t.pools[l].digest().getBytes()),t.pools[l].start()),f=f<<1;t.keyBytes=u.digest().getBytes(),u.start(),u.update(t.keyBytes);var p=u.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(p),t.generated=0}function c(u){var f=null,l=Ve.util.globalScope,p=l.crypto||l.msCrypto;p&&p.getRandomValues&&(f=function(E){return p.getRandomValues(E)});var d=Ve.util.createBuffer();if(f)for(;d.length()<u;){var h=Math.max(1,Math.min(u-d.length(),65536)/4),y=new Uint32Array(Math.floor(h));try{f(y);for(var g=0;g<y.length;++g)d.putInt32(y[g])}catch(E){if(!(typeof QuotaExceededError<"u"&&E instanceof QuotaExceededError))throw E}}if(d.length()<u)for(var m,x,v,C=Math.floor(Math.random()*65536);d.length()<u;){x=16807*(C&65535),m=16807*(C>>16),x+=(m&32767)<<16,x+=m>>15,x=(x&2147483647)+(x>>31),C=x&4294967295;for(var g=0;g<3;++g)v=C>>>(g<<3),v^=Math.floor(Math.random()*256),d.putByte(v&255)}return d.getBytes(u)}return v1?(t.seedFile=function(u,f){v1.randomBytes(u,function(l,p){if(l)return f(l);f(null,p.toString())})},t.seedFileSync=function(u){return v1.randomBytes(u).toString()}):(t.seedFile=function(u,f){try{f(null,c(u))}catch(l){f(l)}},t.seedFileSync=c),t.collect=function(u){for(var f=u.length,l=0;l<f;++l)t.pools[t.pool].update(u.substr(l,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,f){for(var l="",p=0;p<f;p+=8)l+=String.fromCharCode(u>>p&255);t.collect(l)},t.registerWorker=function(u){if(u===self)t.seedFile=function(l,p){function d(h){var y=h.data;y.forge&&y.forge.prng&&(self.removeEventListener("message",d),p(y.forge.prng.err,y.forge.prng.bytes))}self.addEventListener("message",d),self.postMessage({forge:{prng:{needed:l}}})};else{var f=function(l){var p=l.data;p.forge&&p.forge.prng&&t.seedFile(p.forge.prng.needed,function(d,h){u.postMessage({forge:{prng:{err:d,bytes:h}}})})};u.addEventListener("message",f)}},t}});var p0=nt((zm,Yo)=>{var Gt=ut();l1();N3();D3();kt();(function(){if(Gt.random&&Gt.random.getBytes){Yo.exports=Gt.random;return}(function(e){var t={},r=new Array(4),n=Gt.util.createBuffer();t.formatKey=function(l){var p=Gt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),Gt.aes._expandKey(l,!1)},t.formatSeed=function(l){var p=Gt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),l},t.cipher=function(l,p){return Gt.aes._updateBlock(l,p,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(l){return++l[3],l},t.md=Gt.md.sha256;function i(){var l=Gt.prng.create(t);return l.getBytes=function(p,d){return l.generate(p,d)},l.getBytesSync=function(p){return l.generate(p)},l}var o=i(),a=null,s=Gt.util.globalScope,c=s.crypto||s.msCrypto;if(c&&c.getRandomValues&&(a=function(l){return c.getRandomValues(l)}),Gt.options.usePureJavaScript||!Gt.util.isNodejs&&!a){if(typeof window>"u"||window.document,o.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var f in navigator)try{typeof navigator[f]=="string"&&(u+=navigator[f])}catch{}o.collect(u),u=null}e&&(e().mousemove(function(l){o.collectInt(l.clientX,16),o.collectInt(l.clientY,16)}),e().keypress(function(l){o.collectInt(l.charCode,8)}))}if(!Gt.random)Gt.random=o;else for(var f in o)Gt.random[f]=o[f];Gt.random.createInstance=i,Yo.exports=Gt.random})(typeof jQuery<"u"?jQuery:null)})()});var K3=nt((Hm,F3)=>{var ue=ut();kt();var Wo=[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],O3=[1,2,3,5],xu=function(e,t){return e<<t&65535|(e&65535)>>16-t},vu=function(e,t){return(e&65535)>>t|e<<16-t&65535};F3.exports=ue.rc2=ue.rc2||{};ue.rc2.expandKey=function(e,t){typeof e=="string"&&(e=ue.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,o=Math.ceil(i/8),a=255>>(i&7),s;for(s=n;s<128;s++)r.putByte(Wo[r.at(s-1)+r.at(s-n)&255]);for(r.setAt(128-o,Wo[r.at(128-o)&a]),s=127-o;s>=0;s--)r.setAt(s,Wo[r.at(s+1)^r.at(s+o)]);return r};var U3=function(e,t,r){var n=!1,i=null,o=null,a=null,s,c,u,f,l=[];for(e=ue.rc2.expandKey(e,t),u=0;u<64;u++)l.push(e.getInt16Le());r?(s=function(h){for(u=0;u<4;u++)h[u]+=l[f]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),h[u]=xu(h[u],O3[u]),f++},c=function(h){for(u=0;u<4;u++)h[u]+=l[h[(u+3)%4]&63]}):(s=function(h){for(u=3;u>=0;u--)h[u]=vu(h[u],O3[u]),h[u]-=l[f]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),f--},c=function(h){for(u=3;u>=0;u--)h[u]-=l[h[(u+3)%4]&63]});var p=function(h){var y=[];for(u=0;u<4;u++){var g=i.getInt16Le();a!==null&&(r?g^=a.getInt16Le():a.putInt16Le(g)),y.push(g&65535)}f=r?0:63;for(var m=0;m<h.length;m++)for(var x=0;x<h[m][0];x++)h[m][1](y);for(u=0;u<4;u++)a!==null&&(r?a.putInt16Le(y[u]):y[u]^=a.getInt16Le()),o.putInt16Le(y[u])},d=null;return d={start:function(h,y){h&&typeof h=="string"&&(h=ue.util.createBuffer(h)),n=!1,i=ue.util.createBuffer(),o=y||new ue.util.createBuffer,a=h,d.output=o},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)p([[5,s],[1,c],[6,s],[1,c],[5,s]])},finish:function(h){var y=!0;if(r)if(h)y=h(8,i,!r);else{var g=i.length()===8?8:8-i.length();i.fillWithByte(g,g)}if(y&&(n=!0,d.update()),!r&&(y=i.length()===0,y))if(h)y=h(8,o,!r);else{var m=o.length(),x=o.at(m-1);x>m?y=!1:o.truncate(x)}return y}},d};ue.rc2.startEncrypting=function(e,t,r){var n=ue.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};ue.rc2.createEncryptionCipher=function(e,t){return U3(e,t,!0)};ue.rc2.startDecrypting=function(e,t,r){var n=ue.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};ue.rc2.createDecryptionCipher=function(e,t){return U3(e,t,!1)}});var E1=nt(($m,Q3)=>{var Zo=ut();Q3.exports=Zo.jsbn=Zo.jsbn||{};var er,bu=0xdeadbeefcafe,M3=(bu&16777215)==15715070;function B(e,t,r){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,r):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}Zo.jsbn.BigInteger=B;function it(){return new B(null)}function wu(e,t,r,n,i,o){for(;--o>=0;){var a=t*this.data[e++]+r.data[n]+i;i=Math.floor(a/67108864),r.data[n++]=a&67108863}return i}function Eu(e,t,r,n,i,o){for(var a=t&32767,s=t>>15;--o>=0;){var c=this.data[e]&32767,u=this.data[e++]>>15,f=s*c+u*a;c=a*c+((f&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(f>>>15)+s*u+(i>>>30),r.data[n++]=c&1073741823}return i}function V3(e,t,r,n,i,o){for(var a=t&16383,s=t>>14;--o>=0;){var c=this.data[e]&16383,u=this.data[e++]>>14,f=s*c+u*a;c=a*c+((f&16383)<<14)+r.data[n]+i,i=(c>>28)+(f>>14)+s*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(B.prototype.am=V3,er=28):M3&&navigator.appName=="Microsoft Internet Explorer"?(B.prototype.am=Eu,er=30):M3&&navigator.appName!="Netscape"?(B.prototype.am=wu,er=26):(B.prototype.am=V3,er=28);B.prototype.DB=er;B.prototype.DM=(1<<er)-1;B.prototype.DV=1<<er;var Xo=52;B.prototype.FV=Math.pow(2,Xo);B.prototype.F1=Xo-er;B.prototype.F2=2*er-Xo;var Su="0123456789abcdefghijklmnopqrstuvwxyz",b1=new Array,Ln,ge;Ln="0".charCodeAt(0);for(ge=0;ge<=9;++ge)b1[Ln++]=ge;Ln="a".charCodeAt(0);for(ge=10;ge<36;++ge)b1[Ln++]=ge;Ln="A".charCodeAt(0);for(ge=10;ge<36;++ge)b1[Ln++]=ge;function q3(e){return Su.charAt(e)}function z3(e,t){var r=b1[e.charCodeAt(t)];return r??-1}function Iu(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function Au(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0}function Sr(e){var t=it();return t.fromInt(e),t}function Cu(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,i=!1,o=0;--n>=0;){var a=r==8?e[n]&255:z3(e,n);if(a<0){e.charAt(n)=="-"&&(i=!0);continue}i=!1,o==0?this.data[this.t++]=a:o+r>this.DB?(this.data[this.t-1]|=(a&(1<<this.DB-o)-1)<<o,this.data[this.t++]=a>>this.DB-o):this.data[this.t-1]|=a<<o,o+=r,o>=this.DB&&(o-=this.DB)}r==8&&e[0]&128&&(this.s=-1,o>0&&(this.data[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&B.ZERO.subTo(this,this)}function Bu(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function Tu(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<<t)-1,n,i=!1,o="",a=this.t,s=this.DB-a*this.DB%t;if(a-- >0)for(s<this.DB&&(n=this.data[a]>>s)>0&&(i=!0,o=q3(n));a>=0;)s<t?(n=(this.data[a]&(1<<s)-1)<<t-s,n|=this.data[--a]>>(s+=this.DB-t)):(n=this.data[a]>>(s-=t)&r,s<=0&&(s+=this.DB,--a)),n>0&&(i=!0),i&&(o+=q3(n));return i?o:"0"}function _u(){var e=it();return B.ZERO.subTo(this,e),e}function Ru(){return this.s<0?this.negate():this}function Pu(e){var t=this.s-e.s;if(t!=0)return t;var r=this.t;if(t=r-e.t,t!=0)return this.s<0?-t:t;for(;--r>=0;)if((t=this.data[r]-e.data[r])!=0)return t;return 0}function w1(e){var t=1,r;return(r=e>>>16)!=0&&(e=r,t+=16),(r=e>>8)!=0&&(e=r,t+=8),(r=e>>4)!=0&&(e=r,t+=4),(r=e>>2)!=0&&(e=r,t+=2),(r=e>>1)!=0&&(e=r,t+=1),t}function Lu(){return this.t<=0?0:this.DB*(this.t-1)+w1(this.data[this.t-1]^this.s&this.DM)}function Nu(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s}function ku(e,t){for(var r=e;r<this.t;++r)t.data[r-e]=this.data[r];t.t=Math.max(this.t-e,0),t.s=this.s}function Du(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,o=Math.floor(e/this.DB),a=this.s<<r&this.DM,s;for(s=this.t-1;s>=0;--s)t.data[s+o+1]=this.data[s]>>n|a,a=(this.data[s]&i)<<r;for(s=o-1;s>=0;--s)t.data[s]=0;t.data[o]=a,t.t=this.t+o+1,t.s=this.s,t.clamp()}function Ou(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}var n=e%this.DB,i=this.DB-n,o=(1<<n)-1;t.data[0]=this.data[r]>>n;for(var a=r+1;a<this.t;++a)t.data[a-r-1]|=(this.data[a]&o)<<i,t.data[a-r]=this.data[a]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&o)<<i),t.t=this.t-r,t.clamp()}function Uu(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]-e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n-=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()}function Fu(e,t){var r=this.abs(),n=e.abs(),i=r.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+r.t]=r.am(0,n.data[i],t,i,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&B.ZERO.subTo(t,t)}function Ku(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e.data[r]=0;for(r=0;r<t.t-1;++r){var n=t.am(r,t.data[r],e,2*r,0,1);(e.data[r+t.t]+=t.am(r+1,2*t.data[r],e,2*r+1,n,t.t-r-1))>=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()}function Mu(e,t,r){var n=e.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=it());var o=it(),a=this.s,s=e.s,c=this.DB-w1(n.data[n.t-1]);c>0?(n.lShiftTo(c,o),i.lShiftTo(c,r)):(n.copyTo(o),i.copyTo(r));var u=o.t,f=o.data[u-1];if(f!=0){var l=f*(1<<this.F1)+(u>1?o.data[u-2]>>this.F2:0),p=this.FV/l,d=(1<<this.F1)/l,h=1<<this.F2,y=r.t,g=y-u,m=t??it();for(o.dlShiftTo(g,m),r.compareTo(m)>=0&&(r.data[r.t++]=1,r.subTo(m,r)),B.ONE.dlShiftTo(u,m),m.subTo(o,o);o.t<u;)o.data[o.t++]=0;for(;--g>=0;){var x=r.data[--y]==f?this.DM:Math.floor(r.data[y]*p+(r.data[y-1]+h)*d);if((r.data[y]+=o.am(0,x,r,g,0,u))<x)for(o.dlShiftTo(g,m),r.subTo(m,r);r.data[y]<--x;)r.subTo(m,r)}t!=null&&(r.drShiftTo(u,t),a!=s&&B.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),a<0&&B.ZERO.subTo(r,r)}}}function Vu(e){var t=it();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(B.ZERO)>0&&e.subTo(t,t),t}function Qr(e){this.m=e}function qu(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function zu(e){return e}function Hu(e){e.divRemTo(this.m,null,e)}function $u(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function Gu(e,t){e.squareTo(t),this.reduce(t)}Qr.prototype.convert=qu;Qr.prototype.revert=zu;Qr.prototype.reduce=Hu;Qr.prototype.mulTo=$u;Qr.prototype.sqrTo=Gu;function Qu(){if(this.t<1)return 0;var e=this.data[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function Yr(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function Yu(e){var t=it();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(B.ZERO)>0&&this.m.subTo(t,t),t}function Wu(e){var t=it();return e.copyTo(t),this.reduce(t),t}function Zu(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=e.data[t]&32767,n=r*this.mpl+((r*this.mph+(e.data[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function Xu(e,t){e.squareTo(t),this.reduce(t)}function Ju(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Yr.prototype.convert=Yu;Yr.prototype.revert=Wu;Yr.prototype.reduce=Zu;Yr.prototype.mulTo=Ju;Yr.prototype.sqrTo=Xu;function ju(){return(this.t>0?this.data[0]&1:this.s)==0}function tf(e,t){if(e>4294967295||e<1)return B.ONE;var r=it(),n=it(),i=t.convert(this),o=w1(e)-1;for(i.copyTo(r);--o>=0;)if(t.sqrTo(r,n),(e&1<<o)>0)t.mulTo(n,i,r);else{var a=r;r=n,n=a}return t.revert(r)}function ef(e,t){var r;return e<256||t.isEven()?r=new Qr(t):r=new Yr(t),this.exp(e,r)}B.prototype.copyTo=Iu;B.prototype.fromInt=Au;B.prototype.fromString=Cu;B.prototype.clamp=Bu;B.prototype.dlShiftTo=Nu;B.prototype.drShiftTo=ku;B.prototype.lShiftTo=Du;B.prototype.rShiftTo=Ou;B.prototype.subTo=Uu;B.prototype.multiplyTo=Fu;B.prototype.squareTo=Ku;B.prototype.divRemTo=Mu;B.prototype.invDigit=Qu;B.prototype.isEven=ju;B.prototype.exp=tf;B.prototype.toString=Tu;B.prototype.negate=_u;B.prototype.abs=Ru;B.prototype.compareTo=Pu;B.prototype.bitLength=Lu;B.prototype.mod=Vu;B.prototype.modPowInt=ef;B.ZERO=Sr(0);B.ONE=Sr(1);function rf(){var e=it();return this.copyTo(e),e}function nf(){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 of(){return this.t==0?this.s:this.data[0]<<24>>24}function sf(){return this.t==0?this.s:this.data[0]<<16>>16}function af(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function cf(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function uf(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=Sr(r),i=it(),o=it(),a="";for(this.divRemTo(n,i,o);i.signum()>0;)a=(r+o.intValue()).toString(e).substr(1)+a,i.divRemTo(n,i,o);return o.intValue().toString(e)+a}function ff(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,o=0,a=0,s=0;s<e.length;++s){var c=z3(e,s);if(c<0){e.charAt(s)=="-"&&this.signum()==0&&(i=!0);continue}a=t*a+c,++o>=r&&(this.dMultiply(n),this.dAddOffset(a,0),o=0,a=0)}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(a,0)),i&&B.ZERO.subTo(this,this)}function lf(e,t,r){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(B.ONE.shiftLeft(e-1),Jo,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(B.ONE.shiftLeft(e-1),this);else{var n=new Array,i=e&7;n.length=(e>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function hf(){var e=this.t,t=new Array;t[0]=this.s;var r=this.DB-e*this.DB%8,n,i=0;if(e-- >0)for(r<this.DB&&(n=this.data[e]>>r)!=(this.s&this.DM)>>r&&(t[i++]=n|this.s<<this.DB-r);e>=0;)r<8?(n=(this.data[e]&(1<<r)-1)<<8-r,n|=this.data[--e]>>(r+=this.DB-8)):(n=this.data[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function df(e){return this.compareTo(e)==0}function pf(e){return this.compareTo(e)<0?this:e}function yf(e){return this.compareTo(e)>0?this:e}function gf(e,t,r){var n,i,o=Math.min(e.t,this.t);for(n=0;n<o;++n)r.data[n]=t(this.data[n],e.data[n]);if(e.t<this.t){for(i=e.s&this.DM,n=o;n<this.t;++n)r.data[n]=t(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=o;n<e.t;++n)r.data[n]=t(i,e.data[n]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()}function mf(e,t){return e&t}function xf(e){var t=it();return this.bitwiseTo(e,mf,t),t}function Jo(e,t){return e|t}function vf(e){var t=it();return this.bitwiseTo(e,Jo,t),t}function H3(e,t){return e^t}function bf(e){var t=it();return this.bitwiseTo(e,H3,t),t}function $3(e,t){return e&~t}function wf(e){var t=it();return this.bitwiseTo(e,$3,t),t}function Ef(){for(var e=it(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function Sf(e){var t=it();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function If(e){var t=it();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function Af(e){if(e==0)return-1;var t=0;return e&65535||(e>>=16,t+=16),e&255||(e>>=8,t+=8),e&15||(e>>=4,t+=4),e&3||(e>>=2,t+=2),e&1||++t,t}function Cf(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+Af(this.data[e]);return this.s<0?this.t*this.DB:-1}function Bf(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function Tf(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=Bf(this.data[r]^t);return e}function _f(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function Rf(e,t){var r=B.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function Pf(e){return this.changeBit(e,Jo)}function Lf(e){return this.changeBit(e,$3)}function Nf(e){return this.changeBit(e,H3)}function kf(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]+e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n+=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n+=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()}function Df(e){var t=it();return this.addTo(e,t),t}function Of(e){var t=it();return this.subTo(e,t),t}function Uf(e){var t=it();return this.multiplyTo(e,t),t}function Ff(e){var t=it();return this.divRemTo(e,t,null),t}function Kf(e){var t=it();return this.divRemTo(e,null,t),t}function Mf(e){var t=it(),r=it();return this.divRemTo(e,t,r),new Array(t,r)}function Vf(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function qf(e,t){if(e!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function y0(){}function G3(e){return e}function zf(e,t,r){e.multiplyTo(t,r)}function Hf(e,t){e.squareTo(t)}y0.prototype.convert=G3;y0.prototype.revert=G3;y0.prototype.mulTo=zf;y0.prototype.sqrTo=Hf;function $f(e){return this.exp(e,new y0)}function Gf(e,t,r){var n=Math.min(this.t+e.t,t);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,e.data[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e.data[n],r,n,0,t-n);r.clamp()}function Qf(e,t,r){--t;var n=r.t=this.t+e.t-t;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n<e.t;++n)r.data[this.t+n-t]=this.am(t-n,e.data[n],r,0,0,this.t+n-t);r.clamp(),r.drShiftTo(1,r)}function Nn(e){this.r2=it(),this.q3=it(),B.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function Yf(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=it();return e.copyTo(t),this.reduce(t),t}function Wf(e){return e}function Zf(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function Xf(e,t){e.squareTo(t),this.reduce(t)}function Jf(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Nn.prototype.convert=Yf;Nn.prototype.revert=Wf;Nn.prototype.reduce=Zf;Nn.prototype.mulTo=Jf;Nn.prototype.sqrTo=Xf;function jf(e,t){var r=e.bitLength(),n,i=Sr(1),o;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?o=new Qr(t):t.isEven()?o=new Nn(t):o=new Yr(t);var a=new Array,s=3,c=n-1,u=(1<<n)-1;if(a[1]=o.convert(this),n>1){var f=it();for(o.sqrTo(a[1],f);s<=u;)a[s]=it(),o.mulTo(f,a[s-2],a[s]),s+=2}var l=e.t-1,p,d=!0,h=it(),y;for(r=w1(e.data[l])-1;l>=0;){for(r>=c?p=e.data[l]>>r-c&u:(p=(e.data[l]&(1<<r+1)-1)<<c-r,l>0&&(p|=e.data[l-1]>>this.DB+r-c)),s=n;!(p&1);)p>>=1,--s;if((r-=s)<0&&(r+=this.DB,--l),d)a[p].copyTo(i),d=!1;else{for(;s>1;)o.sqrTo(i,h),o.sqrTo(h,i),s-=2;s>0?o.sqrTo(i,h):(y=i,i=h,h=y),o.mulTo(h,a[p],i)}for(;l>=0&&!(e.data[l]&1<<r);)o.sqrTo(i,h),y=i,i=h,h=y,--r<0&&(r=this.DB-1,--l)}return o.revert(i)}function t7(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var i=t.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return t;for(i<o&&(o=i),o>0&&(t.rShiftTo(o,t),r.rShiftTo(o,r));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r}function e7(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(t==0)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r}function r7(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return B.ZERO;for(var r=e.clone(),n=this.clone(),i=Sr(1),o=Sr(0),a=Sr(0),s=Sr(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),t?((!i.isEven()||!o.isEven())&&(i.addTo(this,i),o.subTo(e,o)),i.rShiftTo(1,i)):o.isEven()||o.subTo(e,o),o.rShiftTo(1,o);for(;n.isEven();)n.rShiftTo(1,n),t?((!a.isEven()||!s.isEven())&&(a.addTo(this,a),s.subTo(e,s)),a.rShiftTo(1,a)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(a,i),o.subTo(s,o)):(n.subTo(r,n),t&&a.subTo(i,a),s.subTo(o,s))}if(n.compareTo(B.ONE)!=0)return B.ZERO;if(s.compareTo(e)>=0)return s.subtract(e);if(s.signum()<0)s.addTo(e,s);else return s;return s.signum()<0?s.add(e):s}var Be=[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],n7=(1<<26)/Be[Be.length-1];function i7(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=Be[Be.length-1]){for(t=0;t<Be.length;++t)if(r.data[0]==Be[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<Be.length;){for(var n=Be[t],i=t+1;i<Be.length&&n<n7;)n*=Be[i++];for(n=r.modInt(n);t<i;)if(n%Be[t++]==0)return!1}return r.millerRabin(e)}function o7(e){var t=this.subtract(B.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=s7(),o,a=0;a<e;++a){do o=new B(this.bitLength(),i);while(o.compareTo(B.ONE)<=0||o.compareTo(t)>=0);var s=o.modPow(n,this);if(s.compareTo(B.ONE)!=0&&s.compareTo(t)!=0){for(var c=1;c++<r&&s.compareTo(t)!=0;)if(s=s.modPowInt(2,this),s.compareTo(B.ONE)==0)return!1;if(s.compareTo(t)!=0)return!1}}return!0}function s7(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}B.prototype.chunkSize=af;B.prototype.toRadix=uf;B.prototype.fromRadix=ff;B.prototype.fromNumber=lf;B.prototype.bitwiseTo=gf;B.prototype.changeBit=Rf;B.prototype.addTo=kf;B.prototype.dMultiply=Vf;B.prototype.dAddOffset=qf;B.prototype.multiplyLowerTo=Gf;B.prototype.multiplyUpperTo=Qf;B.prototype.modInt=e7;B.prototype.millerRabin=o7;B.prototype.clone=rf;B.prototype.intValue=nf;B.prototype.byteValue=of;B.prototype.shortValue=sf;B.prototype.signum=cf;B.prototype.toByteArray=hf;B.prototype.equals=df;B.prototype.min=pf;B.prototype.max=yf;B.prototype.and=xf;B.prototype.or=vf;B.prototype.xor=bf;B.prototype.andNot=wf;B.prototype.not=Ef;B.prototype.shiftLeft=Sf;B.prototype.shiftRight=If;B.prototype.getLowestSetBit=Cf;B.prototype.bitCount=Tf;B.prototype.testBit=_f;B.prototype.setBit=Pf;B.prototype.clearBit=Lf;B.prototype.flipBit=Nf;B.prototype.add=Df;B.prototype.subtract=Of;B.prototype.multiply=Uf;B.prototype.divide=Ff;B.prototype.remainder=Kf;B.prototype.divideAndRemainder=Mf;B.prototype.modPow=jf;B.prototype.modInverse=r7;B.prototype.pow=$f;B.prototype.gcd=t7;B.prototype.isProbablePrime=i7});var J3=nt((Gm,X3)=>{var qe=ut();Gr();kt();var W3=X3.exports=qe.sha1=qe.sha1||{};qe.md.sha1=qe.md.algorithms.sha1=W3;W3.create=function(){Z3||a7();var e=null,t=qe.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=qe.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=qe.util.encodeUtf8(i));var a=i.length;n.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var s=n.fullMessageLength.length-1;s>=0;--s)n.fullMessageLength[s]+=a[1],a[1]=a[0]+(n.fullMessageLength[s]/4294967296>>>0),n.fullMessageLength[s]=n.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(i),Y3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=qe.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,a=o&n.blockLength-1;i.putBytes(jo.substr(0,n.blockLength-a));for(var s,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)s=n.fullMessageLength[f+1]*8,c=s/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=s>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};Y3(l,r,i);var p=qe.util.createBuffer();return p.putInt32(l.h0),p.putInt32(l.h1),p.putInt32(l.h2),p.putInt32(l.h3),p.putInt32(l.h4),p},n};var jo=null,Z3=!1;function a7(){jo=String.fromCharCode(128),jo+=qe.util.fillString(String.fromCharCode(0),64),Z3=!0}function Y3(e,t,r){for(var n,i,o,a,s,c,u,f,l=r.length();l>=64;){for(i=e.h0,o=e.h1,a=e.h2,s=e.h3,c=e.h4,f=0;f<16;++f)n=r.getInt32(),t[f]=n,u=s^o&(a^s),n=(i<<5|i>>>27)+u+c+1518500249+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<20;++f)n=t[f-3]^t[f-8]^t[f-14]^t[f-16],n=n<<1|n>>>31,t[f]=n,u=s^o&(a^s),n=(i<<5|i>>>27)+u+c+1518500249+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<32;++f)n=t[f-3]^t[f-8]^t[f-14]^t[f-16],n=n<<1|n>>>31,t[f]=n,u=o^a^s,n=(i<<5|i>>>27)+u+c+1859775393+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<40;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o^a^s,n=(i<<5|i>>>27)+u+c+1859775393+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<60;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o&a|s&(o^a),n=(i<<5|i>>>27)+u+c+2400959708+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<80;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o^a^s,n=(i<<5|i>>>27)+u+c+3395469782+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;e.h0=e.h0+i|0,e.h1=e.h1+o|0,e.h2=e.h2+a|0,e.h3=e.h3+s|0,e.h4=e.h4+c|0,l-=64}}});var e4=nt((Qm,t4)=>{var ze=ut();kt();p0();J3();var j3=t4.exports=ze.pkcs1=ze.pkcs1||{};j3.encode_rsa_oaep=function(e,t,r){var n,i,o,a;typeof r=="string"?(n=r,i=arguments[3]||void 0,o=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,o=r.md||void 0,r.mgf1&&r.mgf1.md&&(a=r.mgf1.md)),o?o.start():o=ze.md.sha1.create(),a||(a=o);var s=Math.ceil(e.n.bitLength()/8),c=s-2*o.digestLength-2;if(t.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=t.length,u.maxLength=c,u}n||(n=""),o.update(n,"raw");for(var f=o.digest(),l="",p=c-t.length,d=0;d<p;d++)l+="\0";var h=f.getBytes()+l+""+t;if(!i)i=ze.random.getBytes(o.digestLength);else if(i.length!==o.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=o.digestLength,u}var y=S1(i,s-o.digestLength-1,a),g=ze.util.xorBytes(h,y,h.length),m=S1(g,o.digestLength,a),x=ze.util.xorBytes(i,m,i.length);return"\0"+x+g};j3.decode_rsa_oaep=function(e,t,r){var n,i,o;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md));var a=Math.ceil(e.n.bitLength()/8);if(t.length!==a){var g=new Error("RSAES-OAEP encoded message length is invalid.");throw g.length=t.length,g.expectedLength=a,g}if(i===void 0?i=ze.md.sha1.create():i.start(),o||(o=i),a<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 s=i.digest().getBytes(),c=t.charAt(0),u=t.substring(1,i.digestLength+1),f=t.substring(1+i.digestLength),l=S1(f,i.digestLength,o),p=ze.util.xorBytes(u,l,u.length),d=S1(p,a-i.digestLength-1,o),h=ze.util.xorBytes(f,d,f.length),y=h.substring(0,i.digestLength),g=c!=="\0",m=0;m<i.digestLength;++m)g|=s.charAt(m)!==y.charAt(m);for(var x=1,v=i.digestLength,C=i.digestLength;C<h.length;C++){var E=h.charCodeAt(C),S=E&1^1,L=x?65534:0;g|=E&L,x=x&S,v+=x}if(g||h.charCodeAt(v)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(v+1)};function S1(e,t,r){r||(r=ze.md.sha1.create());for(var n="",i=Math.ceil(t/r.digestLength),o=0;o<i;++o){var a=String.fromCharCode(o>>24&255,o>>16&255,o>>8&255,o&255);r.start(),r.update(e+a),n+=r.digest().getBytes()}return n.substring(0,t)}});var r4=nt((Ym,ts)=>{var Ir=ut();kt();E1();p0();(function(){if(Ir.prime){ts.exports=Ir.prime;return}var e=ts.exports=Ir.prime=Ir.prime||{},t=Ir.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(l,p){return l|p};e.generateProbablePrime=function(l,p,d){typeof p=="function"&&(d=p,p={}),p=p||{};var h=p.algorithm||"PRIMEINC";typeof h=="string"&&(h={name:h}),h.options=h.options||{};var y=p.prng||Ir.random,g={nextBytes:function(m){for(var x=y.getBytesSync(m.length),v=0;v<m.length;++v)m[v]=x.charCodeAt(v)}};if(h.name==="PRIMEINC")return o(l,g,h.options,d);throw new Error("Invalid prime generation algorithm: "+h.name)};function o(l,p,d,h){return"workers"in d?c(l,p,d,h):a(l,p,d,h)}function a(l,p,d,h){var y=u(l,p),g=0,m=f(y.bitLength());"millerRabinTests"in d&&(m=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),s(y,l,p,g,m,x,h)}function s(l,p,d,h,y,g,m){var x=+new Date;do{if(l.bitLength()>p&&(l=u(p,d)),l.isProbablePrime(y))return m(null,l);l.dAddOffset(r[h++%8],0)}while(g<0||+new Date-x<g);Ir.util.setImmediate(function(){s(l,p,d,h,y,g,m)})}function c(l,p,d,h){if(typeof Worker>"u")return a(l,p,d,h);var y=u(l,p),g=d.workers,m=d.workLoad||100,x=m*30/8,v=d.workerScript||"forge/prime.worker.js";if(g===-1)return Ir.util.estimateCores(function(E,S){E&&(S=2),g=S-1,C()});C();function C(){g=Math.max(1,g);for(var E=[],S=0;S<g;++S)E[S]=new Worker(v);for(var L=g,S=0;S<g;++S)E[S].addEventListener("message",$);var N=!1;function $(G){if(!N){--L;var q=G.data;if(q.found){for(var j=0;j<E.length;++j)E[j].terminate();return N=!0,h(null,new t(q.prime,16))}y.bitLength()>l&&(y=u(l,p));var ft=y.toString(16);G.target.postMessage({hex:ft,workLoad:m}),y.dAddOffset(x,0)}}}}function u(l,p){var d=new t(l,p),h=l-1;return d.testBit(h)||d.bitwiseTo(t.ONE.shiftLeft(h),i,d),d.dAddOffset(31-d.mod(n).byteValue(),0),d}function f(l){return l<=100?27:l<=150?18:l<=200?15:l<=250?12:l<=300?9:l<=350?8:l<=400?7:l<=500?6:l<=600?5:l<=800?4:l<=1250?3:2}})()});var A1=nt((Wm,u4)=>{var V=ut();d0();E1();h1();e4();r4();p0();kt();typeof rt>"u"&&(rt=V.jsbn.BigInteger);var rt,es=V.util.isNodejs?g1():null,w=V.asn1,me=V.util;V.pki=V.pki||{};u4.exports=V.pki.rsa=V.rsa=V.rsa||{};var Q=V.pki,c7=[6,4,2,4,2,4,6,2],u7={name:"PrivateKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},f7={name:"RSAPrivateKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},l7={name:"RSAPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},h7=V.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},d7={name:"DigestInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:w.Class.UNIVERSAL,type:w.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:w.Class.UNIVERSAL,type:w.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},p7=function(e){var t;if(e.algorithm in Q.oids)t=Q.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=w.oidToDer(t).getBytes(),i=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]),o=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]);o.value.push(w.create(w.Class.UNIVERSAL,w.Type.OID,!1,n)),o.value.push(w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,""));var a=w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(o),i.value.push(a),w.toDer(i).getBytes()},a4=function(e,t,r){if(r)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(rt.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(rt.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new rt(V.util.bytesToHex(V.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(rt.ONE));e=e.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=e.mod(t.p).modPow(t.dP,t.p),o=e.mod(t.q).modPow(t.dQ,t.q);i.compareTo(o)<0;)i=i.add(t.p);var a=i.subtract(o).multiply(t.qInv).mod(t.p).multiply(t.q).add(o);return a=a.multiply(n.modInverse(t.n)).mod(t.n),a};Q.rsa.encrypt=function(e,t,r){var n=r,i,o=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=c4(e,t,r)):(i=V.util.createBuffer(),i.putBytes(e));for(var a=new rt(i.toHex(),16),s=a4(a,t,n),c=s.toString(16),u=V.util.createBuffer(),f=o-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),u.getBytes()};Q.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var o=new Error("Encrypted message length is invalid.");throw o.length=e.length,o.expected=i,o}var a=new rt(V.util.createBuffer(e).toHex(),16);if(a.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var s=a4(a,t,r),c=s.toString(16),u=V.util.createBuffer(),f=i-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),n!==!1?I1(u.getBytes(),t,r):u.getBytes()};Q.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||V.random,i={nextBytes:function(s){for(var c=n.getBytesSync(s.length),u=0;u<s.length;++u)s[u]=c.charCodeAt(u)}},o=r.algorithm||"PRIMEINC",a;if(o==="PRIMEINC")a={algorithm:o,state:0,bits:e,rng:i,eInt:t||65537,e:new rt(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},a.e.fromInt(a.eInt);else throw new Error("Invalid key generation algorithm: "+o);return a};Q.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new rt(null);r.fromInt(30);for(var n=0,i=function(l,p){return l|p},o=+new Date,a,s=0;e.keys===null&&(t<=0||s<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new rt(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(rt.ONE.shiftLeft(u),i,e.num),e.num.dAddOffset(31-e.num.mod(r).byteValue(),0),n=0,++e.pqState):e.pqState===1?e.num.bitLength()>c?e.pqState=0:e.num.isProbablePrime(g7(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(c7[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(rt.ONE).gcd(e.e).compareTo(rt.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(rt.ONE),e.q1=e.q.subtract(rt.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(rt.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var f=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)}}a=+new Date,s+=a-o,o=a}return e.keys!==null};Q.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!V.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(n4("generateKeyPair"))return es.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(s,c,u){if(s)return n(s);n(null,{privateKey:Q.privateKeyFromPem(u),publicKey:Q.publicKeyFromPem(c)})});if(i4("generateKey")&&i4("exportKey"))return me.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:s4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(s){return me.globalScope.crypto.subtle.exportKey("pkcs8",s.privateKey)}).then(void 0,function(s){n(s)}).then(function(s){if(s){var c=Q.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(s)));n(null,{privateKey:c,publicKey:Q.setRsaPublicKey(c.n,c.e)})}});if(o4("generateKey")&&o4("exportKey")){var i=me.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:s4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(s){var c=s.target.result,u=me.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(f){var l=f.target.result,p=Q.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(l)));n(null,{privateKey:p,publicKey:Q.setRsaPublicKey(p.n,p.e)})},u.onerror=function(f){n(f)}},i.onerror=function(s){n(s)};return}}else if(n4("generateKeyPairSync")){var o=es.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Q.privateKeyFromPem(o.privateKey),publicKey:Q.publicKeyFromPem(o.publicKey)}}}var a=Q.rsa.createKeyPairGenerationState(e,t,r);if(!n)return Q.rsa.stepKeyPairGenerationState(a,0),a.keys;y7(a,r,n)};Q.setRsaPublicKey=Q.rsa.setPublicKey=function(e,t){var r={n:e,e:t};return r.encrypt=function(n,i,o){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(s,c,u){return c4(s,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(s,c){return V.pkcs1.encode_rsa_oaep(c,s,o)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(s){return s}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var a=i.encode(n,r,!0);return Q.rsa.encrypt(a,r,!0)},r.verify=function(n,i,o,a){typeof o=="string"?o=o.toUpperCase():o===void 0&&(o="RSASSA-PKCS1-V1_5"),a===void 0&&(a={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in a||(a._parseAllDigestBytes=!0),o==="RSASSA-PKCS1-V1_5"?o={verify:function(c,u){u=I1(u,r,!0);var f=w.fromDer(u,{parseAllBytes:a._parseAllDigestBytes}),l={},p=[];if(!w.validate(f,d7,l,p)){var d=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw d.errors=p,d}var h=w.derToOid(l.algorithmIdentifier);if(!(h===V.oids.md2||h===V.oids.md5||h===V.oids.sha1||h===V.oids.sha224||h===V.oids.sha256||h===V.oids.sha384||h===V.oids.sha512||h===V.oids["sha512-224"]||h===V.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=h,d}if((h===V.oids.md2||h===V.oids.md5)&&!("parameters"in l))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===l.digest}}:(o==="NONE"||o==="NULL"||o===null)&&(o={verify:function(c,u){return u=I1(u,r,!0),c===u}});var s=Q.rsa.decrypt(i,r,!0,!1);return o.verify(n,s,r.n.bitLength())},r};Q.setRsaPrivateKey=Q.rsa.setPrivateKey=function(e,t,r,n,i,o,a,s){var c={n:e,e:t,d:r,p:n,q:i,dP:o,dQ:a,qInv:s};return c.decrypt=function(u,f,l){typeof f=="string"?f=f.toUpperCase():f===void 0&&(f="RSAES-PKCS1-V1_5");var p=Q.rsa.decrypt(u,c,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:I1};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(d,h){return V.pkcs1.decode_rsa_oaep(h,d,l)}};else if(["RAW","NONE","NULL",null].indexOf(f)!==-1)f={decode:function(d){return d}};else throw new Error('Unsupported encryption scheme: "'+f+'".');return f.decode(p,c,!1)},c.sign=function(u,f){var l=!1;typeof f=="string"&&(f=f.toUpperCase()),f===void 0||f==="RSASSA-PKCS1-V1_5"?(f={encode:p7},l=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return u}},l=1);var p=f.encode(u,c.n.bitLength());return Q.rsa.encrypt(p,c,l)},c};Q.wrapRsaPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer(Q.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,w.toDer(e).getBytes())])};Q.privateKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,u7,t,r)&&(e=w.fromDer(V.util.createBuffer(t.privateKey))),t={},r=[],!w.validate(e,f7,t,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,o,a,s,c,u,f,l;return i=V.util.createBuffer(t.privateKeyModulus).toHex(),o=V.util.createBuffer(t.privateKeyPublicExponent).toHex(),a=V.util.createBuffer(t.privateKeyPrivateExponent).toHex(),s=V.util.createBuffer(t.privateKeyPrime1).toHex(),c=V.util.createBuffer(t.privateKeyPrime2).toHex(),u=V.util.createBuffer(t.privateKeyExponent1).toHex(),f=V.util.createBuffer(t.privateKeyExponent2).toHex(),l=V.util.createBuffer(t.privateKeyCoefficient).toHex(),Q.setRsaPrivateKey(new rt(i,16),new rt(o,16),new rt(a,16),new rt(s,16),new rt(c,16),new rt(u,16),new rt(f,16),new rt(l,16))};Q.privateKeyToAsn1=Q.privateKeyToRSAPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.e)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.d)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.p)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.q)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.dP)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.dQ)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.qInv))])};Q.publicKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,h7,t,r)){var n=w.derToOid(t.publicKeyOid);if(n!==Q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!w.validate(e,l7,t,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var o=V.util.createBuffer(t.publicKeyModulus).toHex(),a=V.util.createBuffer(t.publicKeyExponent).toHex();return Q.setRsaPublicKey(new rt(o,16),new rt(a,16))};Q.publicKeyToAsn1=Q.publicKeyToSubjectPublicKeyInfo=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer(Q.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.BITSTRING,!1,[Q.publicKeyToRSAPublicKey(e)])])};Q.publicKeyToRSAPublicKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.e))])};function c4(e,t,r){var n=V.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var o=new Error("Message is too long for PKCS#1 v1.5 padding.");throw o.length=e.length,o.max=i-11,o}n.putByte(0),n.putByte(r);var a=i-3-e.length,s;if(r===0||r===1){s=r===0?0:255;for(var c=0;c<a;++c)n.putByte(s)}else for(;a>0;){for(var u=0,f=V.random.getBytes(a),c=0;c<a;++c)s=f.charCodeAt(c),s===0?++u:n.putByte(s);a=u}return n.putByte(0),n.putBytes(e),n}function I1(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),o=V.util.createBuffer(e),a=o.getByte(),s=o.getByte();if(a!==0||r&&s!==0&&s!==1||!r&&s!=2||r&&s===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(s===0){c=i-3-n;for(var u=0;u<c;++u)if(o.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(s===1)for(c=0;o.length()>1;){if(o.getByte()!==255){--o.read;break}++c}else if(s===2)for(c=0;o.length()>1;){if(o.getByte()===0){--o.read;break}++c}var f=o.getByte();if(f!==0||c!==i-3-o.length())throw new Error("Encryption block is invalid.");return o.getBytes()}function y7(e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){o(e.pBits,function(s,c){if(s)return r(s);if(e.p=c,e.q!==null)return a(s,e.q);o(e.qBits,a)})}function o(s,c){V.prime.generateProbablePrime(s,n,c)}function a(s,c){if(s)return r(s);if(e.q=c,e.p.compareTo(e.q)<0){var u=e.p;e.p=e.q,e.q=u}if(e.p.subtract(rt.ONE).gcd(e.e).compareTo(rt.ONE)!==0){e.p=null,i();return}if(e.q.subtract(rt.ONE).gcd(e.e).compareTo(rt.ONE)!==0){e.q=null,o(e.qBits,a);return}if(e.p1=e.p.subtract(rt.ONE),e.q1=e.q.subtract(rt.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(rt.ONE)!==0){e.p=e.q=null,i();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,o(e.qBits,a);return}var f=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function He(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=V.util.hexToBytes(t);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function g7(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function n4(e){return V.util.isNodejs&&typeof es[e]=="function"}function i4(e){return typeof me.globalScope<"u"&&typeof me.globalScope.crypto=="object"&&typeof me.globalScope.crypto.subtle=="object"&&typeof me.globalScope.crypto.subtle[e]=="function"}function o4(e){return typeof me.globalScope<"u"&&typeof me.globalScope.msCrypto=="object"&&typeof me.globalScope.msCrypto.subtle=="object"&&typeof me.globalScope.msCrypto.subtle[e]=="function"}function s4(e){for(var t=V.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var y4=nt((Zm,p4)=>{var U=ut();l1();d0();b3();Gr();h1();Go();B3();p0();K3();A1();kt();typeof f4>"u"&&(f4=U.jsbn.BigInteger);var f4,I=U.asn1,Y=U.pki=U.pki||{};p4.exports=Y.pbe=U.pbe=U.pbe||{};var Wr=Y.oids,m7={name:"EncryptedPrivateKeyInfo",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},x7={name:"PBES2Algorithms",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},v7={name:"pkcs-12PbeParams",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"iterations"}]};Y.encryptPrivateKeyInfo=function(e,t,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=U.random.getBytesSync(r.saltSize),i=r.count,o=I.integerToDer(i),a,s,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,f,l;switch(r.algorithm){case"aes128":a=16,u=16,f=Wr["aes128-CBC"],l=U.aes.createEncryptionCipher;break;case"aes192":a=24,u=16,f=Wr["aes192-CBC"],l=U.aes.createEncryptionCipher;break;case"aes256":a=32,u=16,f=Wr["aes256-CBC"],l=U.aes.createEncryptionCipher;break;case"des":a=8,u=8,f=Wr.desCBC,l=U.des.createEncryptionCipher;break;default:var p=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw p.algorithm=r.algorithm,p}var d="hmacWith"+r.prfAlgorithm.toUpperCase(),h=d4(d),y=U.pkcs5.pbkdf2(t,n,i,a,h),g=U.random.getBytesSync(u),m=l(y);m.start(g),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes();var x=b7(n,o,a,d);s=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Wr.pkcs5PBES2).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Wr.pkcs5PBKDF2).getBytes()),x]),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(f).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,g)])])])}else if(r.algorithm==="3des"){a=24;var v=new U.util.ByteBuffer(n),y=Y.pbe.generatePkcs12Key(t,v,1,i,a),g=Y.pbe.generatePkcs12Key(t,v,2,i,a),m=U.des.createEncryptionCipher(y);m.start(g),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes(),s=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Wr["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,n),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,o.getBytes())])])}else{var p=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw p.algorithm=r.algorithm,p}var C=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[s,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return C};Y.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!I.validate(e,m7,n,i)){var o=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var a=I.derToOid(n.encryptionOid),s=Y.pbe.getCipher(a,n.encryptionParams,t),c=U.util.createBuffer(n.encryptedData);return s.update(c),s.finish()&&(r=I.fromDer(s.output)),r};Y.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(e).getBytes()};return U.pem.encode(r,{maxline:t})};Y.encryptedPrivateKeyFromPem=function(e){var t=U.pem.decode(e)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=t.type,r}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return I.fromDer(t.body)};Y.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Y.wrapRsaPrivateKey(Y.privateKeyToAsn1(e));return n=Y.encryptPrivateKeyInfo(n,t,r),Y.encryptedPrivateKeyToPem(n)}var i,o,a,s;switch(r.algorithm){case"aes128":i="AES-128-CBC",a=16,o=U.random.getBytesSync(16),s=U.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",a=24,o=U.random.getBytesSync(16),s=U.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",a=32,o=U.random.getBytesSync(16),s=U.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",a=24,o=U.random.getBytesSync(8),s=U.des.createEncryptionCipher;break;case"des":i="DES-CBC",a=8,o=U.random.getBytesSync(8),s=U.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=U.pbe.opensslDeriveBytes(t,o.substr(0,8),a),f=s(u);f.start(o),f.update(I.toDer(Y.privateKeyToAsn1(e))),f.finish();var l={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:U.util.bytesToHex(o).toUpperCase()},body:f.output.getBytes()};return U.pem.encode(l)};Y.decryptRsaPrivateKey=function(e,t){var r=null,n=U.pem.decode(e)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var o,a;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,a=U.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,a=U.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,a=U.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,a=U.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,a=U.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,a=function(l){return U.rc2.createDecryptionCipher(l,40)};break;case"RC2-64-CBC":o=8,a=function(l){return U.rc2.createDecryptionCipher(l,64)};break;case"RC2-128-CBC":o=16,a=function(l){return U.rc2.createDecryptionCipher(l,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 s=U.util.hexToBytes(n.dekInfo.parameters),c=U.pbe.opensslDeriveBytes(t,s.substr(0,8),o),u=a(c);if(u.start(s),u.update(U.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=Y.decryptPrivateKeyInfo(I.fromDer(r),t):r=I.fromDer(r),r!==null&&(r=Y.privateKeyFromAsn1(r)),r};Y.pbe.generatePkcs12Key=function(e,t,r,n,i,o){var a,s;if(typeof o>"u"||o===null){if(!("sha1"in U.md))throw new Error('"sha1" hash algorithm unavailable.');o=U.md.sha1.create()}var c=o.digestLength,u=o.blockLength,f=new U.util.ByteBuffer,l=new U.util.ByteBuffer;if(e!=null){for(s=0;s<e.length;s++)l.putInt16(e.charCodeAt(s));l.putInt16(0)}var p=l.length(),d=t.length(),h=new U.util.ByteBuffer;h.fillWithByte(r,u);var y=u*Math.ceil(d/u),g=new U.util.ByteBuffer;for(s=0;s<y;s++)g.putByte(t.at(s%d));var m=u*Math.ceil(p/u),x=new U.util.ByteBuffer;for(s=0;s<m;s++)x.putByte(l.at(s%p));var v=g;v.putBuffer(x);for(var C=Math.ceil(i/c),E=1;E<=C;E++){var S=new U.util.ByteBuffer;S.putBytes(h.bytes()),S.putBytes(v.bytes());for(var L=0;L<n;L++)o.start(),o.update(S.getBytes()),S=o.digest();var N=new U.util.ByteBuffer;for(s=0;s<u;s++)N.putByte(S.at(s%c));var $=Math.ceil(d/u)+Math.ceil(p/u),G=new U.util.ByteBuffer;for(a=0;a<$;a++){var q=new U.util.ByteBuffer(v.getBytes(u)),j=511;for(s=N.length()-1;s>=0;s--)j=j>>8,j+=N.at(s)+q.at(s),q.setAt(s,j&255);G.putBuffer(q)}v=G,f.putBuffer(S)}return f.truncate(f.length()-i),f};Y.pbe.getCipher=function(e,t,r){switch(e){case Y.oids.pkcs5PBES2:return Y.pbe.getCipherForPBES2(e,t,r);case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:return Y.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Y.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!I.validate(t,x7,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}if(e=I.derToOid(n.kdfOid),e!==Y.oids.pkcs5PBKDF2){var o=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw o.oid=e,o.supportedOids=["pkcs5PBKDF2"],o}if(e=I.derToOid(n.encOid),e!==Y.oids["aes128-CBC"]&&e!==Y.oids["aes192-CBC"]&&e!==Y.oids["aes256-CBC"]&&e!==Y.oids["des-EDE3-CBC"]&&e!==Y.oids.desCBC){var o=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw o.oid=e,o.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],o}var a=n.kdfSalt,s=U.util.createBuffer(n.kdfIterationCount);s=s.getInt(s.length()<<3);var c,u;switch(Y.oids[e]){case"aes128-CBC":c=16,u=U.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=U.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=U.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=U.des.createDecryptionCipher;break;case"desCBC":c=8,u=U.des.createDecryptionCipher;break}var f=h4(n.prfOid),l=U.pkcs5.pbkdf2(r,a,s,c,f),p=n.encIv,d=u(l);return d.start(p),d};Y.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!I.validate(t,v7,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var a=U.util.createBuffer(n.salt),s=U.util.createBuffer(n.iterations);s=s.getInt(s.length()<<3);var c,u,f;switch(e){case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,f=U.des.startDecrypting;break;case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,f=function(y,g){var m=U.rc2.createDecryptionCipher(y,40);return m.start(g,null),m};break;default:var o=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw o.oid=e,o}var l=h4(n.prfOid),p=Y.pbe.generatePkcs12Key(r,a,1,s,c,l);l.start();var d=Y.pbe.generatePkcs12Key(r,a,2,s,u,l);return f(p,d)};Y.pbe.opensslDeriveBytes=function(e,t,r,n){if(typeof n>"u"||n===null){if(!("md5"in U.md))throw new Error('"md5" hash algorithm unavailable.');n=U.md.md5.create()}t===null&&(t="");for(var i=[l4(n,e+t)],o=16,a=1;o<r;++a,o+=16)i.push(l4(n,i[a-1]+e+t));return i.join("").substr(0,r)};function l4(e,t){return e.start().update(t).digest().getBytes()}function h4(e){var t;if(!e)t="hmacWithSHA1";else if(t=Y.oids[I.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return d4(t)}function d4(e){var t=U.md;switch(e){case"hmacWithSHA224":t=U.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function b7(e,t,r,n){var i=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,e),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,U.util.hexToBytes(r.toString(16))),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Y.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var j4=nt((gv,J4)=>{var vt=ut();Gr();kt();var b0=J4.exports=vt.sha512=vt.sha512||{};vt.md.sha512=vt.md.algorithms.sha512=b0;var Z4=vt.sha384=vt.sha512.sha384=vt.sha512.sha384||{};Z4.create=function(){return b0.create("SHA-384")};vt.md.sha384=vt.md.algorithms.sha384=Z4;vt.sha512.sha256=vt.sha512.sha256||{create:function(){return b0.create("SHA-512/256")}};vt.md["sha512/256"]=vt.md.algorithms["sha512/256"]=vt.sha512.sha256;vt.sha512.sha224=vt.sha512.sha224||{create:function(){return b0.create("SHA-512/224")}};vt.md["sha512/224"]=vt.md.algorithms["sha512/224"]=vt.sha512.sha224;b0.create=function(e){if(X4||Pl(),typeof e>"u"&&(e="SHA-512"),!(e in tn))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=tn[e],r=null,n=vt.util.createBuffer(),i=new Array(80),o=0;o<80;++o)i[o]=new Array(2);var a=64;switch(e){case"SHA-384":a=48;break;case"SHA-512/256":a=32;break;case"SHA-512/224":a=28;break}var s={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:a,messageLength:0,fullMessageLength:null,messageLengthSize:16};return s.start=function(){s.messageLength=0,s.fullMessageLength=s.messageLength128=[];for(var c=s.messageLengthSize/4,u=0;u<c;++u)s.fullMessageLength.push(0);n=vt.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return s},s.start(),s.update=function(c,u){u==="utf8"&&(c=vt.util.encodeUtf8(c));var f=c.length;s.messageLength+=f,f=[f/4294967296>>>0,f>>>0];for(var l=s.fullMessageLength.length-1;l>=0;--l)s.fullMessageLength[l]+=f[1],f[1]=f[0]+(s.fullMessageLength[l]/4294967296>>>0),s.fullMessageLength[l]=s.fullMessageLength[l]>>>0,f[0]=f[1]/4294967296>>>0;return n.putBytes(c),W4(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),s},s.digest=function(){var c=vt.util.createBuffer();c.putBytes(n.bytes());var u=s.fullMessageLength[s.fullMessageLength.length-1]+s.messageLengthSize,f=u&s.blockLength-1;c.putBytes(Ss.substr(0,s.blockLength-f));for(var l,p,d=s.fullMessageLength[0]*8,h=0;h<s.fullMessageLength.length-1;++h)l=s.fullMessageLength[h+1]*8,p=l/4294967296>>>0,d+=p,c.putInt32(d>>>0),d=l>>>0;c.putInt32(d);for(var y=new Array(r.length),h=0;h<r.length;++h)y[h]=r[h].slice(0);W4(y,i,c);var g=vt.util.createBuffer(),m;e==="SHA-512"?m=y.length:e==="SHA-384"?m=y.length-2:m=y.length-4;for(var h=0;h<m;++h)g.putInt32(y[h][0]),(h!==m-1||e!=="SHA-512/224")&&g.putInt32(y[h][1]);return g},s};var Ss=null,X4=!1,Is=null,tn=null;function Pl(){Ss=String.fromCharCode(128),Ss+=vt.util.fillString(String.fromCharCode(0),128),Is=[[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]],tn={},tn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],tn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],tn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],tn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],X4=!0}function W4(e,t,r){for(var n,i,o,a,s,c,u,f,l,p,d,h,y,g,m,x,v,C,E,S,L,N,$,G,q,j,ft,Qt,T,D,P,k,A,F,M,H=r.length();H>=128;){for(T=0;T<16;++T)t[T][0]=r.getInt32()>>>0,t[T][1]=r.getInt32()>>>0;for(;T<80;++T)k=t[T-2],D=k[0],P=k[1],n=((D>>>19|P<<13)^(P>>>29|D<<3)^D>>>6)>>>0,i=((D<<13|P>>>19)^(P<<3|D>>>29)^(D<<26|P>>>6))>>>0,F=t[T-15],D=F[0],P=F[1],o=((D>>>1|P<<31)^(D>>>8|P<<24)^D>>>7)>>>0,a=((D<<31|P>>>1)^(D<<24|P>>>8)^(D<<25|P>>>7))>>>0,A=t[T-7],M=t[T-16],P=i+A[1]+a+M[1],t[T][0]=n+A[0]+o+M[0]+(P/4294967296>>>0)>>>0,t[T][1]=P>>>0;for(y=e[0][0],g=e[0][1],m=e[1][0],x=e[1][1],v=e[2][0],C=e[2][1],E=e[3][0],S=e[3][1],L=e[4][0],N=e[4][1],$=e[5][0],G=e[5][1],q=e[6][0],j=e[6][1],ft=e[7][0],Qt=e[7][1],T=0;T<80;++T)u=((L>>>14|N<<18)^(L>>>18|N<<14)^(N>>>9|L<<23))>>>0,f=((L<<18|N>>>14)^(L<<14|N>>>18)^(N<<23|L>>>9))>>>0,l=(q^L&($^q))>>>0,p=(j^N&(G^j))>>>0,s=((y>>>28|g<<4)^(g>>>2|y<<30)^(g>>>7|y<<25))>>>0,c=((y<<4|g>>>28)^(g<<30|y>>>2)^(g<<25|y>>>7))>>>0,d=(y&m|v&(y^m))>>>0,h=(g&x|C&(g^x))>>>0,P=Qt+f+p+Is[T][1]+t[T][1],n=ft+u+l+Is[T][0]+t[T][0]+(P/4294967296>>>0)>>>0,i=P>>>0,P=c+h,o=s+d+(P/4294967296>>>0)>>>0,a=P>>>0,ft=q,Qt=j,q=$,j=G,$=L,G=N,P=S+i,L=E+n+(P/4294967296>>>0)>>>0,N=P>>>0,E=v,S=C,v=m,C=x,m=y,x=g,P=i+a,y=n+o+(P/4294967296>>>0)>>>0,g=P>>>0;P=e[0][1]+g,e[0][0]=e[0][0]+y+(P/4294967296>>>0)>>>0,e[0][1]=P>>>0,P=e[1][1]+x,e[1][0]=e[1][0]+m+(P/4294967296>>>0)>>>0,e[1][1]=P>>>0,P=e[2][1]+C,e[2][0]=e[2][0]+v+(P/4294967296>>>0)>>>0,e[2][1]=P>>>0,P=e[3][1]+S,e[3][0]=e[3][0]+E+(P/4294967296>>>0)>>>0,e[3][1]=P>>>0,P=e[4][1]+N,e[4][0]=e[4][0]+L+(P/4294967296>>>0)>>>0,e[4][1]=P>>>0,P=e[5][1]+G,e[5][0]=e[5][0]+$+(P/4294967296>>>0)>>>0,e[5][1]=P>>>0,P=e[6][1]+j,e[6][0]=e[6][0]+q+(P/4294967296>>>0)>>>0,e[6][1]=P>>>0,P=e[7][1]+Qt,e[7][0]=e[7][0]+ft+(P/4294967296>>>0)>>>0,e[7][1]=P>>>0,H-=128}}});var A5=nt((Yb,I5)=>{I5.exports=function(e){if(!e)throw Error("hashlru must have a max value, of type number, greater than 0");var t=0,r=Object.create(null),n=Object.create(null);function i(o,a){r[o]=a,t++,t>=e&&(t=0,n=r,r=Object.create(null))}return{has:function(o){return r[o]!==void 0||n[o]!==void 0},remove:function(o){r[o]!==void 0&&(r[o]=void 0),n[o]!==void 0&&(n[o]=void 0)},get:function(o){var a=r[o];if(a!==void 0)return a;if((a=n[o])!==void 0)return i(o,a),a},set:function(o,a){r[o]!==void 0?r[o]=a:i(o,a)},clear:function(){r=Object.create(null),n=Object.create(null)}}}});var B5=nt((Wb,Os)=>{"use strict";var l9=Object.prototype.hasOwnProperty,se="~";function C0(){}Object.create&&(C0.prototype=Object.create(null),new C0().__proto__||(se=!1));function h9(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function C5(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new h9(r,n||e,i),a=se?se+t:t;return e._events[a]?e._events[a].fn?e._events[a]=[e._events[a],o]:e._events[a].push(o):(e._events[a]=o,e._eventsCount++),e}function W1(e,t){--e._eventsCount===0?e._events=new C0:delete e._events[t]}function ee(){this._events=new C0,this._eventsCount=0}ee.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)l9.call(r,n)&&t.push(se?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};ee.prototype.listeners=function(t){var r=se?se+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,a=new Array(o);i<o;i++)a[i]=n[i].fn;return a};ee.prototype.listenerCount=function(t){var r=se?se+t:t,n=this._events[r];return n?n.fn?1:n.length:0};ee.prototype.emit=function(t,r,n,i,o,a){var s=se?se+t:t;if(!this._events[s])return!1;var c=this._events[s],u=arguments.length,f,l;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,o),!0;case 6:return c.fn.call(c.context,r,n,i,o,a),!0}for(l=1,f=new Array(u-1);l<u;l++)f[l-1]=arguments[l];c.fn.apply(c.context,f)}else{var p=c.length,d;for(l=0;l<p;l++)switch(c[l].once&&this.removeListener(t,c[l].fn,void 0,!0),u){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,r);break;case 3:c[l].fn.call(c[l].context,r,n);break;case 4:c[l].fn.call(c[l].context,r,n,i);break;default:if(!f)for(d=1,f=new Array(u-1);d<u;d++)f[d-1]=arguments[d];c[l].fn.apply(c[l].context,f)}}return!0};ee.prototype.on=function(t,r,n){return C5(this,t,r,n,!1)};ee.prototype.once=function(t,r,n){return C5(this,t,r,n,!0)};ee.prototype.removeListener=function(t,r,n,i){var o=se?se+t:t;if(!this._events[o])return this;if(!r)return W1(this,o),this;var a=this._events[o];if(a.fn)a.fn===r&&(!i||a.once)&&(!n||a.context===n)&&W1(this,o);else{for(var s=0,c=[],u=a.length;s<u;s++)(a[s].fn!==r||i&&!a[s].once||n&&a[s].context!==n)&&c.push(a[s]);c.length?this._events[o]=c.length===1?c[0]:c:W1(this,o)}return this};ee.prototype.removeAllListeners=function(t){var r;return t?(r=se?se+t:t,this._events[r]&&W1(this,r)):(this._events=new C0,this._eventsCount=0),this};ee.prototype.off=ee.prototype.removeListener;ee.prototype.addListener=ee.prototype.on;ee.prefixed=se;ee.EventEmitter=ee;typeof Os<"u"&&(Os.exports=ee)});var Y9={};Ft(Y9,{EventTypes:()=>js,MessageType:()=>t2,Record:()=>Vt,kadDHT:()=>Q9});var f2=Symbol.for("@libp2p/content-routing");var F0=class e extends Error{code;type;constructor(t="The operation was aborted"){super(t),this.code=e.code,this.type=e.type}static code="ABORT_ERR";static type="aborted"},R=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var Xt=class extends EventTarget{#t=new Map;listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#t.get(t);i==null&&(i=[],this.#t.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#t.get(t);i!=null&&(i=i.filter(({callback:o})=>o!==r),this.#t.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#t.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new Pt(t,r))}},Ii=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},Pt=globalThis.CustomEvent??Ii;var sn=(e,...t)=>{try{[...t]}catch{}};var l2=Symbol.for("@libp2p/peer-discovery");var h2=Symbol.for("@libp2p/peer-routing");var le=St(m2(),1);var _i={};Ft(_i,{base32:()=>ve,base32hex:()=>R6,base32hexpad:()=>L6,base32hexpadupper:()=>N6,base32hexupper:()=>P6,base32pad:()=>T6,base32padupper:()=>_6,base32upper:()=>B6,base32z:()=>k6});function E6(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),a=o.charCodeAt(0);if(r[a]!==255)throw new TypeError(o+" is ambiguous");r[a]=i}var s=e.length,c=e.charAt(0),u=Math.log(s)/Math.log(256),f=Math.log(256)/Math.log(s);function l(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var y=0,g=0,m=0,x=h.length;m!==x&&h[m]===0;)m++,y++;for(var v=(x-m)*f+1>>>0,C=new Uint8Array(v);m!==x;){for(var E=h[m],S=0,L=v-1;(E!==0||S<g)&&L!==-1;L--,S++)E+=256*C[L]>>>0,C[L]=E%s>>>0,E=E/s>>>0;if(E!==0)throw new Error("Non-zero carry");g=S,m++}for(var N=v-g;N!==v&&C[N]===0;)N++;for(var $=c.repeat(y);N<v;++N)$+=e.charAt(C[N]);return $}function p(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var y=0;if(h[y]!==" "){for(var g=0,m=0;h[y]===c;)g++,y++;for(var x=(h.length-y)*u+1>>>0,v=new Uint8Array(x);h[y];){var C=r[h.charCodeAt(y)];if(C===255)return;for(var E=0,S=x-1;(C!==0||E<m)&&S!==-1;S--,E++)C+=s*v[S]>>>0,v[S]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");m=E,y++}if(h[y]!==" "){for(var L=x-m;L!==x&&v[L]===0;)L++;for(var N=new Uint8Array(g+(x-L)),$=g;L!==x;)N[$++]=v[L++];return N}}}function d(h){var y=p(h);if(y)return y;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:p,decode:d}}var S6=E6,I6=S6,x2=I6;var ah=new Uint8Array(0);var v2=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},Ye=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};var b2=e=>new TextEncoder().encode(e),w2=e=>new TextDecoder().decode(e);var Ai=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Ci=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return S2(this,t)}},Bi=class{constructor(t){this.decoders=t}or(t){return S2(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},S2=(e,t)=>new Bi({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Ti=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Ai(t,r,n),this.decoder=new Ci(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},fn=({name:e,prefix:t,encode:r,decode:n})=>new Ti(e,t,r,n),pr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=x2(r,t);return fn({prefix:e,name:t,encode:n,decode:o=>Ye(i(o))})},A6=(e,t,r,n)=>{let i={};for(let f=0;f<t.length;++f)i[t[f]]=f;let o=e.length;for(;e[o-1]==="=";)--o;let a=new Uint8Array(o*r/8|0),s=0,c=0,u=0;for(let f=0;f<o;++f){let l=i[e[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|l,s+=r,s>=8&&(s-=8,a[u++]=255&c>>s)}if(s>=r||255&c<<8-s)throw new SyntaxError("Unexpected end of data");return a},C6=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,o="",a=0,s=0;for(let c=0;c<e.length;++c)for(s=s<<8|e[c],a+=8;a>r;)a-=r,o+=t[i&s>>a];if(a&&(o+=t[i&s<<r-a]),n)for(;o.length*r&7;)o+="=";return o},Bt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>fn({prefix:t,name:e,encode(i){return C6(i,n,r)},decode(i){return A6(i,n,r,e)}});var ve=Bt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),B6=Bt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),T6=Bt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),_6=Bt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),R6=Bt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),P6=Bt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),L6=Bt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),N6=Bt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),k6=Bt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ri={};Ft(Ri,{base58btc:()=>Lt,base58flickr:()=>D6});var Lt=pr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),D6=pr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Pi={};Ft(Pi,{base64:()=>Or,base64pad:()=>O6,base64url:()=>U6,base64urlpad:()=>F6});var Or=Bt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),O6=Bt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),U6=Bt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),F6=Bt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});le.default.formatters.b=e=>e==null?"undefined":Lt.baseEncode(e);le.default.formatters.t=e=>e==null?"undefined":ve.baseEncode(e);le.default.formatters.m=e=>e==null?"undefined":Or.baseEncode(e);le.default.formatters.p=e=>e==null?"undefined":e.toString();le.default.formatters.c=e=>e==null?"undefined":e.toString();le.default.formatters.k=e=>e==null?"undefined":e.toString();le.default.formatters.a=e=>e==null?"undefined":e.toString();function K6(e){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}function X(e){let t=K6(`${e}:trace`);return le.default.enabled(`${e}:trace`)&&le.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,le.default)(`${e}:trace`)),Object.assign((0,le.default)(e),{error:(0,le.default)(`${e}:error`),trace:t})}function M6(e){return e[Symbol.asyncIterator]!=null}function V6(e){if(M6(e))return(async()=>{for await(let t of e);})();for(let t of e);}var Yn=V6;function Jt(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var V0=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},ln=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new V0(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new V0(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var Li=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function q0(e={}){return q6(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},e)}function q6(e,t){t=t??{};let r=t.onEnd,n=new ln,i,o,a,s=Jt(),c=async()=>{try{return n.isEmpty()?a?{done:!0}:await new Promise((g,m)=>{o=x=>{o=null,n.push(x);try{g(e(n))}catch(v){m(v)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{s.resolve(),s=Jt()})}},u=g=>o!=null?o(g):(n.push(g),i),f=g=>(n=new ln,o!=null?o({error:g}):(n.push({error:g}),i)),l=g=>{if(a)return i;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},p=g=>a?i:(a=!0,g!=null?f(g):u({done:!0})),d=()=>(n=new ln,p(),{done:!0}),h=g=>(p(g),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:d,throw:h,push:l,end:p,get readableLength(){return n.size},onEmpty:async g=>{let m=g?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let x,v;m!=null&&(x=new Promise((C,E)=>{v=()=>{E(new Li)},m.addEventListener("abort",v)}));try{await Promise.race([s.promise,x])}finally{v!=null&&m!=null&&m?.removeEventListener("abort",v)}}},r==null)return i;let y=i;return i={[Symbol.asyncIterator](){return this},next(){return y.next()},throw(g){return y.throw(g),r!=null&&(r(g),r=void 0),{done:!0}},return(){return y.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(g){return y.end(g),r!=null&&(r(g),r=void 0),i},get readableLength(){return y.readableLength}},i}function z6(e){return e[Symbol.asyncIterator]!=null}function H6(...e){let t=[];for(let r of e)z6(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=q0({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var be=H6;var N2=St(I2(),1);var A2="[a-fA-F\\d:]",yr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${A2})|(?<=${A2})(?=\\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}",Kt="[a-fA-F\\d]{1,4}",z0=`
|
|
15
|
+
`+s+t.substr(a+1),o=i-a-1,a=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(a=i);return t}function yu(e){return e.replace(/^\s+/,"")}});var D3=nt(($m,k3)=>{var Me=ft();Gr();kt();var P3=k3.exports=Me.sha256=Me.sha256||{};Me.md.sha256=Me.md.algorithms.sha256=P3;P3.create=function(){L3||gu();var e=null,t=Me.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=Me.util.createBuffer(),e={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=Me.util.encodeUtf8(i));var a=i.length;n.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var s=n.fullMessageLength.length-1;s>=0;--s)n.fullMessageLength[s]+=a[1],a[1]=a[0]+(n.fullMessageLength[s]/4294967296>>>0),n.fullMessageLength[s]=n.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(i),R3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Me.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,a=o&n.blockLength-1;i.putBytes(Yo.substr(0,n.blockLength-a));for(var s,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)s=n.fullMessageLength[f+1]*8,c=s/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=s>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};R3(l,r,i);var p=Me.util.createBuffer();return p.putInt32(l.h0),p.putInt32(l.h1),p.putInt32(l.h2),p.putInt32(l.h3),p.putInt32(l.h4),p.putInt32(l.h5),p.putInt32(l.h6),p.putInt32(l.h7),p},n};var Yo=null,L3=!1,N3=null;function gu(){Yo=String.fromCharCode(128),Yo+=Me.util.fillString(String.fromCharCode(0),64),N3=[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],L3=!0}function R3(e,t,r){for(var n,i,o,a,s,c,u,f,l,p,d,h,y,g,m,x=r.length();x>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(f=e.h0,l=e.h1,p=e.h2,d=e.h3,h=e.h4,y=e.h5,g=e.h6,m=e.h7,u=0;u<64;++u)a=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),s=g^h&(y^g),o=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),c=f&l|p&(f^l),n=m+a+s+N3[u]+t[u],i=o+c,m=g,g=y,y=h,h=d+n>>>0,d=p,p=l,l=f,f=n+i>>>0;e.h0=e.h0+f|0,e.h1=e.h1+l|0,e.h2=e.h2+p|0,e.h3=e.h3+d|0,e.h4=e.h4+h|0,e.h5=e.h5+y|0,e.h6=e.h6+g|0,e.h7=e.h7+m|0,x-=64}}});var U3=nt((Gm,O3)=>{var Ve=ft();kt();var b1=null;Ve.util.isNodejs&&!Ve.options.usePureJavaScript&&!process.versions["node-webkit"]&&(b1=m1());var mu=O3.exports=Ve.prng=Ve.prng||{};mu.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,f){if(!f)return t.generateSync(u);var l=t.plugin.cipher,p=t.plugin.increment,d=t.plugin.formatKey,h=t.plugin.formatSeed,y=Ve.util.createBuffer();t.key=null,g();function g(m){if(m)return f(m);if(y.length()>=u)return f(null,y.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return Ve.util.nextTick(function(){o(g)});var x=l(t.key,t.seed);t.generated+=x.length,y.putBytes(x),t.key=d(l(t.key,p(t.seed))),t.seed=h(l(t.key,t.seed)),Ve.util.setImmediate(g)}},t.generateSync=function(u){var f=t.plugin.cipher,l=t.plugin.increment,p=t.plugin.formatKey,d=t.plugin.formatSeed;t.key=null;for(var h=Ve.util.createBuffer();h.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&a();var y=f(t.key,t.seed);t.generated+=y.length,h.putBytes(y),t.key=p(f(t.key,l(t.seed))),t.seed=d(f(t.key,t.seed))}return h.getBytes(u)};function o(u){if(t.pools[0].messageLength>=32)return s(),u();var f=32-t.pools[0].messageLength<<5;t.seedFile(f,function(l,p){if(l)return u(l);t.collect(p),s(),u()})}function a(){if(t.pools[0].messageLength>=32)return s();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),s()}function s(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var u=t.plugin.md.create();u.update(t.keyBytes);for(var f=1,l=0;l<32;++l)t.reseeds%f===0&&(u.update(t.pools[l].digest().getBytes()),t.pools[l].start()),f=f<<1;t.keyBytes=u.digest().getBytes(),u.start(),u.update(t.keyBytes);var p=u.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(p),t.generated=0}function c(u){var f=null,l=Ve.util.globalScope,p=l.crypto||l.msCrypto;p&&p.getRandomValues&&(f=function(E){return p.getRandomValues(E)});var d=Ve.util.createBuffer();if(f)for(;d.length()<u;){var h=Math.max(1,Math.min(u-d.length(),65536)/4),y=new Uint32Array(Math.floor(h));try{f(y);for(var g=0;g<y.length;++g)d.putInt32(y[g])}catch(E){if(!(typeof QuotaExceededError<"u"&&E instanceof QuotaExceededError))throw E}}if(d.length()<u)for(var m,x,v,C=Math.floor(Math.random()*65536);d.length()<u;){x=16807*(C&65535),m=16807*(C>>16),x+=(m&32767)<<16,x+=m>>15,x=(x&2147483647)+(x>>31),C=x&4294967295;for(var g=0;g<3;++g)v=C>>>(g<<3),v^=Math.floor(Math.random()*256),d.putByte(v&255)}return d.getBytes(u)}return b1?(t.seedFile=function(u,f){b1.randomBytes(u,function(l,p){if(l)return f(l);f(null,p.toString())})},t.seedFileSync=function(u){return b1.randomBytes(u).toString()}):(t.seedFile=function(u,f){try{f(null,c(u))}catch(l){f(l)}},t.seedFileSync=c),t.collect=function(u){for(var f=u.length,l=0;l<f;++l)t.pools[t.pool].update(u.substr(l,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,f){for(var l="",p=0;p<f;p+=8)l+=String.fromCharCode(u>>p&255);t.collect(l)},t.registerWorker=function(u){if(u===self)t.seedFile=function(l,p){function d(h){var y=h.data;y.forge&&y.forge.prng&&(self.removeEventListener("message",d),p(y.forge.prng.err,y.forge.prng.bytes))}self.addEventListener("message",d),self.postMessage({forge:{prng:{needed:l}}})};else{var f=function(l){var p=l.data;p.forge&&p.forge.prng&&t.seedFile(p.forge.prng.needed,function(d,h){u.postMessage({forge:{prng:{err:d,bytes:h}}})})};u.addEventListener("message",f)}},t}});var p0=nt((Qm,Wo)=>{var Gt=ft();h1();D3();U3();kt();(function(){if(Gt.random&&Gt.random.getBytes){Wo.exports=Gt.random;return}(function(e){var t={},r=new Array(4),n=Gt.util.createBuffer();t.formatKey=function(l){var p=Gt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),Gt.aes._expandKey(l,!1)},t.formatSeed=function(l){var p=Gt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),l},t.cipher=function(l,p){return Gt.aes._updateBlock(l,p,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(l){return++l[3],l},t.md=Gt.md.sha256;function i(){var l=Gt.prng.create(t);return l.getBytes=function(p,d){return l.generate(p,d)},l.getBytesSync=function(p){return l.generate(p)},l}var o=i(),a=null,s=Gt.util.globalScope,c=s.crypto||s.msCrypto;if(c&&c.getRandomValues&&(a=function(l){return c.getRandomValues(l)}),Gt.options.usePureJavaScript||!Gt.util.isNodejs&&!a){if(typeof window>"u"||window.document,o.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var f in navigator)try{typeof navigator[f]=="string"&&(u+=navigator[f])}catch{}o.collect(u),u=null}e&&(e().mousemove(function(l){o.collectInt(l.clientX,16),o.collectInt(l.clientY,16)}),e().keypress(function(l){o.collectInt(l.charCode,8)}))}if(!Gt.random)Gt.random=o;else for(var f in o)Gt.random[f]=o[f];Gt.random.createInstance=i,Wo.exports=Gt.random})(typeof jQuery<"u"?jQuery:null)})()});var V3=nt((Ym,M3)=>{var ue=ft();kt();var Zo=[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],F3=[1,2,3,5],xu=function(e,t){return e<<t&65535|(e&65535)>>16-t},vu=function(e,t){return(e&65535)>>t|e<<16-t&65535};M3.exports=ue.rc2=ue.rc2||{};ue.rc2.expandKey=function(e,t){typeof e=="string"&&(e=ue.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,o=Math.ceil(i/8),a=255>>(i&7),s;for(s=n;s<128;s++)r.putByte(Zo[r.at(s-1)+r.at(s-n)&255]);for(r.setAt(128-o,Zo[r.at(128-o)&a]),s=127-o;s>=0;s--)r.setAt(s,Zo[r.at(s+1)^r.at(s+o)]);return r};var K3=function(e,t,r){var n=!1,i=null,o=null,a=null,s,c,u,f,l=[];for(e=ue.rc2.expandKey(e,t),u=0;u<64;u++)l.push(e.getInt16Le());r?(s=function(h){for(u=0;u<4;u++)h[u]+=l[f]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),h[u]=xu(h[u],F3[u]),f++},c=function(h){for(u=0;u<4;u++)h[u]+=l[h[(u+3)%4]&63]}):(s=function(h){for(u=3;u>=0;u--)h[u]=vu(h[u],F3[u]),h[u]-=l[f]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),f--},c=function(h){for(u=3;u>=0;u--)h[u]-=l[h[(u+3)%4]&63]});var p=function(h){var y=[];for(u=0;u<4;u++){var g=i.getInt16Le();a!==null&&(r?g^=a.getInt16Le():a.putInt16Le(g)),y.push(g&65535)}f=r?0:63;for(var m=0;m<h.length;m++)for(var x=0;x<h[m][0];x++)h[m][1](y);for(u=0;u<4;u++)a!==null&&(r?a.putInt16Le(y[u]):y[u]^=a.getInt16Le()),o.putInt16Le(y[u])},d=null;return d={start:function(h,y){h&&typeof h=="string"&&(h=ue.util.createBuffer(h)),n=!1,i=ue.util.createBuffer(),o=y||new ue.util.createBuffer,a=h,d.output=o},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)p([[5,s],[1,c],[6,s],[1,c],[5,s]])},finish:function(h){var y=!0;if(r)if(h)y=h(8,i,!r);else{var g=i.length()===8?8:8-i.length();i.fillWithByte(g,g)}if(y&&(n=!0,d.update()),!r&&(y=i.length()===0,y))if(h)y=h(8,o,!r);else{var m=o.length(),x=o.at(m-1);x>m?y=!1:o.truncate(x)}return y}},d};ue.rc2.startEncrypting=function(e,t,r){var n=ue.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};ue.rc2.createEncryptionCipher=function(e,t){return K3(e,t,!0)};ue.rc2.startDecrypting=function(e,t,r){var n=ue.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};ue.rc2.createDecryptionCipher=function(e,t){return K3(e,t,!1)}});var S1=nt((Wm,W3)=>{var Xo=ft();W3.exports=Xo.jsbn=Xo.jsbn||{};var er,bu=0xdeadbeefcafe,q3=(bu&16777215)==15715070;function B(e,t,r){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,r):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}Xo.jsbn.BigInteger=B;function it(){return new B(null)}function wu(e,t,r,n,i,o){for(;--o>=0;){var a=t*this.data[e++]+r.data[n]+i;i=Math.floor(a/67108864),r.data[n++]=a&67108863}return i}function Eu(e,t,r,n,i,o){for(var a=t&32767,s=t>>15;--o>=0;){var c=this.data[e]&32767,u=this.data[e++]>>15,f=s*c+u*a;c=a*c+((f&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(f>>>15)+s*u+(i>>>30),r.data[n++]=c&1073741823}return i}function z3(e,t,r,n,i,o){for(var a=t&16383,s=t>>14;--o>=0;){var c=this.data[e]&16383,u=this.data[e++]>>14,f=s*c+u*a;c=a*c+((f&16383)<<14)+r.data[n]+i,i=(c>>28)+(f>>14)+s*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(B.prototype.am=z3,er=28):q3&&navigator.appName=="Microsoft Internet Explorer"?(B.prototype.am=Eu,er=30):q3&&navigator.appName!="Netscape"?(B.prototype.am=wu,er=26):(B.prototype.am=z3,er=28);B.prototype.DB=er;B.prototype.DM=(1<<er)-1;B.prototype.DV=1<<er;var Jo=52;B.prototype.FV=Math.pow(2,Jo);B.prototype.F1=Jo-er;B.prototype.F2=2*er-Jo;var Su="0123456789abcdefghijklmnopqrstuvwxyz",w1=new Array,Ln,ge;Ln="0".charCodeAt(0);for(ge=0;ge<=9;++ge)w1[Ln++]=ge;Ln="a".charCodeAt(0);for(ge=10;ge<36;++ge)w1[Ln++]=ge;Ln="A".charCodeAt(0);for(ge=10;ge<36;++ge)w1[Ln++]=ge;function H3(e){return Su.charAt(e)}function $3(e,t){var r=w1[e.charCodeAt(t)];return r??-1}function Iu(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function Au(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0}function Sr(e){var t=it();return t.fromInt(e),t}function Cu(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,i=!1,o=0;--n>=0;){var a=r==8?e[n]&255:$3(e,n);if(a<0){e.charAt(n)=="-"&&(i=!0);continue}i=!1,o==0?this.data[this.t++]=a:o+r>this.DB?(this.data[this.t-1]|=(a&(1<<this.DB-o)-1)<<o,this.data[this.t++]=a>>this.DB-o):this.data[this.t-1]|=a<<o,o+=r,o>=this.DB&&(o-=this.DB)}r==8&&e[0]&128&&(this.s=-1,o>0&&(this.data[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&B.ZERO.subTo(this,this)}function Bu(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function Tu(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<<t)-1,n,i=!1,o="",a=this.t,s=this.DB-a*this.DB%t;if(a-- >0)for(s<this.DB&&(n=this.data[a]>>s)>0&&(i=!0,o=H3(n));a>=0;)s<t?(n=(this.data[a]&(1<<s)-1)<<t-s,n|=this.data[--a]>>(s+=this.DB-t)):(n=this.data[a]>>(s-=t)&r,s<=0&&(s+=this.DB,--a)),n>0&&(i=!0),i&&(o+=H3(n));return i?o:"0"}function _u(){var e=it();return B.ZERO.subTo(this,e),e}function Ru(){return this.s<0?this.negate():this}function Pu(e){var t=this.s-e.s;if(t!=0)return t;var r=this.t;if(t=r-e.t,t!=0)return this.s<0?-t:t;for(;--r>=0;)if((t=this.data[r]-e.data[r])!=0)return t;return 0}function E1(e){var t=1,r;return(r=e>>>16)!=0&&(e=r,t+=16),(r=e>>8)!=0&&(e=r,t+=8),(r=e>>4)!=0&&(e=r,t+=4),(r=e>>2)!=0&&(e=r,t+=2),(r=e>>1)!=0&&(e=r,t+=1),t}function Lu(){return this.t<=0?0:this.DB*(this.t-1)+E1(this.data[this.t-1]^this.s&this.DM)}function Nu(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s}function ku(e,t){for(var r=e;r<this.t;++r)t.data[r-e]=this.data[r];t.t=Math.max(this.t-e,0),t.s=this.s}function Du(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,o=Math.floor(e/this.DB),a=this.s<<r&this.DM,s;for(s=this.t-1;s>=0;--s)t.data[s+o+1]=this.data[s]>>n|a,a=(this.data[s]&i)<<r;for(s=o-1;s>=0;--s)t.data[s]=0;t.data[o]=a,t.t=this.t+o+1,t.s=this.s,t.clamp()}function Ou(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}var n=e%this.DB,i=this.DB-n,o=(1<<n)-1;t.data[0]=this.data[r]>>n;for(var a=r+1;a<this.t;++a)t.data[a-r-1]|=(this.data[a]&o)<<i,t.data[a-r]=this.data[a]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&o)<<i),t.t=this.t-r,t.clamp()}function Uu(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]-e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n-=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()}function Fu(e,t){var r=this.abs(),n=e.abs(),i=r.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+r.t]=r.am(0,n.data[i],t,i,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&B.ZERO.subTo(t,t)}function Ku(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e.data[r]=0;for(r=0;r<t.t-1;++r){var n=t.am(r,t.data[r],e,2*r,0,1);(e.data[r+t.t]+=t.am(r+1,2*t.data[r],e,2*r+1,n,t.t-r-1))>=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()}function Mu(e,t,r){var n=e.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=it());var o=it(),a=this.s,s=e.s,c=this.DB-E1(n.data[n.t-1]);c>0?(n.lShiftTo(c,o),i.lShiftTo(c,r)):(n.copyTo(o),i.copyTo(r));var u=o.t,f=o.data[u-1];if(f!=0){var l=f*(1<<this.F1)+(u>1?o.data[u-2]>>this.F2:0),p=this.FV/l,d=(1<<this.F1)/l,h=1<<this.F2,y=r.t,g=y-u,m=t??it();for(o.dlShiftTo(g,m),r.compareTo(m)>=0&&(r.data[r.t++]=1,r.subTo(m,r)),B.ONE.dlShiftTo(u,m),m.subTo(o,o);o.t<u;)o.data[o.t++]=0;for(;--g>=0;){var x=r.data[--y]==f?this.DM:Math.floor(r.data[y]*p+(r.data[y-1]+h)*d);if((r.data[y]+=o.am(0,x,r,g,0,u))<x)for(o.dlShiftTo(g,m),r.subTo(m,r);r.data[y]<--x;)r.subTo(m,r)}t!=null&&(r.drShiftTo(u,t),a!=s&&B.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),a<0&&B.ZERO.subTo(r,r)}}}function Vu(e){var t=it();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(B.ZERO)>0&&e.subTo(t,t),t}function Qr(e){this.m=e}function qu(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function zu(e){return e}function Hu(e){e.divRemTo(this.m,null,e)}function $u(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function Gu(e,t){e.squareTo(t),this.reduce(t)}Qr.prototype.convert=qu;Qr.prototype.revert=zu;Qr.prototype.reduce=Hu;Qr.prototype.mulTo=$u;Qr.prototype.sqrTo=Gu;function Qu(){if(this.t<1)return 0;var e=this.data[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function Yr(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function Yu(e){var t=it();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(B.ZERO)>0&&this.m.subTo(t,t),t}function Wu(e){var t=it();return e.copyTo(t),this.reduce(t),t}function Zu(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=e.data[t]&32767,n=r*this.mpl+((r*this.mph+(e.data[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function Xu(e,t){e.squareTo(t),this.reduce(t)}function Ju(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Yr.prototype.convert=Yu;Yr.prototype.revert=Wu;Yr.prototype.reduce=Zu;Yr.prototype.mulTo=Ju;Yr.prototype.sqrTo=Xu;function ju(){return(this.t>0?this.data[0]&1:this.s)==0}function tf(e,t){if(e>4294967295||e<1)return B.ONE;var r=it(),n=it(),i=t.convert(this),o=E1(e)-1;for(i.copyTo(r);--o>=0;)if(t.sqrTo(r,n),(e&1<<o)>0)t.mulTo(n,i,r);else{var a=r;r=n,n=a}return t.revert(r)}function ef(e,t){var r;return e<256||t.isEven()?r=new Qr(t):r=new Yr(t),this.exp(e,r)}B.prototype.copyTo=Iu;B.prototype.fromInt=Au;B.prototype.fromString=Cu;B.prototype.clamp=Bu;B.prototype.dlShiftTo=Nu;B.prototype.drShiftTo=ku;B.prototype.lShiftTo=Du;B.prototype.rShiftTo=Ou;B.prototype.subTo=Uu;B.prototype.multiplyTo=Fu;B.prototype.squareTo=Ku;B.prototype.divRemTo=Mu;B.prototype.invDigit=Qu;B.prototype.isEven=ju;B.prototype.exp=tf;B.prototype.toString=Tu;B.prototype.negate=_u;B.prototype.abs=Ru;B.prototype.compareTo=Pu;B.prototype.bitLength=Lu;B.prototype.mod=Vu;B.prototype.modPowInt=ef;B.ZERO=Sr(0);B.ONE=Sr(1);function rf(){var e=it();return this.copyTo(e),e}function nf(){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 of(){return this.t==0?this.s:this.data[0]<<24>>24}function sf(){return this.t==0?this.s:this.data[0]<<16>>16}function af(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function cf(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function uf(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=Sr(r),i=it(),o=it(),a="";for(this.divRemTo(n,i,o);i.signum()>0;)a=(r+o.intValue()).toString(e).substr(1)+a,i.divRemTo(n,i,o);return o.intValue().toString(e)+a}function ff(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,o=0,a=0,s=0;s<e.length;++s){var c=$3(e,s);if(c<0){e.charAt(s)=="-"&&this.signum()==0&&(i=!0);continue}a=t*a+c,++o>=r&&(this.dMultiply(n),this.dAddOffset(a,0),o=0,a=0)}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(a,0)),i&&B.ZERO.subTo(this,this)}function lf(e,t,r){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(B.ONE.shiftLeft(e-1),jo,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(B.ONE.shiftLeft(e-1),this);else{var n=new Array,i=e&7;n.length=(e>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function hf(){var e=this.t,t=new Array;t[0]=this.s;var r=this.DB-e*this.DB%8,n,i=0;if(e-- >0)for(r<this.DB&&(n=this.data[e]>>r)!=(this.s&this.DM)>>r&&(t[i++]=n|this.s<<this.DB-r);e>=0;)r<8?(n=(this.data[e]&(1<<r)-1)<<8-r,n|=this.data[--e]>>(r+=this.DB-8)):(n=this.data[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function df(e){return this.compareTo(e)==0}function pf(e){return this.compareTo(e)<0?this:e}function yf(e){return this.compareTo(e)>0?this:e}function gf(e,t,r){var n,i,o=Math.min(e.t,this.t);for(n=0;n<o;++n)r.data[n]=t(this.data[n],e.data[n]);if(e.t<this.t){for(i=e.s&this.DM,n=o;n<this.t;++n)r.data[n]=t(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=o;n<e.t;++n)r.data[n]=t(i,e.data[n]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()}function mf(e,t){return e&t}function xf(e){var t=it();return this.bitwiseTo(e,mf,t),t}function jo(e,t){return e|t}function vf(e){var t=it();return this.bitwiseTo(e,jo,t),t}function G3(e,t){return e^t}function bf(e){var t=it();return this.bitwiseTo(e,G3,t),t}function Q3(e,t){return e&~t}function wf(e){var t=it();return this.bitwiseTo(e,Q3,t),t}function Ef(){for(var e=it(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function Sf(e){var t=it();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function If(e){var t=it();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function Af(e){if(e==0)return-1;var t=0;return e&65535||(e>>=16,t+=16),e&255||(e>>=8,t+=8),e&15||(e>>=4,t+=4),e&3||(e>>=2,t+=2),e&1||++t,t}function Cf(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+Af(this.data[e]);return this.s<0?this.t*this.DB:-1}function Bf(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function Tf(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=Bf(this.data[r]^t);return e}function _f(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function Rf(e,t){var r=B.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function Pf(e){return this.changeBit(e,jo)}function Lf(e){return this.changeBit(e,Q3)}function Nf(e){return this.changeBit(e,G3)}function kf(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]+e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n+=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n+=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()}function Df(e){var t=it();return this.addTo(e,t),t}function Of(e){var t=it();return this.subTo(e,t),t}function Uf(e){var t=it();return this.multiplyTo(e,t),t}function Ff(e){var t=it();return this.divRemTo(e,t,null),t}function Kf(e){var t=it();return this.divRemTo(e,null,t),t}function Mf(e){var t=it(),r=it();return this.divRemTo(e,t,r),new Array(t,r)}function Vf(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function qf(e,t){if(e!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function y0(){}function Y3(e){return e}function zf(e,t,r){e.multiplyTo(t,r)}function Hf(e,t){e.squareTo(t)}y0.prototype.convert=Y3;y0.prototype.revert=Y3;y0.prototype.mulTo=zf;y0.prototype.sqrTo=Hf;function $f(e){return this.exp(e,new y0)}function Gf(e,t,r){var n=Math.min(this.t+e.t,t);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,e.data[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e.data[n],r,n,0,t-n);r.clamp()}function Qf(e,t,r){--t;var n=r.t=this.t+e.t-t;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n<e.t;++n)r.data[this.t+n-t]=this.am(t-n,e.data[n],r,0,0,this.t+n-t);r.clamp(),r.drShiftTo(1,r)}function Nn(e){this.r2=it(),this.q3=it(),B.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function Yf(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=it();return e.copyTo(t),this.reduce(t),t}function Wf(e){return e}function Zf(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function Xf(e,t){e.squareTo(t),this.reduce(t)}function Jf(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Nn.prototype.convert=Yf;Nn.prototype.revert=Wf;Nn.prototype.reduce=Zf;Nn.prototype.mulTo=Jf;Nn.prototype.sqrTo=Xf;function jf(e,t){var r=e.bitLength(),n,i=Sr(1),o;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?o=new Qr(t):t.isEven()?o=new Nn(t):o=new Yr(t);var a=new Array,s=3,c=n-1,u=(1<<n)-1;if(a[1]=o.convert(this),n>1){var f=it();for(o.sqrTo(a[1],f);s<=u;)a[s]=it(),o.mulTo(f,a[s-2],a[s]),s+=2}var l=e.t-1,p,d=!0,h=it(),y;for(r=E1(e.data[l])-1;l>=0;){for(r>=c?p=e.data[l]>>r-c&u:(p=(e.data[l]&(1<<r+1)-1)<<c-r,l>0&&(p|=e.data[l-1]>>this.DB+r-c)),s=n;!(p&1);)p>>=1,--s;if((r-=s)<0&&(r+=this.DB,--l),d)a[p].copyTo(i),d=!1;else{for(;s>1;)o.sqrTo(i,h),o.sqrTo(h,i),s-=2;s>0?o.sqrTo(i,h):(y=i,i=h,h=y),o.mulTo(h,a[p],i)}for(;l>=0&&!(e.data[l]&1<<r);)o.sqrTo(i,h),y=i,i=h,h=y,--r<0&&(r=this.DB-1,--l)}return o.revert(i)}function t7(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var i=t.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return t;for(i<o&&(o=i),o>0&&(t.rShiftTo(o,t),r.rShiftTo(o,r));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r}function e7(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(t==0)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r}function r7(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return B.ZERO;for(var r=e.clone(),n=this.clone(),i=Sr(1),o=Sr(0),a=Sr(0),s=Sr(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),t?((!i.isEven()||!o.isEven())&&(i.addTo(this,i),o.subTo(e,o)),i.rShiftTo(1,i)):o.isEven()||o.subTo(e,o),o.rShiftTo(1,o);for(;n.isEven();)n.rShiftTo(1,n),t?((!a.isEven()||!s.isEven())&&(a.addTo(this,a),s.subTo(e,s)),a.rShiftTo(1,a)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(a,i),o.subTo(s,o)):(n.subTo(r,n),t&&a.subTo(i,a),s.subTo(o,s))}if(n.compareTo(B.ONE)!=0)return B.ZERO;if(s.compareTo(e)>=0)return s.subtract(e);if(s.signum()<0)s.addTo(e,s);else return s;return s.signum()<0?s.add(e):s}var Be=[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],n7=(1<<26)/Be[Be.length-1];function i7(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=Be[Be.length-1]){for(t=0;t<Be.length;++t)if(r.data[0]==Be[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<Be.length;){for(var n=Be[t],i=t+1;i<Be.length&&n<n7;)n*=Be[i++];for(n=r.modInt(n);t<i;)if(n%Be[t++]==0)return!1}return r.millerRabin(e)}function o7(e){var t=this.subtract(B.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=s7(),o,a=0;a<e;++a){do o=new B(this.bitLength(),i);while(o.compareTo(B.ONE)<=0||o.compareTo(t)>=0);var s=o.modPow(n,this);if(s.compareTo(B.ONE)!=0&&s.compareTo(t)!=0){for(var c=1;c++<r&&s.compareTo(t)!=0;)if(s=s.modPowInt(2,this),s.compareTo(B.ONE)==0)return!1;if(s.compareTo(t)!=0)return!1}}return!0}function s7(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}B.prototype.chunkSize=af;B.prototype.toRadix=uf;B.prototype.fromRadix=ff;B.prototype.fromNumber=lf;B.prototype.bitwiseTo=gf;B.prototype.changeBit=Rf;B.prototype.addTo=kf;B.prototype.dMultiply=Vf;B.prototype.dAddOffset=qf;B.prototype.multiplyLowerTo=Gf;B.prototype.multiplyUpperTo=Qf;B.prototype.modInt=e7;B.prototype.millerRabin=o7;B.prototype.clone=rf;B.prototype.intValue=nf;B.prototype.byteValue=of;B.prototype.shortValue=sf;B.prototype.signum=cf;B.prototype.toByteArray=hf;B.prototype.equals=df;B.prototype.min=pf;B.prototype.max=yf;B.prototype.and=xf;B.prototype.or=vf;B.prototype.xor=bf;B.prototype.andNot=wf;B.prototype.not=Ef;B.prototype.shiftLeft=Sf;B.prototype.shiftRight=If;B.prototype.getLowestSetBit=Cf;B.prototype.bitCount=Tf;B.prototype.testBit=_f;B.prototype.setBit=Pf;B.prototype.clearBit=Lf;B.prototype.flipBit=Nf;B.prototype.add=Df;B.prototype.subtract=Of;B.prototype.multiply=Uf;B.prototype.divide=Ff;B.prototype.remainder=Kf;B.prototype.divideAndRemainder=Mf;B.prototype.modPow=jf;B.prototype.modInverse=r7;B.prototype.pow=$f;B.prototype.gcd=t7;B.prototype.isProbablePrime=i7});var t4=nt((Zm,j3)=>{var qe=ft();Gr();kt();var X3=j3.exports=qe.sha1=qe.sha1||{};qe.md.sha1=qe.md.algorithms.sha1=X3;X3.create=function(){J3||a7();var e=null,t=qe.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,o=0;o<i;++o)n.fullMessageLength.push(0);return t=qe.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=qe.util.encodeUtf8(i));var a=i.length;n.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var s=n.fullMessageLength.length-1;s>=0;--s)n.fullMessageLength[s]+=a[1],a[1]=a[0]+(n.fullMessageLength[s]/4294967296>>>0),n.fullMessageLength[s]=n.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(i),Z3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=qe.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,a=o&n.blockLength-1;i.putBytes(ts.substr(0,n.blockLength-a));for(var s,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)s=n.fullMessageLength[f+1]*8,c=s/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=s>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};Z3(l,r,i);var p=qe.util.createBuffer();return p.putInt32(l.h0),p.putInt32(l.h1),p.putInt32(l.h2),p.putInt32(l.h3),p.putInt32(l.h4),p},n};var ts=null,J3=!1;function a7(){ts=String.fromCharCode(128),ts+=qe.util.fillString(String.fromCharCode(0),64),J3=!0}function Z3(e,t,r){for(var n,i,o,a,s,c,u,f,l=r.length();l>=64;){for(i=e.h0,o=e.h1,a=e.h2,s=e.h3,c=e.h4,f=0;f<16;++f)n=r.getInt32(),t[f]=n,u=s^o&(a^s),n=(i<<5|i>>>27)+u+c+1518500249+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<20;++f)n=t[f-3]^t[f-8]^t[f-14]^t[f-16],n=n<<1|n>>>31,t[f]=n,u=s^o&(a^s),n=(i<<5|i>>>27)+u+c+1518500249+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<32;++f)n=t[f-3]^t[f-8]^t[f-14]^t[f-16],n=n<<1|n>>>31,t[f]=n,u=o^a^s,n=(i<<5|i>>>27)+u+c+1859775393+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<40;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o^a^s,n=(i<<5|i>>>27)+u+c+1859775393+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<60;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o&a|s&(o^a),n=(i<<5|i>>>27)+u+c+2400959708+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<80;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o^a^s,n=(i<<5|i>>>27)+u+c+3395469782+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;e.h0=e.h0+i|0,e.h1=e.h1+o|0,e.h2=e.h2+a|0,e.h3=e.h3+s|0,e.h4=e.h4+c|0,l-=64}}});var n4=nt((Xm,r4)=>{var ze=ft();kt();p0();t4();var e4=r4.exports=ze.pkcs1=ze.pkcs1||{};e4.encode_rsa_oaep=function(e,t,r){var n,i,o,a;typeof r=="string"?(n=r,i=arguments[3]||void 0,o=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,o=r.md||void 0,r.mgf1&&r.mgf1.md&&(a=r.mgf1.md)),o?o.start():o=ze.md.sha1.create(),a||(a=o);var s=Math.ceil(e.n.bitLength()/8),c=s-2*o.digestLength-2;if(t.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=t.length,u.maxLength=c,u}n||(n=""),o.update(n,"raw");for(var f=o.digest(),l="",p=c-t.length,d=0;d<p;d++)l+="\0";var h=f.getBytes()+l+""+t;if(!i)i=ze.random.getBytes(o.digestLength);else if(i.length!==o.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=o.digestLength,u}var y=I1(i,s-o.digestLength-1,a),g=ze.util.xorBytes(h,y,h.length),m=I1(g,o.digestLength,a),x=ze.util.xorBytes(i,m,i.length);return"\0"+x+g};e4.decode_rsa_oaep=function(e,t,r){var n,i,o;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md));var a=Math.ceil(e.n.bitLength()/8);if(t.length!==a){var g=new Error("RSAES-OAEP encoded message length is invalid.");throw g.length=t.length,g.expectedLength=a,g}if(i===void 0?i=ze.md.sha1.create():i.start(),o||(o=i),a<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 s=i.digest().getBytes(),c=t.charAt(0),u=t.substring(1,i.digestLength+1),f=t.substring(1+i.digestLength),l=I1(f,i.digestLength,o),p=ze.util.xorBytes(u,l,u.length),d=I1(p,a-i.digestLength-1,o),h=ze.util.xorBytes(f,d,f.length),y=h.substring(0,i.digestLength),g=c!=="\0",m=0;m<i.digestLength;++m)g|=s.charAt(m)!==y.charAt(m);for(var x=1,v=i.digestLength,C=i.digestLength;C<h.length;C++){var E=h.charCodeAt(C),S=E&1^1,L=x?65534:0;g|=E&L,x=x&S,v+=x}if(g||h.charCodeAt(v)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(v+1)};function I1(e,t,r){r||(r=ze.md.sha1.create());for(var n="",i=Math.ceil(t/r.digestLength),o=0;o<i;++o){var a=String.fromCharCode(o>>24&255,o>>16&255,o>>8&255,o&255);r.start(),r.update(e+a),n+=r.digest().getBytes()}return n.substring(0,t)}});var i4=nt((Jm,es)=>{var Ir=ft();kt();S1();p0();(function(){if(Ir.prime){es.exports=Ir.prime;return}var e=es.exports=Ir.prime=Ir.prime||{},t=Ir.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(l,p){return l|p};e.generateProbablePrime=function(l,p,d){typeof p=="function"&&(d=p,p={}),p=p||{};var h=p.algorithm||"PRIMEINC";typeof h=="string"&&(h={name:h}),h.options=h.options||{};var y=p.prng||Ir.random,g={nextBytes:function(m){for(var x=y.getBytesSync(m.length),v=0;v<m.length;++v)m[v]=x.charCodeAt(v)}};if(h.name==="PRIMEINC")return o(l,g,h.options,d);throw new Error("Invalid prime generation algorithm: "+h.name)};function o(l,p,d,h){return"workers"in d?c(l,p,d,h):a(l,p,d,h)}function a(l,p,d,h){var y=u(l,p),g=0,m=f(y.bitLength());"millerRabinTests"in d&&(m=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),s(y,l,p,g,m,x,h)}function s(l,p,d,h,y,g,m){var x=+new Date;do{if(l.bitLength()>p&&(l=u(p,d)),l.isProbablePrime(y))return m(null,l);l.dAddOffset(r[h++%8],0)}while(g<0||+new Date-x<g);Ir.util.setImmediate(function(){s(l,p,d,h,y,g,m)})}function c(l,p,d,h){if(typeof Worker>"u")return a(l,p,d,h);var y=u(l,p),g=d.workers,m=d.workLoad||100,x=m*30/8,v=d.workerScript||"forge/prime.worker.js";if(g===-1)return Ir.util.estimateCores(function(E,S){E&&(S=2),g=S-1,C()});C();function C(){g=Math.max(1,g);for(var E=[],S=0;S<g;++S)E[S]=new Worker(v);for(var L=g,S=0;S<g;++S)E[S].addEventListener("message",$);var N=!1;function $(G){if(!N){--L;var q=G.data;if(q.found){for(var j=0;j<E.length;++j)E[j].terminate();return N=!0,h(null,new t(q.prime,16))}y.bitLength()>l&&(y=u(l,p));var lt=y.toString(16);G.target.postMessage({hex:lt,workLoad:m}),y.dAddOffset(x,0)}}}}function u(l,p){var d=new t(l,p),h=l-1;return d.testBit(h)||d.bitwiseTo(t.ONE.shiftLeft(h),i,d),d.dAddOffset(31-d.mod(n).byteValue(),0),d}function f(l){return l<=100?27:l<=150?18:l<=200?15:l<=250?12:l<=300?9:l<=350?8:l<=400?7:l<=500?6:l<=600?5:l<=800?4:l<=1250?3:2}})()});var C1=nt((jm,l4)=>{var V=ft();d0();S1();d1();n4();i4();p0();kt();typeof rt>"u"&&(rt=V.jsbn.BigInteger);var rt,rs=V.util.isNodejs?m1():null,w=V.asn1,me=V.util;V.pki=V.pki||{};l4.exports=V.pki.rsa=V.rsa=V.rsa||{};var Q=V.pki,c7=[6,4,2,4,2,4,6,2],u7={name:"PrivateKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},f7={name:"RSAPrivateKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},l7={name:"RSAPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:w.Class.UNIVERSAL,type:w.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},h7=V.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},d7={name:"DigestInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:w.Class.UNIVERSAL,type:w.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:w.Class.UNIVERSAL,type:w.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},p7=function(e){var t;if(e.algorithm in Q.oids)t=Q.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=w.oidToDer(t).getBytes(),i=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]),o=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]);o.value.push(w.create(w.Class.UNIVERSAL,w.Type.OID,!1,n)),o.value.push(w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,""));var a=w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(o),i.value.push(a),w.toDer(i).getBytes()},u4=function(e,t,r){if(r)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(rt.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(rt.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new rt(V.util.bytesToHex(V.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(rt.ONE));e=e.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=e.mod(t.p).modPow(t.dP,t.p),o=e.mod(t.q).modPow(t.dQ,t.q);i.compareTo(o)<0;)i=i.add(t.p);var a=i.subtract(o).multiply(t.qInv).mod(t.p).multiply(t.q).add(o);return a=a.multiply(n.modInverse(t.n)).mod(t.n),a};Q.rsa.encrypt=function(e,t,r){var n=r,i,o=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=f4(e,t,r)):(i=V.util.createBuffer(),i.putBytes(e));for(var a=new rt(i.toHex(),16),s=u4(a,t,n),c=s.toString(16),u=V.util.createBuffer(),f=o-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),u.getBytes()};Q.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var o=new Error("Encrypted message length is invalid.");throw o.length=e.length,o.expected=i,o}var a=new rt(V.util.createBuffer(e).toHex(),16);if(a.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var s=u4(a,t,r),c=s.toString(16),u=V.util.createBuffer(),f=i-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),n!==!1?A1(u.getBytes(),t,r):u.getBytes()};Q.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||V.random,i={nextBytes:function(s){for(var c=n.getBytesSync(s.length),u=0;u<s.length;++u)s[u]=c.charCodeAt(u)}},o=r.algorithm||"PRIMEINC",a;if(o==="PRIMEINC")a={algorithm:o,state:0,bits:e,rng:i,eInt:t||65537,e:new rt(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},a.e.fromInt(a.eInt);else throw new Error("Invalid key generation algorithm: "+o);return a};Q.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new rt(null);r.fromInt(30);for(var n=0,i=function(l,p){return l|p},o=+new Date,a,s=0;e.keys===null&&(t<=0||s<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new rt(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(rt.ONE.shiftLeft(u),i,e.num),e.num.dAddOffset(31-e.num.mod(r).byteValue(),0),n=0,++e.pqState):e.pqState===1?e.num.bitLength()>c?e.pqState=0:e.num.isProbablePrime(g7(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(c7[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(rt.ONE).gcd(e.e).compareTo(rt.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(rt.ONE),e.q1=e.q.subtract(rt.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(rt.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var f=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)}}a=+new Date,s+=a-o,o=a}return e.keys!==null};Q.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!V.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(o4("generateKeyPair"))return rs.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(s,c,u){if(s)return n(s);n(null,{privateKey:Q.privateKeyFromPem(u),publicKey:Q.publicKeyFromPem(c)})});if(s4("generateKey")&&s4("exportKey"))return me.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:c4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(s){return me.globalScope.crypto.subtle.exportKey("pkcs8",s.privateKey)}).then(void 0,function(s){n(s)}).then(function(s){if(s){var c=Q.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(s)));n(null,{privateKey:c,publicKey:Q.setRsaPublicKey(c.n,c.e)})}});if(a4("generateKey")&&a4("exportKey")){var i=me.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:c4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(s){var c=s.target.result,u=me.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(f){var l=f.target.result,p=Q.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(l)));n(null,{privateKey:p,publicKey:Q.setRsaPublicKey(p.n,p.e)})},u.onerror=function(f){n(f)}},i.onerror=function(s){n(s)};return}}else if(o4("generateKeyPairSync")){var o=rs.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Q.privateKeyFromPem(o.privateKey),publicKey:Q.publicKeyFromPem(o.publicKey)}}}var a=Q.rsa.createKeyPairGenerationState(e,t,r);if(!n)return Q.rsa.stepKeyPairGenerationState(a,0),a.keys;y7(a,r,n)};Q.setRsaPublicKey=Q.rsa.setPublicKey=function(e,t){var r={n:e,e:t};return r.encrypt=function(n,i,o){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(s,c,u){return f4(s,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(s,c){return V.pkcs1.encode_rsa_oaep(c,s,o)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(s){return s}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var a=i.encode(n,r,!0);return Q.rsa.encrypt(a,r,!0)},r.verify=function(n,i,o,a){typeof o=="string"?o=o.toUpperCase():o===void 0&&(o="RSASSA-PKCS1-V1_5"),a===void 0&&(a={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in a||(a._parseAllDigestBytes=!0),o==="RSASSA-PKCS1-V1_5"?o={verify:function(c,u){u=A1(u,r,!0);var f=w.fromDer(u,{parseAllBytes:a._parseAllDigestBytes}),l={},p=[];if(!w.validate(f,d7,l,p)){var d=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw d.errors=p,d}var h=w.derToOid(l.algorithmIdentifier);if(!(h===V.oids.md2||h===V.oids.md5||h===V.oids.sha1||h===V.oids.sha224||h===V.oids.sha256||h===V.oids.sha384||h===V.oids.sha512||h===V.oids["sha512-224"]||h===V.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=h,d}if((h===V.oids.md2||h===V.oids.md5)&&!("parameters"in l))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===l.digest}}:(o==="NONE"||o==="NULL"||o===null)&&(o={verify:function(c,u){return u=A1(u,r,!0),c===u}});var s=Q.rsa.decrypt(i,r,!0,!1);return o.verify(n,s,r.n.bitLength())},r};Q.setRsaPrivateKey=Q.rsa.setPrivateKey=function(e,t,r,n,i,o,a,s){var c={n:e,e:t,d:r,p:n,q:i,dP:o,dQ:a,qInv:s};return c.decrypt=function(u,f,l){typeof f=="string"?f=f.toUpperCase():f===void 0&&(f="RSAES-PKCS1-V1_5");var p=Q.rsa.decrypt(u,c,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:A1};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(d,h){return V.pkcs1.decode_rsa_oaep(h,d,l)}};else if(["RAW","NONE","NULL",null].indexOf(f)!==-1)f={decode:function(d){return d}};else throw new Error('Unsupported encryption scheme: "'+f+'".');return f.decode(p,c,!1)},c.sign=function(u,f){var l=!1;typeof f=="string"&&(f=f.toUpperCase()),f===void 0||f==="RSASSA-PKCS1-V1_5"?(f={encode:p7},l=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return u}},l=1);var p=f.encode(u,c.n.bitLength());return Q.rsa.encrypt(p,c,l)},c};Q.wrapRsaPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer(Q.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,w.toDer(e).getBytes())])};Q.privateKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,u7,t,r)&&(e=w.fromDer(V.util.createBuffer(t.privateKey))),t={},r=[],!w.validate(e,f7,t,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,o,a,s,c,u,f,l;return i=V.util.createBuffer(t.privateKeyModulus).toHex(),o=V.util.createBuffer(t.privateKeyPublicExponent).toHex(),a=V.util.createBuffer(t.privateKeyPrivateExponent).toHex(),s=V.util.createBuffer(t.privateKeyPrime1).toHex(),c=V.util.createBuffer(t.privateKeyPrime2).toHex(),u=V.util.createBuffer(t.privateKeyExponent1).toHex(),f=V.util.createBuffer(t.privateKeyExponent2).toHex(),l=V.util.createBuffer(t.privateKeyCoefficient).toHex(),Q.setRsaPrivateKey(new rt(i,16),new rt(o,16),new rt(a,16),new rt(s,16),new rt(c,16),new rt(u,16),new rt(f,16),new rt(l,16))};Q.privateKeyToAsn1=Q.privateKeyToRSAPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.e)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.d)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.p)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.q)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.dP)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.dQ)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.qInv))])};Q.publicKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,h7,t,r)){var n=w.derToOid(t.publicKeyOid);if(n!==Q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!w.validate(e,l7,t,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var o=V.util.createBuffer(t.publicKeyModulus).toHex(),a=V.util.createBuffer(t.publicKeyExponent).toHex();return Q.setRsaPublicKey(new rt(o,16),new rt(a,16))};Q.publicKeyToAsn1=Q.publicKeyToSubjectPublicKeyInfo=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer(Q.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.BITSTRING,!1,[Q.publicKeyToRSAPublicKey(e)])])};Q.publicKeyToRSAPublicKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,He(e.e))])};function f4(e,t,r){var n=V.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var o=new Error("Message is too long for PKCS#1 v1.5 padding.");throw o.length=e.length,o.max=i-11,o}n.putByte(0),n.putByte(r);var a=i-3-e.length,s;if(r===0||r===1){s=r===0?0:255;for(var c=0;c<a;++c)n.putByte(s)}else for(;a>0;){for(var u=0,f=V.random.getBytes(a),c=0;c<a;++c)s=f.charCodeAt(c),s===0?++u:n.putByte(s);a=u}return n.putByte(0),n.putBytes(e),n}function A1(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),o=V.util.createBuffer(e),a=o.getByte(),s=o.getByte();if(a!==0||r&&s!==0&&s!==1||!r&&s!=2||r&&s===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(s===0){c=i-3-n;for(var u=0;u<c;++u)if(o.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(s===1)for(c=0;o.length()>1;){if(o.getByte()!==255){--o.read;break}++c}else if(s===2)for(c=0;o.length()>1;){if(o.getByte()===0){--o.read;break}++c}var f=o.getByte();if(f!==0||c!==i-3-o.length())throw new Error("Encryption block is invalid.");return o.getBytes()}function y7(e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){o(e.pBits,function(s,c){if(s)return r(s);if(e.p=c,e.q!==null)return a(s,e.q);o(e.qBits,a)})}function o(s,c){V.prime.generateProbablePrime(s,n,c)}function a(s,c){if(s)return r(s);if(e.q=c,e.p.compareTo(e.q)<0){var u=e.p;e.p=e.q,e.q=u}if(e.p.subtract(rt.ONE).gcd(e.e).compareTo(rt.ONE)!==0){e.p=null,i();return}if(e.q.subtract(rt.ONE).gcd(e.e).compareTo(rt.ONE)!==0){e.q=null,o(e.qBits,a);return}if(e.p1=e.p.subtract(rt.ONE),e.q1=e.q.subtract(rt.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(rt.ONE)!==0){e.p=e.q=null,i();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,o(e.qBits,a);return}var f=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function He(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=V.util.hexToBytes(t);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function g7(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function o4(e){return V.util.isNodejs&&typeof rs[e]=="function"}function s4(e){return typeof me.globalScope<"u"&&typeof me.globalScope.crypto=="object"&&typeof me.globalScope.crypto.subtle=="object"&&typeof me.globalScope.crypto.subtle[e]=="function"}function a4(e){return typeof me.globalScope<"u"&&typeof me.globalScope.msCrypto=="object"&&typeof me.globalScope.msCrypto.subtle=="object"&&typeof me.globalScope.msCrypto.subtle[e]=="function"}function c4(e){for(var t=V.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var m4=nt((tx,g4)=>{var U=ft();h1();d0();E3();Gr();d1();Qo();_3();p0();V3();C1();kt();typeof h4>"u"&&(h4=U.jsbn.BigInteger);var h4,I=U.asn1,Y=U.pki=U.pki||{};g4.exports=Y.pbe=U.pbe=U.pbe||{};var Wr=Y.oids,m7={name:"EncryptedPrivateKeyInfo",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},x7={name:"PBES2Algorithms",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:I.Class.UNIVERSAL,type:I.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},v7={name:"pkcs-12PbeParams",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"iterations"}]};Y.encryptPrivateKeyInfo=function(e,t,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=U.random.getBytesSync(r.saltSize),i=r.count,o=I.integerToDer(i),a,s,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,f,l;switch(r.algorithm){case"aes128":a=16,u=16,f=Wr["aes128-CBC"],l=U.aes.createEncryptionCipher;break;case"aes192":a=24,u=16,f=Wr["aes192-CBC"],l=U.aes.createEncryptionCipher;break;case"aes256":a=32,u=16,f=Wr["aes256-CBC"],l=U.aes.createEncryptionCipher;break;case"des":a=8,u=8,f=Wr.desCBC,l=U.des.createEncryptionCipher;break;default:var p=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw p.algorithm=r.algorithm,p}var d="hmacWith"+r.prfAlgorithm.toUpperCase(),h=y4(d),y=U.pkcs5.pbkdf2(t,n,i,a,h),g=U.random.getBytesSync(u),m=l(y);m.start(g),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes();var x=b7(n,o,a,d);s=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Wr.pkcs5PBES2).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Wr.pkcs5PBKDF2).getBytes()),x]),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(f).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,g)])])])}else if(r.algorithm==="3des"){a=24;var v=new U.util.ByteBuffer(n),y=Y.pbe.generatePkcs12Key(t,v,1,i,a),g=Y.pbe.generatePkcs12Key(t,v,2,i,a),m=U.des.createEncryptionCipher(y);m.start(g),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes(),s=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Wr["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,n),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,o.getBytes())])])}else{var p=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw p.algorithm=r.algorithm,p}var C=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[s,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return C};Y.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!I.validate(e,m7,n,i)){var o=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var a=I.derToOid(n.encryptionOid),s=Y.pbe.getCipher(a,n.encryptionParams,t),c=U.util.createBuffer(n.encryptedData);return s.update(c),s.finish()&&(r=I.fromDer(s.output)),r};Y.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(e).getBytes()};return U.pem.encode(r,{maxline:t})};Y.encryptedPrivateKeyFromPem=function(e){var t=U.pem.decode(e)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=t.type,r}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return I.fromDer(t.body)};Y.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Y.wrapRsaPrivateKey(Y.privateKeyToAsn1(e));return n=Y.encryptPrivateKeyInfo(n,t,r),Y.encryptedPrivateKeyToPem(n)}var i,o,a,s;switch(r.algorithm){case"aes128":i="AES-128-CBC",a=16,o=U.random.getBytesSync(16),s=U.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",a=24,o=U.random.getBytesSync(16),s=U.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",a=32,o=U.random.getBytesSync(16),s=U.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",a=24,o=U.random.getBytesSync(8),s=U.des.createEncryptionCipher;break;case"des":i="DES-CBC",a=8,o=U.random.getBytesSync(8),s=U.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=U.pbe.opensslDeriveBytes(t,o.substr(0,8),a),f=s(u);f.start(o),f.update(I.toDer(Y.privateKeyToAsn1(e))),f.finish();var l={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:U.util.bytesToHex(o).toUpperCase()},body:f.output.getBytes()};return U.pem.encode(l)};Y.decryptRsaPrivateKey=function(e,t){var r=null,n=U.pem.decode(e)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var o,a;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,a=U.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,a=U.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,a=U.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,a=U.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,a=U.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,a=function(l){return U.rc2.createDecryptionCipher(l,40)};break;case"RC2-64-CBC":o=8,a=function(l){return U.rc2.createDecryptionCipher(l,64)};break;case"RC2-128-CBC":o=16,a=function(l){return U.rc2.createDecryptionCipher(l,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 s=U.util.hexToBytes(n.dekInfo.parameters),c=U.pbe.opensslDeriveBytes(t,s.substr(0,8),o),u=a(c);if(u.start(s),u.update(U.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=Y.decryptPrivateKeyInfo(I.fromDer(r),t):r=I.fromDer(r),r!==null&&(r=Y.privateKeyFromAsn1(r)),r};Y.pbe.generatePkcs12Key=function(e,t,r,n,i,o){var a,s;if(typeof o>"u"||o===null){if(!("sha1"in U.md))throw new Error('"sha1" hash algorithm unavailable.');o=U.md.sha1.create()}var c=o.digestLength,u=o.blockLength,f=new U.util.ByteBuffer,l=new U.util.ByteBuffer;if(e!=null){for(s=0;s<e.length;s++)l.putInt16(e.charCodeAt(s));l.putInt16(0)}var p=l.length(),d=t.length(),h=new U.util.ByteBuffer;h.fillWithByte(r,u);var y=u*Math.ceil(d/u),g=new U.util.ByteBuffer;for(s=0;s<y;s++)g.putByte(t.at(s%d));var m=u*Math.ceil(p/u),x=new U.util.ByteBuffer;for(s=0;s<m;s++)x.putByte(l.at(s%p));var v=g;v.putBuffer(x);for(var C=Math.ceil(i/c),E=1;E<=C;E++){var S=new U.util.ByteBuffer;S.putBytes(h.bytes()),S.putBytes(v.bytes());for(var L=0;L<n;L++)o.start(),o.update(S.getBytes()),S=o.digest();var N=new U.util.ByteBuffer;for(s=0;s<u;s++)N.putByte(S.at(s%c));var $=Math.ceil(d/u)+Math.ceil(p/u),G=new U.util.ByteBuffer;for(a=0;a<$;a++){var q=new U.util.ByteBuffer(v.getBytes(u)),j=511;for(s=N.length()-1;s>=0;s--)j=j>>8,j+=N.at(s)+q.at(s),q.setAt(s,j&255);G.putBuffer(q)}v=G,f.putBuffer(S)}return f.truncate(f.length()-i),f};Y.pbe.getCipher=function(e,t,r){switch(e){case Y.oids.pkcs5PBES2:return Y.pbe.getCipherForPBES2(e,t,r);case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:return Y.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Y.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!I.validate(t,x7,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}if(e=I.derToOid(n.kdfOid),e!==Y.oids.pkcs5PBKDF2){var o=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw o.oid=e,o.supportedOids=["pkcs5PBKDF2"],o}if(e=I.derToOid(n.encOid),e!==Y.oids["aes128-CBC"]&&e!==Y.oids["aes192-CBC"]&&e!==Y.oids["aes256-CBC"]&&e!==Y.oids["des-EDE3-CBC"]&&e!==Y.oids.desCBC){var o=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw o.oid=e,o.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],o}var a=n.kdfSalt,s=U.util.createBuffer(n.kdfIterationCount);s=s.getInt(s.length()<<3);var c,u;switch(Y.oids[e]){case"aes128-CBC":c=16,u=U.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=U.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=U.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=U.des.createDecryptionCipher;break;case"desCBC":c=8,u=U.des.createDecryptionCipher;break}var f=p4(n.prfOid),l=U.pkcs5.pbkdf2(r,a,s,c,f),p=n.encIv,d=u(l);return d.start(p),d};Y.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!I.validate(t,v7,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var a=U.util.createBuffer(n.salt),s=U.util.createBuffer(n.iterations);s=s.getInt(s.length()<<3);var c,u,f;switch(e){case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,f=U.des.startDecrypting;break;case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,f=function(y,g){var m=U.rc2.createDecryptionCipher(y,40);return m.start(g,null),m};break;default:var o=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw o.oid=e,o}var l=p4(n.prfOid),p=Y.pbe.generatePkcs12Key(r,a,1,s,c,l);l.start();var d=Y.pbe.generatePkcs12Key(r,a,2,s,u,l);return f(p,d)};Y.pbe.opensslDeriveBytes=function(e,t,r,n){if(typeof n>"u"||n===null){if(!("md5"in U.md))throw new Error('"md5" hash algorithm unavailable.');n=U.md.md5.create()}t===null&&(t="");for(var i=[d4(n,e+t)],o=16,a=1;o<r;++a,o+=16)i.push(d4(n,i[a-1]+e+t));return i.join("").substr(0,r)};function d4(e,t){return e.start().update(t).digest().getBytes()}function p4(e){var t;if(!e)t="hmacWithSHA1";else if(t=Y.oids[I.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return y4(t)}function y4(e){var t=U.md;switch(e){case"hmacWithSHA224":t=U.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function b7(e,t,r,n){var i=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,e),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,U.util.hexToBytes(r.toString(16))),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Y.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var e5=nt((bv,t5)=>{var vt=ft();Gr();kt();var b0=t5.exports=vt.sha512=vt.sha512||{};vt.md.sha512=vt.md.algorithms.sha512=b0;var J4=vt.sha384=vt.sha512.sha384=vt.sha512.sha384||{};J4.create=function(){return b0.create("SHA-384")};vt.md.sha384=vt.md.algorithms.sha384=J4;vt.sha512.sha256=vt.sha512.sha256||{create:function(){return b0.create("SHA-512/256")}};vt.md["sha512/256"]=vt.md.algorithms["sha512/256"]=vt.sha512.sha256;vt.sha512.sha224=vt.sha512.sha224||{create:function(){return b0.create("SHA-512/224")}};vt.md["sha512/224"]=vt.md.algorithms["sha512/224"]=vt.sha512.sha224;b0.create=function(e){if(j4||Pl(),typeof e>"u"&&(e="SHA-512"),!(e in tn))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=tn[e],r=null,n=vt.util.createBuffer(),i=new Array(80),o=0;o<80;++o)i[o]=new Array(2);var a=64;switch(e){case"SHA-384":a=48;break;case"SHA-512/256":a=32;break;case"SHA-512/224":a=28;break}var s={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:a,messageLength:0,fullMessageLength:null,messageLengthSize:16};return s.start=function(){s.messageLength=0,s.fullMessageLength=s.messageLength128=[];for(var c=s.messageLengthSize/4,u=0;u<c;++u)s.fullMessageLength.push(0);n=vt.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return s},s.start(),s.update=function(c,u){u==="utf8"&&(c=vt.util.encodeUtf8(c));var f=c.length;s.messageLength+=f,f=[f/4294967296>>>0,f>>>0];for(var l=s.fullMessageLength.length-1;l>=0;--l)s.fullMessageLength[l]+=f[1],f[1]=f[0]+(s.fullMessageLength[l]/4294967296>>>0),s.fullMessageLength[l]=s.fullMessageLength[l]>>>0,f[0]=f[1]/4294967296>>>0;return n.putBytes(c),X4(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),s},s.digest=function(){var c=vt.util.createBuffer();c.putBytes(n.bytes());var u=s.fullMessageLength[s.fullMessageLength.length-1]+s.messageLengthSize,f=u&s.blockLength-1;c.putBytes(Is.substr(0,s.blockLength-f));for(var l,p,d=s.fullMessageLength[0]*8,h=0;h<s.fullMessageLength.length-1;++h)l=s.fullMessageLength[h+1]*8,p=l/4294967296>>>0,d+=p,c.putInt32(d>>>0),d=l>>>0;c.putInt32(d);for(var y=new Array(r.length),h=0;h<r.length;++h)y[h]=r[h].slice(0);X4(y,i,c);var g=vt.util.createBuffer(),m;e==="SHA-512"?m=y.length:e==="SHA-384"?m=y.length-2:m=y.length-4;for(var h=0;h<m;++h)g.putInt32(y[h][0]),(h!==m-1||e!=="SHA-512/224")&&g.putInt32(y[h][1]);return g},s};var Is=null,j4=!1,As=null,tn=null;function Pl(){Is=String.fromCharCode(128),Is+=vt.util.fillString(String.fromCharCode(0),128),As=[[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]],tn={},tn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],tn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],tn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],tn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],j4=!0}function X4(e,t,r){for(var n,i,o,a,s,c,u,f,l,p,d,h,y,g,m,x,v,C,E,S,L,N,$,G,q,j,lt,Qt,T,D,P,k,A,F,M,H=r.length();H>=128;){for(T=0;T<16;++T)t[T][0]=r.getInt32()>>>0,t[T][1]=r.getInt32()>>>0;for(;T<80;++T)k=t[T-2],D=k[0],P=k[1],n=((D>>>19|P<<13)^(P>>>29|D<<3)^D>>>6)>>>0,i=((D<<13|P>>>19)^(P<<3|D>>>29)^(D<<26|P>>>6))>>>0,F=t[T-15],D=F[0],P=F[1],o=((D>>>1|P<<31)^(D>>>8|P<<24)^D>>>7)>>>0,a=((D<<31|P>>>1)^(D<<24|P>>>8)^(D<<25|P>>>7))>>>0,A=t[T-7],M=t[T-16],P=i+A[1]+a+M[1],t[T][0]=n+A[0]+o+M[0]+(P/4294967296>>>0)>>>0,t[T][1]=P>>>0;for(y=e[0][0],g=e[0][1],m=e[1][0],x=e[1][1],v=e[2][0],C=e[2][1],E=e[3][0],S=e[3][1],L=e[4][0],N=e[4][1],$=e[5][0],G=e[5][1],q=e[6][0],j=e[6][1],lt=e[7][0],Qt=e[7][1],T=0;T<80;++T)u=((L>>>14|N<<18)^(L>>>18|N<<14)^(N>>>9|L<<23))>>>0,f=((L<<18|N>>>14)^(L<<14|N>>>18)^(N<<23|L>>>9))>>>0,l=(q^L&($^q))>>>0,p=(j^N&(G^j))>>>0,s=((y>>>28|g<<4)^(g>>>2|y<<30)^(g>>>7|y<<25))>>>0,c=((y<<4|g>>>28)^(g<<30|y>>>2)^(g<<25|y>>>7))>>>0,d=(y&m|v&(y^m))>>>0,h=(g&x|C&(g^x))>>>0,P=Qt+f+p+As[T][1]+t[T][1],n=lt+u+l+As[T][0]+t[T][0]+(P/4294967296>>>0)>>>0,i=P>>>0,P=c+h,o=s+d+(P/4294967296>>>0)>>>0,a=P>>>0,lt=q,Qt=j,q=$,j=G,$=L,G=N,P=S+i,L=E+n+(P/4294967296>>>0)>>>0,N=P>>>0,E=v,S=C,v=m,C=x,m=y,x=g,P=i+a,y=n+o+(P/4294967296>>>0)>>>0,g=P>>>0;P=e[0][1]+g,e[0][0]=e[0][0]+y+(P/4294967296>>>0)>>>0,e[0][1]=P>>>0,P=e[1][1]+x,e[1][0]=e[1][0]+m+(P/4294967296>>>0)>>>0,e[1][1]=P>>>0,P=e[2][1]+C,e[2][0]=e[2][0]+v+(P/4294967296>>>0)>>>0,e[2][1]=P>>>0,P=e[3][1]+S,e[3][0]=e[3][0]+E+(P/4294967296>>>0)>>>0,e[3][1]=P>>>0,P=e[4][1]+N,e[4][0]=e[4][0]+L+(P/4294967296>>>0)>>>0,e[4][1]=P>>>0,P=e[5][1]+G,e[5][0]=e[5][0]+$+(P/4294967296>>>0)>>>0,e[5][1]=P>>>0,P=e[6][1]+j,e[6][0]=e[6][0]+q+(P/4294967296>>>0)>>>0,e[6][1]=P>>>0,P=e[7][1]+Qt,e[7][0]=e[7][0]+lt+(P/4294967296>>>0)>>>0,e[7][1]=P>>>0,H-=128}}});var B5=nt((Jb,C5)=>{C5.exports=function(e){if(!e)throw Error("hashlru must have a max value, of type number, greater than 0");var t=0,r=Object.create(null),n=Object.create(null);function i(o,a){r[o]=a,t++,t>=e&&(t=0,n=r,r=Object.create(null))}return{has:function(o){return r[o]!==void 0||n[o]!==void 0},remove:function(o){r[o]!==void 0&&(r[o]=void 0),n[o]!==void 0&&(n[o]=void 0)},get:function(o){var a=r[o];if(a!==void 0)return a;if((a=n[o])!==void 0)return i(o,a),a},set:function(o,a){r[o]!==void 0?r[o]=a:i(o,a)},clear:function(){r=Object.create(null),n=Object.create(null)}}}});var _5=nt((jb,Us)=>{"use strict";var l9=Object.prototype.hasOwnProperty,se="~";function C0(){}Object.create&&(C0.prototype=Object.create(null),new C0().__proto__||(se=!1));function h9(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function T5(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new h9(r,n||e,i),a=se?se+t:t;return e._events[a]?e._events[a].fn?e._events[a]=[e._events[a],o]:e._events[a].push(o):(e._events[a]=o,e._eventsCount++),e}function Z1(e,t){--e._eventsCount===0?e._events=new C0:delete e._events[t]}function ee(){this._events=new C0,this._eventsCount=0}ee.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)l9.call(r,n)&&t.push(se?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};ee.prototype.listeners=function(t){var r=se?se+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,a=new Array(o);i<o;i++)a[i]=n[i].fn;return a};ee.prototype.listenerCount=function(t){var r=se?se+t:t,n=this._events[r];return n?n.fn?1:n.length:0};ee.prototype.emit=function(t,r,n,i,o,a){var s=se?se+t:t;if(!this._events[s])return!1;var c=this._events[s],u=arguments.length,f,l;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,o),!0;case 6:return c.fn.call(c.context,r,n,i,o,a),!0}for(l=1,f=new Array(u-1);l<u;l++)f[l-1]=arguments[l];c.fn.apply(c.context,f)}else{var p=c.length,d;for(l=0;l<p;l++)switch(c[l].once&&this.removeListener(t,c[l].fn,void 0,!0),u){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,r);break;case 3:c[l].fn.call(c[l].context,r,n);break;case 4:c[l].fn.call(c[l].context,r,n,i);break;default:if(!f)for(d=1,f=new Array(u-1);d<u;d++)f[d-1]=arguments[d];c[l].fn.apply(c[l].context,f)}}return!0};ee.prototype.on=function(t,r,n){return T5(this,t,r,n,!1)};ee.prototype.once=function(t,r,n){return T5(this,t,r,n,!0)};ee.prototype.removeListener=function(t,r,n,i){var o=se?se+t:t;if(!this._events[o])return this;if(!r)return Z1(this,o),this;var a=this._events[o];if(a.fn)a.fn===r&&(!i||a.once)&&(!n||a.context===n)&&Z1(this,o);else{for(var s=0,c=[],u=a.length;s<u;s++)(a[s].fn!==r||i&&!a[s].once||n&&a[s].context!==n)&&c.push(a[s]);c.length?this._events[o]=c.length===1?c[0]:c:Z1(this,o)}return this};ee.prototype.removeAllListeners=function(t){var r;return t?(r=se?se+t:t,this._events[r]&&Z1(this,r)):(this._events=new C0,this._eventsCount=0),this};ee.prototype.off=ee.prototype.removeListener;ee.prototype.addListener=ee.prototype.on;ee.prefixed=se;ee.EventEmitter=ee;typeof Us<"u"&&(Us.exports=ee)});var Y9={};Ft(Y9,{EventTypes:()=>t2,MessageType:()=>e2,Record:()=>Vt,kadDHT:()=>Q9});var l2=Symbol.for("@libp2p/content-routing");var F0=class e extends Error{code;type;constructor(t="The operation was aborted"){super(t),this.code=e.code,this.type=e.type}static code="ABORT_ERR";static type="aborted"},R=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var Xt=class extends EventTarget{#t=new Map;listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#t.get(t);i==null&&(i=[],this.#t.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#t.get(t);i!=null&&(i=i.filter(({callback:o})=>o!==r),this.#t.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#t.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new Pt(t,r))}},Ai=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},Pt=globalThis.CustomEvent??Ai;var sn=(e,...t)=>{try{[...t]}catch{}};var h2=Symbol.for("@libp2p/peer-discovery");var d2=Symbol.for("@libp2p/peer-routing");var le=St(x2(),1);var Ri={};Ft(Ri,{base32:()=>ve,base32hex:()=>L6,base32hexpad:()=>k6,base32hexpadupper:()=>D6,base32hexupper:()=>N6,base32pad:()=>R6,base32padupper:()=>P6,base32upper:()=>_6,base32z:()=>O6});function I6(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),a=o.charCodeAt(0);if(r[a]!==255)throw new TypeError(o+" is ambiguous");r[a]=i}var s=e.length,c=e.charAt(0),u=Math.log(s)/Math.log(256),f=Math.log(256)/Math.log(s);function l(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var y=0,g=0,m=0,x=h.length;m!==x&&h[m]===0;)m++,y++;for(var v=(x-m)*f+1>>>0,C=new Uint8Array(v);m!==x;){for(var E=h[m],S=0,L=v-1;(E!==0||S<g)&&L!==-1;L--,S++)E+=256*C[L]>>>0,C[L]=E%s>>>0,E=E/s>>>0;if(E!==0)throw new Error("Non-zero carry");g=S,m++}for(var N=v-g;N!==v&&C[N]===0;)N++;for(var $=c.repeat(y);N<v;++N)$+=e.charAt(C[N]);return $}function p(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var y=0;if(h[y]!==" "){for(var g=0,m=0;h[y]===c;)g++,y++;for(var x=(h.length-y)*u+1>>>0,v=new Uint8Array(x);h[y];){var C=r[h.charCodeAt(y)];if(C===255)return;for(var E=0,S=x-1;(C!==0||E<m)&&S!==-1;S--,E++)C+=s*v[S]>>>0,v[S]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");m=E,y++}if(h[y]!==" "){for(var L=x-m;L!==x&&v[L]===0;)L++;for(var N=new Uint8Array(g+(x-L)),$=g;L!==x;)N[$++]=v[L++];return N}}}function d(h){var y=p(h);if(y)return y;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:p,decode:d}}var A6=I6,C6=A6,v2=C6;var ah=new Uint8Array(0);var b2=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},Ye=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};var w2=e=>new TextEncoder().encode(e),E2=e=>new TextDecoder().decode(e);var Ci=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Bi=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return I2(this,t)}},Ti=class{constructor(t){this.decoders=t}or(t){return I2(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},I2=(e,t)=>new Ti({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),_i=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Ci(t,r,n),this.decoder=new Bi(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},fn=({name:e,prefix:t,encode:r,decode:n})=>new _i(e,t,r,n),pr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=v2(r,t);return fn({prefix:e,name:t,encode:n,decode:o=>Ye(i(o))})},B6=(e,t,r,n)=>{let i={};for(let f=0;f<t.length;++f)i[t[f]]=f;let o=e.length;for(;e[o-1]==="=";)--o;let a=new Uint8Array(o*r/8|0),s=0,c=0,u=0;for(let f=0;f<o;++f){let l=i[e[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|l,s+=r,s>=8&&(s-=8,a[u++]=255&c>>s)}if(s>=r||255&c<<8-s)throw new SyntaxError("Unexpected end of data");return a},T6=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,o="",a=0,s=0;for(let c=0;c<e.length;++c)for(s=s<<8|e[c],a+=8;a>r;)a-=r,o+=t[i&s>>a];if(a&&(o+=t[i&s<<r-a]),n)for(;o.length*r&7;)o+="=";return o},Bt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>fn({prefix:t,name:e,encode(i){return T6(i,n,r)},decode(i){return B6(i,n,r,e)}});var ve=Bt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),_6=Bt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),R6=Bt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),P6=Bt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),L6=Bt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),N6=Bt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),k6=Bt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),D6=Bt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),O6=Bt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Pi={};Ft(Pi,{base58btc:()=>Lt,base58flickr:()=>U6});var Lt=pr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),U6=pr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Li={};Ft(Li,{base64:()=>Or,base64pad:()=>F6,base64url:()=>K6,base64urlpad:()=>M6});var Or=Bt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),F6=Bt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),K6=Bt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),M6=Bt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});le.default.formatters.b=e=>e==null?"undefined":Lt.baseEncode(e);le.default.formatters.t=e=>e==null?"undefined":ve.baseEncode(e);le.default.formatters.m=e=>e==null?"undefined":Or.baseEncode(e);le.default.formatters.p=e=>e==null?"undefined":e.toString();le.default.formatters.c=e=>e==null?"undefined":e.toString();le.default.formatters.k=e=>e==null?"undefined":e.toString();le.default.formatters.a=e=>e==null?"undefined":e.toString();function V6(e){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}function X(e){let t=V6(`${e}:trace`);return le.default.enabled(`${e}:trace`)&&le.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,le.default)(`${e}:trace`)),Object.assign((0,le.default)(e),{error:(0,le.default)(`${e}:error`),trace:t})}function q6(e){return e[Symbol.asyncIterator]!=null}function z6(e){if(q6(e))return(async()=>{for await(let t of e);})();for(let t of e);}var Yn=z6;function Jt(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var V0=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},ln=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new V0(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new V0(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var Ni=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function q0(e={}){return H6(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},e)}function H6(e,t){t=t??{};let r=t.onEnd,n=new ln,i,o,a,s=Jt(),c=async()=>{try{return n.isEmpty()?a?{done:!0}:await new Promise((g,m)=>{o=x=>{o=null,n.push(x);try{g(e(n))}catch(v){m(v)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{s.resolve(),s=Jt()})}},u=g=>o!=null?o(g):(n.push(g),i),f=g=>(n=new ln,o!=null?o({error:g}):(n.push({error:g}),i)),l=g=>{if(a)return i;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},p=g=>a?i:(a=!0,g!=null?f(g):u({done:!0})),d=()=>(n=new ln,p(),{done:!0}),h=g=>(p(g),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:d,throw:h,push:l,end:p,get readableLength(){return n.size},onEmpty:async g=>{let m=g?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let x,v;m!=null&&(x=new Promise((C,E)=>{v=()=>{E(new Ni)},m.addEventListener("abort",v)}));try{await Promise.race([s.promise,x])}finally{v!=null&&m!=null&&m?.removeEventListener("abort",v)}}},r==null)return i;let y=i;return i={[Symbol.asyncIterator](){return this},next(){return y.next()},throw(g){return y.throw(g),r!=null&&(r(g),r=void 0),{done:!0}},return(){return y.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(g){return y.end(g),r!=null&&(r(g),r=void 0),i},get readableLength(){return y.readableLength}},i}function $6(e){return e[Symbol.asyncIterator]!=null}function G6(...e){let t=[];for(let r of e)$6(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=q0({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var be=G6;var k2=St(A2(),1);var C2="[a-fA-F\\d:]",yr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${C2})|(?<=${C2})(?=\\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}",Kt="[a-fA-F\\d]{1,4}",z0=`
|
|
16
16
|
(?:
|
|
17
17
|
(?:${Kt}:){7}(?:${Kt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
|
|
18
18
|
(?:${Kt}:){6}(?:${we}|:${Kt}|:)| // 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
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
(?:${Kt}:){1}(?:(?::${Kt}){0,4}:${we}|(?::${Kt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
|
|
24
24
|
(?::(?:(?::${Kt}){0,5}:${we}|(?::${Kt}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
|
|
25
25
|
)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
|
|
26
|
-
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),$6=new RegExp(`(?:^${we}$)|(?:^${z0}$)`),G6=new RegExp(`^${we}$`),Q6=new RegExp(`^${z0}$`),Ni=e=>e&&e.exact?$6:new RegExp(`(?:${yr(e)}${we}${yr(e)})|(?:${yr(e)}${z0}${yr(e)})`,"g");Ni.v4=e=>e&&e.exact?G6:new RegExp(`${yr(e)}${we}${yr(e)}`,"g");Ni.v6=e=>e&&e.exact?Q6:new RegExp(`${yr(e)}${z0}${yr(e)}`,"g");var C2=Ni;var H0=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,r,n,i){return this.readAtomically(()=>{let o=0,a=0,s=this.peekChar();if(s===void 0)return;let c=s==="0",u=2**(8*i)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let p=Number.parseInt(l,t);if(!Number.isNaN(p))return p});if(f===void 0)break;if(o*=t,o+=f,o>u||(a+=1,r!==void 0&&a>r))return}if(a!==0)return!n&&c&&a>1?void 0:o})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let a=this.readSeparator(":",n,()=>this.readIPv4Addr());if(a!==void 0)return r[i]=a[0],r[i+1]=a[1],r[i+2]=a[2],r[i+3]=a[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),a=16-(n+2),[s]=t(o.subarray(0,a));return r.set(o.subarray(0,s),16-s),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var B2=45,Y6=15,hn=new H0;function ki(e){if(!(e.length>Y6))return hn.new(e).parseWith(()=>hn.readIPv4Addr())}function Di(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>B2))return hn.new(e).parseWith(()=>hn.readIPv6Addr())}function $0(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>B2))return hn.new(e).parseWith(()=>hn.readIPAddr())}function T2(e){return!!ki(e)}function _2(e){return!!Di(e)}function dn(e){return!!$0(e)}var k2=St(P2(),1),{isValid:W6,parse:Z6}=k2.default,X6=["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"],J6=X6.map(e=>new N2.Netmask(e));function j6(e){for(let t of J6)if(t.contains(e))return!0;return!1}function L2(e){return/^::$/.test(e)||/^::1$/.test(e)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(e)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(e)||/^ff([0-9a-fA-F]{2,2}):/i.test(e)}var D2=e=>{if(W6(e)){let t=Z6(e);if(t.kind()==="ipv4")return j6(t.toNormalizedString());if(t.kind()==="ipv6")return L2(e)}else if(dn(e)&&C2.v6().test(e))return L2(e)};var Zn=D2;var O2="/lan",U2="/ipfs",F2="/kad/1.0.0",K2="/dht/record",Oi="/dht/provider";function t8(e){let[t,r]=e[Symbol.asyncIterator]!=null?[e[Symbol.asyncIterator](),Symbol.asyncIterator]:[e[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[r](){return this}}}var M2=t8;function e8(e){return e[Symbol.asyncIterator]!=null}function r8(e,t){if(e8(e))return async function*(){for await(let s of e)yield t(s)}();let r=M2(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let o=t(n);if(typeof o.then=="function")return async function*(){yield await o;for await(let s of r)yield t(s)}();let a=t;return function*(){yield o;for(let s of r)yield a(s)}()}var Q0=r8;var Y0=globalThis.CustomEvent??Event;async function*Xn(e,t={}){let r=t.concurrency??1/0;r<1&&(r=1/0);let n=t.ordered==null?!1:t.ordered,i=new EventTarget,o=[],a=Jt(),s=Jt(),c=!1,u,f=!1;i.addEventListener("task-complete",()=>{s.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of e){if(o.length===r&&(a=Jt(),await a.promise),f)break;let y={done:!1};o.push(y),h().then(g=>{y.done=!0,y.ok=!0,y.value=g,i.dispatchEvent(new Y0("task-complete"))},g=>{y.done=!0,y.err=g,i.dispatchEvent(new Y0("task-complete"))})}c=!0,i.dispatchEvent(new Y0("task-complete"))}catch(h){u=h,i.dispatchEvent(new Y0("task-complete"))}});function l(){return n?o[0]?.done:!!o.find(h=>h.done)}function*p(){for(;o.length>0&&o[0].done;){let h=o[0];if(o.shift(),h.ok)yield h.value;else throw f=!0,a.resolve(),h.err;a.resolve()}}function*d(){for(;l();)for(let h=0;h<o.length;h++)if(o[h].done){let y=o[h];if(o.splice(h,1),h--,y.ok)yield y.value;else throw f=!0,a.resolve(),y.err;a.resolve()}}for(;;){if(l()||(s=Jt(),await s.promise),u!=null)throw u;if(n?yield*p():yield*d(),c&&o.length===0)break}}function Ee(e,...t){if(e==null)throw new Error("Empty pipeline");if(Ui(e)){let n=e;e=()=>n.source}else if(q2(e)||V2(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&Ui(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++)Ui(r[n])&&(r[n]=i8(r[n]));return n8(...r)}var n8=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},V2=e=>e?.[Symbol.asyncIterator]!=null,q2=e=>e?.[Symbol.iterator]!=null,Ui=e=>e==null?!1:e.sink!=null&&e.source!=null,i8=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=q0({objectMode:!0});r.then(()=>{n.end()},a=>{n.end(a)});let i,o=e.source;if(V2(o))i=async function*(){yield*o,n.end()};else if(q2(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return be(n,i())}return e.source};function dt(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}var z2=Symbol.for("@libp2p/peer-id");var Fi={};Ft(Fi,{base10:()=>o8});var o8=pr({prefix:"9",name:"base10",alphabet:"0123456789"});var Ki={};Ft(Ki,{base16:()=>s8,base16upper:()=>a8});var s8=Bt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),a8=Bt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Mi={};Ft(Mi,{base2:()=>c8});var c8=Bt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Vi={};Ft(Vi,{base256emoji:()=>d8});var H2=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}"),u8=H2.reduce((e,t,r)=>(e[r]=t,e),[]),f8=H2.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function l8(e){return e.reduce((t,r)=>(t+=u8[r],t),"")}function h8(e){let t=[];for(let r of e){let n=f8[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var d8=fn({prefix:"\u{1F680}",name:"base256emoji",encode:l8,decode:h8});var qi={};Ft(qi,{base36:()=>p8,base36upper:()=>y8});var p8=pr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),y8=pr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var zi={};Ft(zi,{base8:()=>g8});var g8=Bt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Hi={};Ft(Hi,{identity:()=>m8});var m8=fn({prefix:"\0",name:"identity",encode:e=>w2(e),decode:e=>b2(e)});var nd=new TextEncoder,id=new TextDecoder;var Gi={};Ft(Gi,{identity:()=>gr});var b8=Q2,$2=128,w8=127,E8=~w8,S8=Math.pow(2,31);function Q2(e,t,r){t=t||[],r=r||0;for(var n=r;e>=S8;)t[r++]=e&255|$2,e/=128;for(;e&E8;)t[r++]=e&255|$2,e>>>=7;return t[r]=e|0,Q2.bytes=r-n+1,t}var I8=$i,A8=128,G2=127;function $i(e,n){var r=0,n=n||0,i=0,o=n,a,s=e.length;do{if(o>=s)throw $i.bytes=0,new RangeError("Could not decode varint");a=e[o++],r+=i<28?(a&G2)<<i:(a&G2)*Math.pow(2,i),i+=7}while(a>=A8);return $i.bytes=o-n,r}var C8=Math.pow(2,7),B8=Math.pow(2,14),T8=Math.pow(2,21),_8=Math.pow(2,28),R8=Math.pow(2,35),P8=Math.pow(2,42),L8=Math.pow(2,49),N8=Math.pow(2,56),k8=Math.pow(2,63),D8=function(e){return e<C8?1:e<B8?2:e<T8?3:e<_8?4:e<R8?5:e<P8?6:e<L8?7:e<N8?8:e<k8?9:10},O8={encode:b8,decode:I8,encodingLength:D8},U8=O8,Jn=U8;var jn=(e,t=0)=>[Jn.decode(e,t),Jn.decode.bytes],pn=(e,t,r=0)=>(Jn.encode(e,t,r),t),yn=e=>Jn.encodingLength(e);var ke=(e,t)=>{let r=t.byteLength,n=yn(e),i=n+yn(r),o=new Uint8Array(i+r);return pn(e,o,0),pn(r,o,n),o.set(t,i),new gn(e,r,t,o)},Ur=e=>{let t=Ye(e),[r,n]=jn(t),[i,o]=jn(t.subarray(n)),a=t.subarray(n+o);if(a.byteLength!==i)throw new Error("Incorrect length");return new gn(r,i,a,t)},Y2=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&v2(e.bytes,r.bytes)}},gn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var W2=0,F8="identity",Z2=Ye,K8=e=>ke(W2,Z2(e)),gr={code:W2,name:F8,encode:Z2,digest:K8};var Wi={};Ft(Wi,{sha256:()=>It,sha512:()=>M8});var Yi=({name:e,code:t,encode:r})=>new Qi(e,t,r),Qi=class{constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?ke(this.code,r):r.then(n=>ke(this.code,n))}else throw Error("Unknown type, must be binary type")}};var J2=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),It=Yi({name:"sha2-256",code:18,encode:J2("SHA-256")}),M8=Yi({name:"sha2-512",code:19,encode:J2("SHA-512")});var j2=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return q8(r,Zi(e),t||Lt.encoder);default:return z8(r,Zi(e),t||ve.encoder)}};var ta=new WeakMap,Zi=e=>{let t=ta.get(e);if(t==null){let r=new Map;return ta.set(e,r),r}return t},re=class e{constructor(t,r,n,i){this.code=r,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==t0)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==H8)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:r}=this.multihash,n=ke(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&Y2(t.multihash,n.multihash)}toString(t){return j2(this,t)}toJSON(){return{"/":j2(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:o,bytes:a}=r;return new e(n,i,o,a||ea(n,i,o.bytes))}else if(r[$8]===!0){let{version:n,multihash:i,code:o}=r,a=Ur(i);return e.create(n,o,a)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==t0)throw new Error(`Version 0 CID must use dag-pb (code: ${t0}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=ea(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,t0,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,i=Ye(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),a=new gn(r.multihashCode,r.digestSize,o,i);return[r.version===0?e.createV0(a):e.createV1(r.codec,a),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[l,p]=jn(t.subarray(r));return r+=p,l},i=n(),o=t0;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let a=r,s=n(),c=n(),u=r+c,f=u-a;return{version:i,codec:o,multihashCode:s,digestSize:c,multihashSize:f,size:u}}static parse(t,r){let[n,i]=V8(t,r),o=e.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Zi(o).set(n,t),o}},V8=(e,t)=>{switch(e[0]){case"Q":{let r=t||Lt;return[Lt.prefix,r.decode(`${Lt.prefix}${e}`)]}case Lt.prefix:{let r=t||Lt;return[Lt.prefix,r.decode(e)]}case ve.prefix:{let r=t||ve;return[ve.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},q8=(e,t,r)=>{let{prefix:n}=r;if(n!==Lt.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let o=r.encode(e).slice(1);return t.set(n,o),o}else return i},z8=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let o=r.encode(e);return t.set(n,o),o}else return i},t0=112,H8=18,ea=(e,t,r)=>{let n=yn(e),i=n+yn(t),o=new Uint8Array(i+r.byteLength);return pn(e,o,0),pn(t,o,n),o.set(r,i),o},$8=Symbol.for("@ipld/js-cid/CID");var mr={...Hi,...Mi,...zi,...Fi,...Ki,..._i,...qi,...Ri,...Pi,...Vi},bd={...Wi,...Gi};var G8=Symbol.for("nodejs.util.inspect.custom"),ra=Object.values(mr).map(e=>e.decoder).reduce((e,t)=>e.or(t),mr.identity.decoder),na=114,Xi=36,Ji=37,e0=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[z2]=!0;toString(){return this.string==null&&(this.string=Lt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return re.createV1(na,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return dt(this.multihash.bytes,t);if(typeof t=="string")return Tt(t).equals(this);if(t?.multihash?.bytes!=null)return dt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[G8](){return`PeerId(${this.toString()})`}},mn=class extends e0{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},xn=class extends e0{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},vn=class extends e0{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function Tt(e,t){if(t=t??ra,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Ur(Lt.decode(`z${e}`));return e.startsWith("12D")?new xn({multihash:r}):e.startsWith("16U")?new vn({multihash:r}):new mn({multihash:r})}return Kr(ra.decode(e))}function Kr(e){try{let t=Ur(e);if(t.code===gr.code){if(t.digest.length===Xi)return new xn({multihash:t});if(t.digest.length===Ji)return new vn({multihash:t})}if(t.code===It.code)return new mn({multihash:t})}catch{return Q8(re.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function Q8(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==na)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===It.code)return new mn({multihash:e.multihash});if(t.code===gr.code){if(t.digest.length===Xi)return new xn({multihash:e.multihash});if(t.digest.length===Ji)return new vn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function ia(e,t){return e.length===Xi?new xn({multihash:ke(gr.code,e),privateKey:t}):e.length===Ji?new vn({multihash:ke(gr.code,e),privateKey:t}):new mn({multihash:await It.digest(e),publicKey:e,privateKey:t})}function We(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Ze(e=0){return globalThis.Buffer?.alloc!=null?We(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function zt(e=0){return globalThis.Buffer?.allocUnsafe!=null?We(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function sa(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var oa=sa("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),ji=sa("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=zt(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),Y8={utf8:oa,"utf-8":oa,hex:mr.base16,latin1:ji,ascii:ji,binary:ji,...mr},Z0=Y8;function z(e,t="utf8"){let r=Z0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var W8=Math.pow(2,7),Z8=Math.pow(2,14),X8=Math.pow(2,21),to=Math.pow(2,28),eo=Math.pow(2,35),ro=Math.pow(2,42),no=Math.pow(2,49),st=128,jt=127;function ae(e){if(e<W8)return 1;if(e<Z8)return 2;if(e<X8)return 3;if(e<to)return 4;if(e<eo)return 5;if(e<ro)return 6;if(e<no)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function J8(e,t,r=0){switch(ae(e)){case 8:t[r++]=e&255|st,e/=128;case 7:t[r++]=e&255|st,e/=128;case 6:t[r++]=e&255|st,e/=128;case 5:t[r++]=e&255|st,e/=128;case 4:t[r++]=e&255|st,e>>>=7;case 3:t[r++]=e&255|st,e>>>=7;case 2:t[r++]=e&255|st,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function j8(e,t,r=0){switch(ae(e)){case 8:t.set(r++,e&255|st),e/=128;case 7:t.set(r++,e&255|st),e/=128;case 6:t.set(r++,e&255|st),e/=128;case 5:t.set(r++,e&255|st),e/=128;case 4:t.set(r++,e&255|st),e>>>=7;case 3:t.set(r++,e&255|st),e>>>=7;case 2:t.set(r++,e&255|st),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function tc(e,t){let r=e[t],n=0;if(n+=r&jt,r<st||(r=e[t+1],n+=(r&jt)<<7,r<st)||(r=e[t+2],n+=(r&jt)<<14,r<st)||(r=e[t+3],n+=(r&jt)<<21,r<st)||(r=e[t+4],n+=(r&jt)*to,r<st)||(r=e[t+5],n+=(r&jt)*eo,r<st)||(r=e[t+6],n+=(r&jt)*ro,r<st)||(r=e[t+7],n+=(r&jt)*no,r<st))return n;throw new RangeError("Could not decode varint")}function ec(e,t){let r=e.get(t),n=0;if(n+=r&jt,r<st||(r=e.get(t+1),n+=(r&jt)<<7,r<st)||(r=e.get(t+2),n+=(r&jt)<<14,r<st)||(r=e.get(t+3),n+=(r&jt)<<21,r<st)||(r=e.get(t+4),n+=(r&jt)*to,r<st)||(r=e.get(t+5),n+=(r&jt)*eo,r<st)||(r=e.get(t+6),n+=(r&jt)*ro,r<st)||(r=e.get(t+7),n+=(r&jt)*no,r<st))return n;throw new RangeError("Could not decode varint")}function De(e,t,r=0){return t==null&&(t=zt(ae(e))),t instanceof Uint8Array?J8(e,t,r):j8(e,t,r)}function Se(e,t=0){return e instanceof Uint8Array?tc(e,t):ec(e,t)}function gt(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=zt(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return We(r)}var Wd=parseInt("0xFFFF",16),Zd=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function pt(e,t="utf8"){let r=Z0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?We(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var ua=T2,sc=_2,io=function(e){let t=0;if(e=e.toString().trim(),ua(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(sc(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=ua(r[n]),a;o&&(a=io(r[n]),r[n]=z(a.slice(0,2),"base16")),a!=null&&++n<8&&r.splice(n,0,z(a.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(t+16);for(n=0;n<r.length;n++){let o=parseInt(r[n],16);i[t++]=o>>8&255,i[t++]=o&255}return i}throw new Error("invalid ip address")},fa=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let o=0;o<r;o++)i.push(e[t+o]);return i.join(".")}if(r===16){let i=[];for(let o=0;o<r;o+=2)i.push(n.getUint16(t+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var bn={},oo={},cc=[[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"]];cc.forEach(e=>{let t=uc(...e);oo[t.code]=t,bn[t.name]=t});function uc(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function lt(e){if(typeof e=="number"){if(oo[e]!=null)return oo[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(bn[e]!=null)return bn[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var kp=lt("ip4"),Dp=lt("ip6"),Op=lt("ipcidr");function ao(e,t){switch(lt(e).code){case 4:case 41:return lc(t);case 42:return da(t);case 6:case 273:case 33:case 132:return ya(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return da(t);case 421:return yc(t);case 444:return pa(t);case 445:return pa(t);case 466:return pc(t);default:return z(t,"base16")}}function co(e,t){switch(lt(e).code){case 4:return la(t);case 41:return la(t);case 42:return ha(t);case 6:case 273:case 33:case 132:return uo(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return ha(t);case 421:return hc(t);case 444:return gc(t);case 445:return mc(t);case 466:return dc(t);default:return pt(t,"base16")}}var so=Object.values(mr).map(e=>e.decoder),fc=function(){let e=so[0].or(so[1]);return so.slice(2).forEach(t=>e=e.or(t)),e}();function la(e){if(!dn(e))throw new Error("invalid ip address");return io(e)}function lc(e){let t=fa(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!dn(t))throw new Error("invalid ip address");return t}function uo(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function ya(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function ha(e){let t=pt(e),r=Uint8Array.from(De(t.length));return gt([r,t],r.length+t.length)}function da(e){let t=Se(e);if(e=e.slice(ae(t)),e.length!==t)throw new Error("inconsistent lengths");return z(e)}function hc(e){let t;e[0]==="Q"||e[0]==="1"?t=Ur(Lt.decode(`z${e}`)).bytes:t=re.parse(e).multihash.bytes;let r=Uint8Array.from(De(t.length));return gt([r,t],r.length+t.length)}function dc(e){let t=fc.decode(e),r=Uint8Array.from(De(t.length));return gt([r,t],r.length+t.length)}function pc(e){let t=Se(e),r=e.slice(ae(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+z(r,"base64url")}function yc(e){let t=Se(e),r=e.slice(ae(t));if(r.length!==t)throw new Error("inconsistent lengths");return z(r,"base58btc")}function gc(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=ve.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=uo(n);return gt([r,i],r.length+i.length)}function mc(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=ve.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=uo(n);return gt([r,i],r.length+i.length)}function pa(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=z(t,"base32"),i=ya(r);return`${n}:${i}`}function ga(e){e=fo(e);let t=[],r=[],n=null,i=e.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o<i.length;o++){let a=i[o],s=lt(a);if(s.size===0){t.push([s.code]),r.push([s.code]);continue}if(o++,o>=i.length)throw xa("invalid address: "+e);if(s.path===!0){n=fo(i.slice(o).join("/")),t.push([s.code,co(s.code,n)]),r.push([s.code,n]);break}let c=co(s.code,i[o]);t.push([s.code,c]),r.push([s.code,ao(s.code,c)])}return{string:ma(r),bytes:ho(t),tuples:t,stringTuples:r,path:n}}function lo(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=Se(e,i),a=ae(o),s=lt(o),c=xc(s,e.slice(i+a));if(c===0){t.push([o]),r.push([o]),i+=a;continue}let u=e.slice(i+a,i+a+c);if(i+=c+a,i>e.length)throw xa("Invalid address Uint8Array: "+z(e,"base16"));t.push([o,u]);let f=ao(o,u);if(r.push([o,f]),s.path===!0){n=f;break}}return{bytes:Uint8Array.from(e),string:ma(r),tuples:t,stringTuples:r,path:n}}function ma(e){let t=[];return e.map(r=>{let n=lt(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),fo(t.join("/"))}function ho(e){return gt(e.map(t=>{let r=lt(t[0]),n=Uint8Array.from(De(r.code));return t.length>1&&t[1]!=null&&(n=gt([n,t[1]])),n}))}function xc(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=Se(t instanceof Uint8Array?t:Uint8Array.from(t));return r+ae(r)}}function fo(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function xa(e){return new Error("Error parsing address: "+e)}var vc=Symbol.for("nodejs.util.inspect.custom"),bc=[lt("dns").code,lt("dns4").code,lt("dns6").code,lt("dnsaddr").code],wc=new Map,va=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Ec(e){return!!e?.[va]}var yo=class e{bytes;#t;#e;#r;#n;[va]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=lo(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=ga(t)}else if(Ec(t))r=lo(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",a=lt("tcp"),s=lt("udp"),c=lt("ip4"),u=lt("ip6"),f=lt("dns6"),l=lt("ip6zone");for(let[d,h]of this.stringTuples())d===l.code&&(o=`%${h??""}`),bc.includes(d)&&(r=a.name,i=443,n=`${h??""}${o}`,t=d===f.code?6:4),(d===a.code||d===s.code)&&(r=lt(d).name,i=parseInt(h??"")),(d===c.code||d===u.code)&&(r=lt(d).name,n=`${h??""}${o}`,t=d===u.code?6:4);if(t==null||r==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:r,port:i}}protos(){return this.#e.map(([t])=>Object.assign({},lt(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>lt(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(ho(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===bn.p2p.code&&t.push([n,i]),n===bn["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?z(Lt.decode(`z${n}`),"base58btc"):z(re.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return dt(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=wc.get(r.name);if(n==null)throw new R(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(o=>new e(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[vc](){return`Multiaddr(${this.#t})`}};function po(e){return new yo(e)}var go=new Float32Array([-0]),xr=new Uint8Array(go.buffer);function ba(e,t,r){go[0]=e,t[r]=xr[0],t[r+1]=xr[1],t[r+2]=xr[2],t[r+3]=xr[3]}function wa(e,t){return xr[0]=e[t],xr[1]=e[t+1],xr[2]=e[t+2],xr[3]=e[t+3],go[0]}var mo=new Float64Array([-0]),te=new Uint8Array(mo.buffer);function Ea(e,t,r){mo[0]=e,t[r]=te[0],t[r+1]=te[1],t[r+2]=te[2],t[r+3]=te[3],t[r+4]=te[4],t[r+5]=te[5],t[r+6]=te[6],t[r+7]=te[7]}function Sa(e,t){return te[0]=e[t],te[1]=e[t+1],te[2]=e[t+2],te[3]=e[t+3],te[4]=e[t+4],te[5]=e[t+5],te[6]=e[t+6],te[7]=e[t+7],mo[0]}var Sc=BigInt(Number.MAX_SAFE_INTEGER),Ic=BigInt(Number.MIN_SAFE_INTEGER),ce=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return Mr;if(t<Sc&&t>Ic)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,i=t-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>Ia&&(i=0n,++n>Ia&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return Mr;let r=t<0;r&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new e(n,i)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):Mr}},Mr=new ce(0,0);Mr.toBigInt=function(){return 0n};Mr.zzEncode=Mr.zzDecode=function(){return this};Mr.length=function(){return 1};var Ia=4294967296n;function Aa(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Ca(e,t,r){if(r-t<1)return"";let i,o=[],a=0,s;for(;t<r;)s=e[t++],s<128?o[a++]=s:s>191&&s<224?o[a++]=(s&31)<<6|e[t++]&63:s>239&&s<365?(s=((s&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,o[a++]=55296+(s>>10),o[a++]=56320+(s&1023)):o[a++]=(s&15)<<12|(e[t++]&63)<<6|e[t++]&63,a>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,o)),a=0);return i!=null?(a>0&&i.push(String.fromCharCode.apply(String,o.slice(0,a))),i.join("")):String.fromCharCode.apply(String,o.slice(0,a))}function xo(e,t,r){let n=r,i,o;for(let a=0;a<e.length;++a)i=e.charCodeAt(a),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((o=e.charCodeAt(a+1))&64512)===56320?(i=65536+((i&1023)<<10)+(o&1023),++a,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=i&63|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=i&63|128);return r-n}function Ie(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function X0(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var vo=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Ie(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Ie(this,4);return X0(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ie(this,4);return X0(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ie(this,4);let t=wa(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Ie(this,4);let t=Sa(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Ie(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return Ca(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Ie(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Ie(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new ce(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Ie(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw Ie(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ie(this,8);let t=X0(this.buf,this.pos+=4),r=X0(this.buf,this.pos+=4);return new ce(t,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){return this.readLongVarint().toNumber(!0)}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function bo(e){return new vo(e instanceof Uint8Array?e:e.subarray())}function Oe(e,t){let r=bo(e);return t.decode(r)}function wo(e){let t=e??8192,r=t>>>1,n,i=t;return function(a){if(a<1||a>r)return zt(a);i+a>t&&(n=zt(t),i=0);let s=n.subarray(i,i+=a);return i&7&&(i=(i|7)+1),s}}var Vr=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Eo(){}var Io=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Ac=wo();function Cc(e){return globalThis.Buffer!=null?zt(e):Ac(e)}var o0=class{len;head;tail;states;constructor(){this.len=0,this.head=new Vr(Eo,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new Vr(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Ao((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(n0,10,ce.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=ce.fromBigInt(t);return this._push(n0,r.length(),r)}uint64Number(t){let r=ce.fromNumber(t);return this._push(n0,r.length(),r)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=ce.fromBigInt(t).zzEncode();return this._push(n0,r.length(),r)}sint64Number(t){let r=ce.fromNumber(t).zzEncode();return this._push(n0,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(So,1,t?1:0)}fixed32(t){return this._push(i0,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=ce.fromBigInt(t);return this._push(i0,4,r.lo)._push(i0,4,r.hi)}fixed64Number(t){let r=ce.fromNumber(t);return this._push(i0,4,r.lo)._push(i0,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(ba,4,t)}double(t){return this._push(Ea,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(So,1,0):this.uint32(r)._push(Tc,r,t)}string(t){let r=Aa(t);return r!==0?this.uint32(r)._push(xo,r,t):this._push(So,1,0)}fork(){return this.states=new Io(this),this.head=this.tail=new Vr(Eo,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Vr(Eo,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=Cc(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function So(e,t,r){t[r]=e&255}function Bc(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var Ao=class extends Vr{next;constructor(t,r){super(Bc,t,r),this.next=void 0}};function n0(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function i0(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function Tc(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(o0.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(_c,t,e),this},o0.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(Rc,t,e),this});function _c(e,t,r){t.set(e,r)}function Rc(e,t,r){e.length<40?xo(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(pt(e),r)}function Co(){return new o0}function Ue(e,t){let r=Co();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var wn;(function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"})(wn||(wn={}));function J0(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function En(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(o,a){let s=t(o);a.int32(s)},n=function(o){let a=o.int32();return t(a)};return J0("enum",wn.VARINT,r,n)}function Fe(e,t){return J0("message",wn.LENGTH_DELIMITED,e,t)}var s0;(function(e){let t;e.codec=()=>(t==null&&(t=Fe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&r.key.byteLength>0&&(n.uint32(10),n.bytes(r.key)),r.value!=null&&r.value.byteLength>0&&(n.uint32(18),n.bytes(r.value)),r.timeReceived!=null&&r.timeReceived!==""&&(n.uint32(42),n.string(r.timeReceived)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={key:new Uint8Array(0),value:new Uint8Array(0),timeReceived:""},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.key=r.bytes();break;case 2:i.value=r.bytes();break;case 5:i.timeReceived=r.string();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Ue(r,e.codec()),e.decode=r=>Oe(r,e.codec())})(s0||(s0={}));function Ta(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),i=String(e.getUTCHours()).padStart(2,"0"),o=String(e.getUTCMinutes()).padStart(2,"0"),a=String(e.getUTCSeconds()).padStart(2,"0"),s=e.getUTCMilliseconds(),c=String(s*1e3*1e3).padStart(9,"0");return`${t}-${r}-${n}T${i}:${o}:${a}.${c}Z`}function _a(e){let t=new RegExp("(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d+)Z"),r=String(e).trim().match(t);if(r==null)throw new Error("Invalid format");let n=parseInt(r[1],10),i=parseInt(r[2],10)-1,o=parseInt(r[3],10),a=parseInt(r[4],10),s=parseInt(r[5],10),c=parseInt(r[6],10),u=parseInt(r[7].slice(0,-6),10);return new Date(Date.UTC(n,i,o,a,s,c,u))}var Vt=class e{key;value;timeReceived;constructor(t,r,n){if(!(t instanceof Uint8Array))throw new Error("key must be a Uint8Array");if(!(r instanceof Uint8Array))throw new Error("value must be a Uint8Array");this.key=t,this.value=r,this.timeReceived=n}serialize(){return s0.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:Ta(this.timeReceived)}}static deserialize(t){let r=s0.decode(t);return new e(r.key,r.value,new Date(r.timeReceived))}static fromDeserialized(t){let r=_a(t.timeReceived);if(t.key==null)throw new Error("key missing from deserialized object");if(t.value==null)throw new Error("value missing from deserialized object");return new e(t.key,t.value,r)}};var Ra;(function(e){let t;e.codec=()=>(t==null&&(t=Fe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&(n.uint32(10),n.bytes(r.key)),r.value!=null&&(n.uint32(18),n.bytes(r.value)),r.author!=null&&(n.uint32(26),n.bytes(r.author)),r.signature!=null&&(n.uint32(34),n.bytes(r.signature)),r.timeReceived!=null&&(n.uint32(42),n.string(r.timeReceived)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.key=r.bytes();break;case 2:i.value=r.bytes();break;case 3:i.author=r.bytes();break;case 4:i.signature=r.bytes();break;case 5:i.timeReceived=r.string();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Ue(r,e.codec()),e.decode=r=>Oe(r,e.codec())})(Ra||(Ra={}));var vr;(function(e){let t;(function(s){s.PUT_VALUE="PUT_VALUE",s.GET_VALUE="GET_VALUE",s.ADD_PROVIDER="ADD_PROVIDER",s.GET_PROVIDERS="GET_PROVIDERS",s.FIND_NODE="FIND_NODE",s.PING="PING"})(t=e.MessageType||(e.MessageType={}));let r;(function(s){s[s.PUT_VALUE=0]="PUT_VALUE",s[s.GET_VALUE=1]="GET_VALUE",s[s.ADD_PROVIDER=2]="ADD_PROVIDER",s[s.GET_PROVIDERS=3]="GET_PROVIDERS",s[s.FIND_NODE=4]="FIND_NODE",s[s.PING=5]="PING"})(r||(r={})),function(s){s.codec=()=>En(r)}(t=e.MessageType||(e.MessageType={}));let n;(function(s){s.NOT_CONNECTED="NOT_CONNECTED",s.CONNECTED="CONNECTED",s.CAN_CONNECT="CAN_CONNECT",s.CANNOT_CONNECT="CANNOT_CONNECT"})(n=e.ConnectionType||(e.ConnectionType={}));let i;(function(s){s[s.NOT_CONNECTED=0]="NOT_CONNECTED",s[s.CONNECTED=1]="CONNECTED",s[s.CAN_CONNECT=2]="CAN_CONNECT",s[s.CANNOT_CONNECT=3]="CANNOT_CONNECT"})(i||(i={})),function(s){s.codec=()=>En(i)}(n=e.ConnectionType||(e.ConnectionType={}));let o;(function(s){let c;s.codec=()=>(c==null&&(c=Fe((u,f,l={})=>{if(l.lengthDelimited!==!1&&f.fork(),u.id!=null&&(f.uint32(10),f.bytes(u.id)),u.addrs!=null)for(let p of u.addrs)f.uint32(18),f.bytes(p);u.connection!=null&&(f.uint32(24),e.ConnectionType.codec().encode(u.connection,f)),l.lengthDelimited!==!1&&f.ldelim()},(u,f)=>{let l={addrs:[]},p=f==null?u.len:u.pos+f;for(;u.pos<p;){let d=u.uint32();switch(d>>>3){case 1:l.id=u.bytes();break;case 2:l.addrs.push(u.bytes());break;case 3:l.connection=e.ConnectionType.codec().decode(u);break;default:u.skipType(d&7);break}}return l})),c),s.encode=u=>Ue(u,s.codec()),s.decode=u=>Oe(u,s.codec())})(o=e.Peer||(e.Peer={}));let a;e.codec=()=>(a==null&&(a=Fe((s,c,u={})=>{if(u.lengthDelimited!==!1&&c.fork(),s.type!=null&&(c.uint32(8),e.MessageType.codec().encode(s.type,c)),s.clusterLevelRaw!=null&&(c.uint32(80),c.int32(s.clusterLevelRaw)),s.key!=null&&(c.uint32(18),c.bytes(s.key)),s.record!=null&&(c.uint32(26),c.bytes(s.record)),s.closerPeers!=null)for(let f of s.closerPeers)c.uint32(66),e.Peer.codec().encode(f,c);if(s.providerPeers!=null)for(let f of s.providerPeers)c.uint32(74),e.Peer.codec().encode(f,c);u.lengthDelimited!==!1&&c.ldelim()},(s,c)=>{let u={closerPeers:[],providerPeers:[]},f=c==null?s.len:s.pos+c;for(;s.pos<f;){let l=s.uint32();switch(l>>>3){case 1:u.type=e.MessageType.codec().decode(s);break;case 10:u.clusterLevelRaw=s.int32();break;case 2:u.key=s.bytes();break;case 3:u.record=s.bytes();break;case 8:u.closerPeers.push(e.Peer.codec().decode(s,s.uint32()));break;case 9:u.providerPeers.push(e.Peer.codec().decode(s,s.uint32()));break;default:s.skipType(l&7);break}}return u})),a),e.encode=s=>Ue(s,e.codec()),e.decode=s=>Oe(s,e.codec())})(vr||(vr={}));var Nt=vr.MessageType,Lc=vr.ConnectionType,Na=Object.keys(Nt),_t=class e{type;key;clusterLevelRaw;closerPeers;providerPeers;record;constructor(t,r,n){if(!(r instanceof Uint8Array))throw new Error("Key must be a Uint8Array");this.type=t,this.key=r,this.clusterLevelRaw=n,this.closerPeers=[],this.providerPeers=[],this.record=void 0}get clusterLevel(){let t=this.clusterLevelRaw-1;return t<0?0:t}set clusterLevel(t){this.clusterLevelRaw=t}serialize(){return vr.encode({key:this.key,type:this.type,clusterLevelRaw:this.clusterLevelRaw,closerPeers:this.closerPeers.map(Pa),providerPeers:this.providerPeers.map(Pa),record:this.record==null?void 0:this.record.serialize().subarray()})}static deserialize(t){let r=vr.decode(t),n=new e(r.type??vr.MessageType.PUT_VALUE,r.key??Uint8Array.from([]),r.clusterLevelRaw??0);return n.closerPeers=r.closerPeers.map(La),n.providerPeers=r.providerPeers.map(La),r.record?.length!=null&&(n.record=Vt.deserialize(r.record)),n}};function Pa(e){return{id:e.id.toBytes(),addrs:(e.multiaddrs??[]).map(r=>r.bytes),connection:Lc.CONNECTED}}function La(e){if(e.id==null)throw new Error("Invalid peer in message");return{id:Kr(e.id),multiaddrs:(e.addrs??[]).map(t=>po(t)),protocols:[]}}function Bo(e,t={}){let r={...e,name:"SEND_QUERY",type:0,messageName:e.type,messageType:Na.indexOf(e.type.toString())};return t.onProgress?.(new Pt("kad-dht:query:send-query",{detail:r})),r}function a0(e,t={}){let r={...e,name:"PEER_RESPONSE",type:1,messageName:e.messageType,closer:e.closer!=null?e.closer:[],providers:e.providers!=null?e.providers:[]};return t.onProgress?.(new Pt("kad-dht:query:peer-response",{detail:r})),r}function j0(e,t={}){let r={...e,name:"FINAL_PEER",type:2};return t.onProgress?.(new Pt("kad-dht:query:final-peer",{detail:r})),r}function ne(e,t={}){let r={...e,name:"QUERY_ERROR",type:3};return t.onProgress?.(new Pt("kad-dht:query:query-error",{detail:r})),r}function To(e,t={}){let r={...e,name:"PROVIDER",type:4};return t.onProgress?.(new Pt("kad-dht:query:provider",{detail:r})),r}function c0(e,t={}){let r={...e,name:"VALUE",type:5};return t.onProgress?.(new Pt("kad-dht:query:value",{detail:r})),r}function _o(e,t={}){let r={...e,name:"DIAL_PEER",type:7};return t.onProgress?.(new Pt("kad-dht:query:dial-peer",{detail:r})),r}function ka(e,t,r){if(r.length===0){let a="No records given";throw new R(a,"ERR_NO_RECORDS_RECEIVED")}let i=z(t).split("/");if(i.length<3){let a="Record key does not have a selector function";throw new R(a,"ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")}let o=e[i[1].toString()];if(o==null){let a=`No selector function configured for key type "${i[1]}"`;throw new R(a,"ERR_UNRECOGNIZED_KEY_PREFIX")}return r.length===1?0:o(t,r)}function Nc(e,t){return 0}var Da={pk:Nc};async function Sn(e,t){let r=t.key,i=z(r).split("/");if(i.length<3)return;let o=e[i[1].toString()];if(o==null){let a=`No validator available for key type "${i[1]}"`;throw new R(a,"ERR_INVALID_RECORD_KEY_TYPE")}await o(r,t.value)}var kc=async(e,t)=>{if(!(e instanceof Uint8Array))throw new R('"key" must be a Uint8Array',"ERR_INVALID_RECORD_KEY_NOT_BUFFER");if(e.byteLength<5)throw new R("invalid public key record","ERR_INVALID_RECORD_KEY_TOO_SHORT");if(z(e.subarray(0,4))!=="/pk/")throw new R("key was not prefixed with /pk/","ERR_INVALID_RECORD_KEY_BAD_PREFIX");let n=e.slice(4),i=await It.digest(t);if(!dt(n,i.bytes))throw new R("public key does not match passed in key","ERR_INVALID_RECORD_HASH_MISMATCH")},Oa={pk:kc};var Ua=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var Xe="/",Fa=new TextEncoder().encode(Xe),t1=Fa[0],In=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=pt(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==t1)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 e(t.join(Xe))}static random(){return new e(Ua().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new e(t):typeof t.uint8Array=="function"?new e(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Fa),this._buf[0]!==t1){let t=new Uint8Array(this._buf.byteLength+1);t.fill(t1,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===t1;)this._buf=this._buf.subarray(0,-1)}less(t){let r=this.list(),n=t.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let o=r[i],a=n[i];if(o<a)return!0;if(o>a)return!1}return r.length<n.length}reverse(){return e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(Xe).slice(1)}type(){return Dc(this.baseNamespace())}name(){return Oc(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(Xe)||(t+=Xe),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(Xe):new e(t.slice(0,-1).join(Xe))}child(t){return this.toString()===Xe?t:t.toString()===Xe?this:new e(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return e.withNamespaces([...this.namespaces(),...Uc(t.map(r=>r.namespaces()))])}};function Dc(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function Oc(e){let t=e.split(":");return t[t.length-1]}function Uc(e){return[].concat(...e)}var Fc=pt("/pk/");function An(e){return{...e,multiaddrs:e.multiaddrs.filter(t=>{let[[r,n]]=t.stringTuples();if(r===53||r===54||r===55)return n!=="localhost";if(r!==4&&r!==6||n==null)return!1;let i=Zn(n);return i==null?!0:!i})}}function Cn(e){return{...e,multiaddrs:e.multiaddrs.filter(t=>{let[[r,n]]=t.stringTuples();if(n==="localhost")return!0;if(r!==4&&r!==6||n==null)return!1;let i=Zn(n);return i??!1})}}async function br(e){return(await It.digest(e)).digest}async function Ae(e){return br(e.toBytes())}function Je(e){return new In(`${K2}/${z(e,"base32")}`,!1)}function Ka(e){return gt([Fc,e.toBytes()])}function Ma(e){return z(e.subarray(0,4))==="/pk/"}function Va(e){return Kr(e.subarray(4))}function Ro(e,t){let r=new Date;return new Vt(e,t,r).serialize()}function qa(e,t=100){let r;return()=>{clearTimeout(r),r=setTimeout(()=>{e()},t)}}var e1=class{log;components;validators;selectors;peerRouting;queryManager;network;constructor(t,r){let{validators:n,selectors:i,peerRouting:o,queryManager:a,network:s,lan:c}=r;this.components=t,this.log=X(`libp2p:kad-dht:${c?"lan":"wan"}:content-fetching`),this.validators=n,this.selectors=i,this.peerRouting=o,this.queryManager=a,this.network=s}async putLocal(t,r){let n=Je(t);await this.components.datastore.put(n,r)}async getLocal(t){this.log("getLocal %b",t);let r=Je(t);this.log("fetching record for key %k",r);let n=await this.components.datastore.get(r);this.log("found %k in local datastore",r);let i=Vt.deserialize(n);return await Sn(this.validators,i),i}async*sendCorrectionRecord(t,r,n,i={}){this.log("sendCorrection for %b",t);let o=Ro(t,n);for(let{value:a,from:s}of r){if(dt(a,n)){this.log("record was ok");continue}if(this.components.peerId.equals(s)){try{let f=Je(t);this.log(`Storing corrected record for key ${f.toString()}`),await this.components.datastore.put(f,o.subarray())}catch(f){this.log.error("Failed error correcting self",f)}continue}let c=!1,u=new _t(Nt.PUT_VALUE,t,0);u.record=Vt.deserialize(o);for await(let f of this.network.sendRequest(s,u,i))f.name==="PEER_RESPONSE"&&f.record!=null&&dt(f.record.value,Vt.deserialize(o).value)&&(c=!0),yield f;c||(yield ne({from:s,error:new R("value not put correctly","ERR_PUT_VALUE_INVALID")},i)),this.log.error("Failed error correcting entry")}}async*put(t,r,n={}){this.log("put key %b value %b",t,r);let i=Ro(t,r),o=Je(t);this.log(`storing record for key ${o.toString()}`),await this.components.datastore.put(o,i.subarray()),yield*Ee(this.peerRouting.getClosestPeers(t,{signal:n.signal}),a=>Q0(a,s=>async()=>{if(s.name!=="FINAL_PEER")return[s];let c=[],u=new _t(Nt.PUT_VALUE,t,0);u.record=Vt.deserialize(i),this.log("send put to %p",s.peer.id);for await(let f of this.network.sendRequest(s.peer.id,u,n))c.push(f),f.name==="PEER_RESPONSE"&&(f.record!=null&&dt(f.record.value,Vt.deserialize(i).value)||c.push(ne({from:s.peer.id,error:new R("value not put correctly","ERR_PUT_VALUE_INVALID")},n)));return c}),a=>Xn(a,{ordered:!1,concurrency:3}),async function*(a){for await(let s of a)yield*s})}async*get(t,r={}){this.log("get %b",t);let n=[];for await(let s of this.getMany(t,r))s.name==="VALUE"&&n.push(s),yield s;if(n.length===0)return;let i=n.map(s=>s.value),o=0;try{o=ka(this.selectors,t,i)}catch(s){if(s.code!=="ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")throw s}let a=i[o];if(this.log("GetValue %b %b",t,a),a==null)throw new R("best value was not found","ERR_NOT_FOUND");yield*this.sendCorrectionRecord(t,n,a,r),yield n[o]}async*getMany(t,r={}){this.log("getMany values for %b",t);try{let o=await this.getLocal(t);yield c0({value:o.value,from:this.components.peerId},r)}catch(o){this.log("error getting local value for %b",t,o)}let n=this,i=async function*({peer:o,signal:a}){for await(let s of n.peerRouting.getValueOrPeers(o,t,{signal:a}))yield s,s.name==="PEER_RESPONSE"&&s.record!=null&&(yield c0({from:o,value:s.record.value},r))};yield*this.queryManager.run(t,i,r)}};var r1=class{log;components;network;peerRouting;queryManager;routingTable;providers;constructor(t,r){let{network:n,peerRouting:i,queryManager:o,routingTable:a,providers:s,lan:c}=r;this.components=t,this.log=X(`libp2p:kad-dht:${c?"lan":"wan"}:content-routing`),this.network=n,this.peerRouting=i,this.queryManager=o,this.routingTable=a,this.providers=s}async*provide(t,r,n={}){this.log("provide %s",t),await this.providers.addProvider(t,this.components.peerId);let i=new _t(Nt.ADD_PROVIDER,t.multihash.bytes,0);i.providerPeers=[{id:this.components.peerId,multiaddrs:r,protocols:[]}];let o=0,a=s=>async()=>{if(s.name!=="FINAL_PEER")return[s];let c=[];this.log("putProvider %s to %p",t,s.peer.id);try{this.log("sending provider record for %s to %p",t,s.peer.id);for await(let u of this.network.sendMessage(s.peer.id,i,n))u.name==="PEER_RESPONSE"&&(this.log("sent provider record for %s to %p",t,s.peer.id),o++),c.push(u)}catch(u){this.log.error("error sending provide record to peer %p",s.peer.id,u),c.push(ne({from:s.peer.id,error:u},n))}return c};yield*Ee(this.peerRouting.getClosestPeers(t.multihash.bytes,n),s=>Q0(s,c=>a(c)),s=>Xn(s,{ordered:!1,concurrency:3}),async function*(s){for await(let c of s)yield*c}),this.log("sent provider records to %d peers",o)}async*findProviders(t,r){let n=this.routingTable.kBucketSize,i=t.multihash.bytes,o=this;this.log("findProviders %c",t);let a=await this.providers.getProviders(t);if(a.length>0){let u=[];for(let f of a.slice(0,n))try{let l=await this.components.peerStore.get(f);u.push({id:f,multiaddrs:l.addresses.map(({multiaddr:p})=>p),protocols:l.protocols})}catch(l){if(l.code!=="ERR_NOT_FOUND")throw l;this.log("no peer store entry for %p",f)}yield a0({from:this.components.peerId,messageType:Nt.GET_PROVIDERS,providers:u},r),yield To({from:this.components.peerId,providers:u},r)}if(a.length>=n)return;let s=async function*({peer:u,signal:f}){let l=new _t(Nt.GET_PROVIDERS,i,0);yield*o.network.sendRequest(u,l,{...r,signal:f})},c=new Set(a.map(u=>u.toString()));for await(let u of this.queryManager.run(i,s,r))if(yield u,u.name==="PEER_RESPONSE"){this.log("Found %d provider entries for %c and %d closer peers",u.providers.length,t,u.closer.length);let f=[];for(let l of u.providers)c.has(l.id.toString())||(c.add(l.id.toString()),f.push(l));if(f.length>0&&(yield To({from:u.from,providers:f},r)),c.size===n)return}}};var u0=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function za(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function Ha(e,t,r){let n=r??{},i=za(e);async function*o(){let a,s=()=>{a?.()};for(t.addEventListener("abort",s);;){let c;try{if(t.aborted){let{abortMessage:f,abortCode:l}=n;throw new u0(f,l)}let u=new Promise((f,l)=>{a=()=>{let{abortMessage:p,abortCode:d}=n;l(new u0(p,d))}});c=await Promise.race([u,i.next()]),a=null}catch(u){t.removeEventListener("abort",s);let f=u.type==="aborted"&&t.aborted;if(f&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let l=i.return();l instanceof Promise&&l.catch(p=>{n.onReturnError!=null&&n.onReturnError(p)})}catch(l){n.onReturnError!=null&&n.onReturnError(l)}if(f&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",s)}return o()}function Kc(e,t,r){return n=>e(Ha(n,t,r))}function Lo(e,t,r){return{sink:Kc(e.sink,t,{...r,onAbort:void 0}),source:Ha(e.source,t,r)}}function Mc(e){return e[Symbol.asyncIterator]!=null}function Vc(e){if(Mc(e))return(async()=>{for await(let t of e)return t})();for(let t of e)return t}var $a=Vc;var Qa=Symbol.for("@achingbrain/uint8arraylist");function Ga(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function n1(e){return!!e?.[Qa]}var Tn=class e{constructor(...t){Object.defineProperty(this,Qa,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(n1(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(n1(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(t){let r=Ga(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Ga(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(n1(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return gt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:gt(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),o=new e;return o.length=i,o.bufs=n,o}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let a=this.bufs[o],s=i,c=s+a.byteLength;if(i=c,t>=c)continue;let u=t>=s&&t<c,f=r>s&&r<=c;if(u&&f){if(t===s&&r===c){n.push(a);break}let l=t-s;n.push(a.subarray(l,l+(r-t)));break}if(u){if(t===0){n.push(a);continue}n.push(a.subarray(t-s));continue}if(f){if(r===c){n.push(a);break}n.push(a.subarray(0,r-s));break}n.push(a)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!n1(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,a=new Int32Array(o);for(let l=0;l<o;l++)a[l]=-1;for(let l=0;l<i;l++)a[n[l]]=l;let s=a,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let l=r;l<=c;l+=f){f=0;for(let p=u;p>=0;p--){let d=this.get(l+p);if(n[p]!==d){f=Math.max(1,p-s[d]);break}}if(f===0)return l}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=zt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=Ze(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=Ze(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=Ze(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=zt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=Ze(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=Ze(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=Ze(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=Ze(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=Ze(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!dt(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new e;return n.bufs=t,r==null&&(r=t.reduce((i,o)=>i+o.byteLength,0)),n.length=r,n}};function i1(e){return e[Symbol.asyncIterator]!=null}var o1=e=>{let t=ae(e),r=zt(t);return De(e,r),o1.bytes=t,r};o1.bytes=0;function qr(e,t){t=t??{};let r=t.lengthEncoder??o1;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return i1(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}qr.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??o1;return new Tn(r(e.byteLength),e)};var _n=St(Za(),1);var zc=8,Hc=1024*1024*4,zr;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(zr||(zr={}));var No=e=>{let t=Se(e);return No.bytes=ae(t),t};No.bytes=0;function Hr(e,t){let r=new Tn,n=zr.LENGTH,i=-1,o=t?.lengthDecoder??No,a=t?.maxLengthLength??zc,s=t?.maxDataLength??Hc;function*c(){for(;r.byteLength>0;){if(n===zr.LENGTH)try{if(i=o(r),i<0)throw(0,_n.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>s)throw(0,_n.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=o.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=zr.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>a)throw(0,_n.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===zr.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=zr.LENGTH}}}return i1(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,_n.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,_n.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Hr.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:a}=await e.next(r);if(o===!0)return;a!=null&&(yield a)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return Hr(n,{...t??{},onLength:o=>{r=o}})};var s1=class extends Xt{log;protocol;running;components;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=X(`libp2p:kad-dht:${i?"lan":"wan"}:network`),this.running=!1,this.protocol=n}async start(){this.running||(this.running=!0)}async stop(){this.running=!1}isStarted(){return this.running}async*sendRequest(t,r,n={}){if(!this.running)return;this.log("sending %s to %p",r.type,t),yield _o({peer:t},n),yield Bo({to:t,type:r.type},n);let i;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n),s=await this._writeReadMessage(a,r.serialize(),n);yield a0({from:t,messageType:s.type,closer:s.closerPeers,providers:s.providerPeers,record:s.record},n)}catch(o){yield ne({from:t,error:o},n)}finally{i!=null&&await i.close()}}async*sendMessage(t,r,n={}){if(!this.running)return;this.log("sending %s to %p",r.type,t),yield _o({peer:t},n),yield Bo({to:t,type:r.type},n);let i;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n);await this._writeMessage(a,r.serialize(),n),yield a0({from:t,messageType:r.type},n)}catch(o){yield ne({from:t,error:o},n)}finally{i!=null&&await i.close()}}async _writeMessage(t,r,n){n.signal!=null&&(t=Lo(t,n.signal)),await Ee([r],i=>qr(i),t,Yn)}async _writeReadMessage(t,r,n){n.signal!=null&&(t=Lo(t,n.signal));let i=await Ee([r],a=>qr(a),t,a=>Hr(a),async a=>{let s=await $a(a);if(s!=null)return s;throw new R("No message received","ERR_NO_MESSAGE_RECEIVED")}),o=_t.deserialize(i);return o.closerPeers.forEach(a=>{this.dispatchEvent(new Pt("peer",{detail:a}))}),o.providerPeers.forEach(a=>{this.dispatchEvent(new Pt("peer",{detail:a}))}),o}};var wm=St(l1(),1),Jc=St(ut(),1);var Dt={get(e=globalThis){let t=e.crypto;if(t==null||t.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var h3={SHA1:20,SHA256:32,SHA512:64};var eu={SHA1:"SHA-1",SHA256:"SHA-256",SHA512:"SHA-512"},ru=async(e,t)=>{let r=await Dt.get().subtle.sign({name:"HMAC"},e,t);return new Uint8Array(r,0,r.byteLength)};async function d3(e,t){let r=eu[e],n=await Dt.get().subtle.importKey("raw",t,{name:"HMAC",hash:{name:r}},!1,["sign"]);return{async digest(i){return ru(n,i)},length:h3[e]}}var $1={};Ft($1,{generateEphemeralKeyPair:()=>$4,generateKeyPair:()=>n9,generateKeyPairFromSeed:()=>i9,importKey:()=>c9,keyStretcher:()=>Y4,keysPBM:()=>Vn,marshalPrivateKey:()=>a9,marshalPublicKey:()=>s9,supportedKeys:()=>Ge,unmarshalPrivateKey:()=>S5,unmarshalPublicKey:()=>o9});var mb=St(d0(),1),xb=St(y4(),1);var H1=St(ut(),1);var ws={};Ft(ws,{Ed25519PrivateKey:()=>jr,Ed25519PublicKey:()=>v0,generateKeyPair:()=>Bl,generateKeyPairFromSeed:()=>bs,unmarshalEd25519PrivateKey:()=>Al,unmarshalEd25519PublicKey:()=>Cl});function g4(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function rs(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function m4(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");g4(e.outputLen),g4(e.blockLen)}function kn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function x4(e,t){rs(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var C1=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var v4=e=>e instanceof Uint8Array;var B1=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Te=(e,t)=>e<<32-t|e>>>t,w7=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!w7)throw new Error("Non little-endian hardware is not supported");function ns(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function g0(e){if(typeof e=="string"&&(e=ns(e)),!v4(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function T1(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!v4(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Dn=class{clone(){return this._cloneInto()}},tx={}.toString;function _1(e){let t=n=>e().update(g0(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function On(e=32){if(C1&&typeof C1.getRandomValues=="function")return C1.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function E7(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),a=Number(r>>i&o),s=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,a,n),e.setUint32(t+u,s,n)}var Un=class extends Dn{constructor(t,r,n,i){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=B1(this.buffer)}update(t){kn(this);let{view:r,buffer:n,blockLen:i}=this;t=g0(t);let o=t.length;for(let a=0;a<o;){let s=Math.min(i-this.pos,o-a);if(s===i){let c=B1(t);for(;i<=o-a;a+=i)this.process(c,a);continue}n.set(t.subarray(a,a+s),this.pos),this.pos+=s,a+=s,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){kn(this),x4(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:a}=this;r[a++]=128,this.buffer.subarray(a).fill(0),this.padOffset>i-a&&(this.process(n,0),a=0);for(let l=a;l<i;l++)r[l]=0;E7(n,i-8,BigInt(this.length*8),o),this.process(n,0);let s=B1(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)s.setUint32(4*l,f[l],o)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:o,destroyed:a,pos:s}=this;return t.length=i,t.pos=s,t.finished=o,t.destroyed=a,i%r&&t.buffer.set(n),t}};var R1=BigInt(4294967295),is=BigInt(32);function b4(e,t=!1){return t?{h:Number(e&R1),l:Number(e>>is&R1)}:{h:Number(e>>is&R1)|0,l:Number(e&R1)|0}}function S7(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:o,l:a}=b4(e[i],t);[r[i],n[i]]=[o,a]}return[r,n]}var I7=(e,t)=>BigInt(e>>>0)<<is|BigInt(t>>>0),A7=(e,t,r)=>e>>>r,C7=(e,t,r)=>e<<32-r|t>>>r,B7=(e,t,r)=>e>>>r|t<<32-r,T7=(e,t,r)=>e<<32-r|t>>>r,_7=(e,t,r)=>e<<64-r|t>>>r-32,R7=(e,t,r)=>e>>>r-32|t<<64-r,P7=(e,t)=>t,L7=(e,t)=>e,N7=(e,t,r)=>e<<r|t>>>32-r,k7=(e,t,r)=>t<<r|e>>>32-r,D7=(e,t,r)=>t<<r-32|e>>>64-r,O7=(e,t,r)=>e<<r-32|t>>>64-r;function U7(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var F7=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),K7=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,M7=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),V7=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,q7=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),z7=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0;var H7={fromBig:b4,split:S7,toBig:I7,shrSH:A7,shrSL:C7,rotrSH:B7,rotrSL:T7,rotrBH:_7,rotrBL:R7,rotr32H:P7,rotr32L:L7,rotlSH:N7,rotlSL:k7,rotlBH:D7,rotlBL:O7,add:U7,add3L:F7,add3H:K7,add4L:M7,add4H:V7,add5H:z7,add5L:q7},W=H7;var[$7,G7]=(()=>W.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))))(),Ar=new Uint32Array(80),Cr=new Uint32Array(80),os=class extends Un{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:r,Bh:n,Bl:i,Ch:o,Cl:a,Dh:s,Dl:c,Eh:u,El:f,Fh:l,Fl:p,Gh:d,Gl:h,Hh:y,Hl:g}=this;return[t,r,n,i,o,a,s,c,u,f,l,p,d,h,y,g]}set(t,r,n,i,o,a,s,c,u,f,l,p,d,h,y,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=o|0,this.Cl=a|0,this.Dh=s|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=p|0,this.Gh=d|0,this.Gl=h|0,this.Hh=y|0,this.Hl=g|0}process(t,r){for(let v=0;v<16;v++,r+=4)Ar[v]=t.getUint32(r),Cr[v]=t.getUint32(r+=4);for(let v=16;v<80;v++){let C=Ar[v-15]|0,E=Cr[v-15]|0,S=W.rotrSH(C,E,1)^W.rotrSH(C,E,8)^W.shrSH(C,E,7),L=W.rotrSL(C,E,1)^W.rotrSL(C,E,8)^W.shrSL(C,E,7),N=Ar[v-2]|0,$=Cr[v-2]|0,G=W.rotrSH(N,$,19)^W.rotrBH(N,$,61)^W.shrSH(N,$,6),q=W.rotrSL(N,$,19)^W.rotrBL(N,$,61)^W.shrSL(N,$,6),j=W.add4L(L,q,Cr[v-7],Cr[v-16]),ft=W.add4H(j,S,G,Ar[v-7],Ar[v-16]);Ar[v]=ft|0,Cr[v]=j|0}let{Ah:n,Al:i,Bh:o,Bl:a,Ch:s,Cl:c,Dh:u,Dl:f,Eh:l,El:p,Fh:d,Fl:h,Gh:y,Gl:g,Hh:m,Hl:x}=this;for(let v=0;v<80;v++){let C=W.rotrSH(l,p,14)^W.rotrSH(l,p,18)^W.rotrBH(l,p,41),E=W.rotrSL(l,p,14)^W.rotrSL(l,p,18)^W.rotrBL(l,p,41),S=l&d^~l&y,L=p&h^~p&g,N=W.add5L(x,E,L,G7[v],Cr[v]),$=W.add5H(N,m,C,S,$7[v],Ar[v]),G=N|0,q=W.rotrSH(n,i,28)^W.rotrBH(n,i,34)^W.rotrBH(n,i,39),j=W.rotrSL(n,i,28)^W.rotrBL(n,i,34)^W.rotrBL(n,i,39),ft=n&o^n&s^o&s,Qt=i&a^i&c^a&c;m=y|0,x=g|0,y=d|0,g=h|0,d=l|0,h=p|0,{h:l,l:p}=W.add(u|0,f|0,$|0,G|0),u=s|0,f=c|0,s=o|0,c=a|0,o=n|0,a=i|0;let T=W.add3L(G,j,Qt);n=W.add3H(T,$,q,ft),i=T|0}({h:n,l:i}=W.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:a}=W.add(this.Bh|0,this.Bl|0,o|0,a|0),{h:s,l:c}=W.add(this.Ch|0,this.Cl|0,s|0,c|0),{h:u,l:f}=W.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=W.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:h}=W.add(this.Fh|0,this.Fl|0,d|0,h|0),{h:y,l:g}=W.add(this.Gh|0,this.Gl|0,y|0,g|0),{h:m,l:x}=W.add(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,i,o,a,s,c,u,f,l,p,d,h,y,g,m,x)}roundClean(){Ar.fill(0),Cr.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var ss=_1(()=>new os);var N1={};Ft(N1,{bitGet:()=>j7,bitLen:()=>J7,bitMask:()=>m0,bitSet:()=>tl,bytesToHex:()=>rr,bytesToNumberBE:()=>nr,bytesToNumberLE:()=>Br,concatBytes:()=>ir,createHmacDrbg:()=>us,ensureBytes:()=>Rt,equalBytes:()=>Z7,hexToBytes:()=>Zr,hexToNumber:()=>cs,numberToBytesBE:()=>Tr,numberToBytesLE:()=>Xr,numberToHexUnpadded:()=>S4,numberToVarBytesBE:()=>W7,utf8ToBytes:()=>X7,validateObject:()=>$e});var E4=BigInt(0),P1=BigInt(1),Q7=BigInt(2),L1=e=>e instanceof Uint8Array,Y7=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function rr(e){if(!L1(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=Y7[e[r]];return t}function S4(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function cs(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function Zr(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,o=e.slice(i,i+2),a=Number.parseInt(o,16);if(Number.isNaN(a)||a<0)throw new Error("Invalid byte sequence");r[n]=a}return r}function nr(e){return cs(rr(e))}function Br(e){if(!L1(e))throw new Error("Uint8Array expected");return cs(rr(Uint8Array.from(e).reverse()))}function Tr(e,t){return Zr(e.toString(16).padStart(t*2,"0"))}function Xr(e,t){return Tr(e,t).reverse()}function W7(e){return Zr(S4(e))}function Rt(e,t,r){let n;if(typeof t=="string")try{n=Zr(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(L1(t))n=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${e} expected ${r} bytes, got ${i}`);return n}function ir(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!L1(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function Z7(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function X7(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function J7(e){let t;for(t=0;e>E4;e>>=P1,t+=1);return t}function j7(e,t){return e>>BigInt(t)&P1}var tl=(e,t,r)=>e|(r?P1:E4)<<BigInt(t),m0=e=>(Q7<<BigInt(e-1))-P1,as=e=>new Uint8Array(e),w4=e=>Uint8Array.from(e);function us(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=as(e),i=as(e),o=0,a=()=>{n.fill(1),i.fill(0),o=0},s=(...l)=>r(i,n,...l),c=(l=as())=>{i=s(w4([0]),l),n=s(),l.length!==0&&(i=s(w4([1]),l),n=s())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,p=[];for(;l<t;){n=s();let d=n.slice();p.push(d),l+=n.length}return ir(...p)};return(l,p)=>{a(),c(l);let d;for(;!(d=p(u()));)c();return a(),d}}var el={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function $e(e,t,r={}){let n=(i,o,a)=>{let s=el[o];if(typeof s!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=e[i];if(!(a&&c===void 0)&&!s(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${o}`)};for(let[i,o]of Object.entries(t))n(i,o,!1);for(let[i,o]of Object.entries(r))n(i,o,!0);return e}var qt=BigInt(0),wt=BigInt(1),Jr=BigInt(2),rl=BigInt(3),fs=BigInt(4),I4=BigInt(5),A4=BigInt(8),nl=BigInt(9),il=BigInt(16);function ht(e,t){let r=e%t;return r>=qt?r:t+r}function ol(e,t,r){if(r<=qt||t<qt)throw new Error("Expected power/modulo > 0");if(r===wt)return qt;let n=wt;for(;t>qt;)t&wt&&(n=n*e%r),e=e*e%r,t>>=wt;return n}function Et(e,t,r){let n=e;for(;t-- >qt;)n*=n,n%=r;return n}function k1(e,t){if(e===qt||t<=qt)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=ht(e,t),n=t,i=qt,o=wt,a=wt,s=qt;for(;r!==qt;){let u=n/r,f=n%r,l=i-a*u,p=o-s*u;n=r,r=f,i=a,o=s,a=l,s=p}if(n!==wt)throw new Error("invert: does not exist");return ht(i,t)}function sl(e){let t=(e-wt)/Jr,r,n,i;for(r=e-wt,n=0;r%Jr===qt;r/=Jr,n++);for(i=Jr;i<e&&ol(i,t,e)!==e-wt;i++);if(n===1){let a=(e+wt)/fs;return function(c,u){let f=c.pow(u,a);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let o=(r+wt)/Jr;return function(s,c){if(s.pow(c,t)===s.neg(s.ONE))throw new Error("Cannot find square root");let u=n,f=s.pow(s.mul(s.ONE,i),r),l=s.pow(c,o),p=s.pow(c,r);for(;!s.eql(p,s.ONE);){if(s.eql(p,s.ZERO))return s.ZERO;let d=1;for(let y=s.sqr(p);d<u&&!s.eql(y,s.ONE);d++)y=s.sqr(y);let h=s.pow(f,wt<<BigInt(u-d-1));f=s.sqr(h),l=s.mul(l,h),p=s.mul(p,f),u=d}return l}}function al(e){if(e%fs===rl){let t=(e+wt)/fs;return function(n,i){let o=n.pow(i,t);if(!n.eql(n.sqr(o),i))throw new Error("Cannot find square root");return o}}if(e%A4===I4){let t=(e-I4)/A4;return function(n,i){let o=n.mul(i,Jr),a=n.pow(o,t),s=n.mul(i,a),c=n.mul(n.mul(s,Jr),a),u=n.mul(s,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return e%il,sl(e)}var C4=(e,t)=>(ht(e,t)&wt)===wt,cl=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ls(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=cl.reduce((n,i)=>(n[i]="function",n),t);return $e(e,r)}function ul(e,t,r){if(r<qt)throw new Error("Expected power > 0");if(r===qt)return e.ONE;if(r===wt)return t;let n=e.ONE,i=t;for(;r>qt;)r&wt&&(n=e.mul(n,i)),i=e.sqr(i),r>>=wt;return n}function fl(e,t){let r=new Array(t.length),n=t.reduce((o,a,s)=>e.is0(a)?o:(r[s]=o,e.mul(o,a)),e.ONE),i=e.inv(n);return t.reduceRight((o,a,s)=>e.is0(a)?o:(r[s]=e.mul(o,r[s]),e.mul(o,a)),i),r}function hs(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function D1(e,t,r=!1,n={}){if(e<=qt)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=hs(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let a=al(e),s=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:m0(i),ZERO:qt,ONE:wt,create:c=>ht(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return qt<=c&&c<e},is0:c=>c===qt,isOdd:c=>(c&wt)===wt,neg:c=>ht(-c,e),eql:(c,u)=>c===u,sqr:c=>ht(c*c,e),add:(c,u)=>ht(c+u,e),sub:(c,u)=>ht(c-u,e),mul:(c,u)=>ht(c*u,e),pow:(c,u)=>ul(s,c,u),div:(c,u)=>ht(c*k1(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>k1(c,e),sqrt:n.sqrt||(c=>a(s,c)),invertBatch:c=>fl(s,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?Xr(c,o):Tr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return r?Br(c):nr(c)}});return Object.freeze(s)}function B4(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");let r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function T4(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function ds(e){let t=T4(e);return t+Math.ceil(t/2)}function _4(e,t,r=!1){let n=e.length,i=T4(t),o=ds(t);if(n<16||n<o||n>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let a=r?nr(e):Br(e),s=ht(a,t-wt)+wt;return r?Xr(s,i):Tr(s,i)}var hl=BigInt(0),ps=BigInt(1);function O1(e,t){let r=(i,o)=>{let a=o.negate();return i?a:o},n=i=>{let o=Math.ceil(t/i)+1,a=2**(i-1);return{windows:o,windowSize:a}};return{constTimeNegate:r,unsafeLadder(i,o){let a=e.ZERO,s=i;for(;o>hl;)o&ps&&(a=a.add(s)),s=s.double(),o>>=ps;return a},precomputeWindow(i,o){let{windows:a,windowSize:s}=n(o),c=[],u=i,f=u;for(let l=0;l<a;l++){f=u,c.push(f);for(let p=1;p<s;p++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(i,o,a){let{windows:s,windowSize:c}=n(i),u=e.ZERO,f=e.BASE,l=BigInt(2**i-1),p=2**i,d=BigInt(i);for(let h=0;h<s;h++){let y=h*c,g=Number(a&l);a>>=d,g>c&&(g-=p,a+=ps);let m=y,x=y+Math.abs(g)-1,v=h%2!==0,C=g<0;g===0?f=f.add(r(v,o[m])):u=u.add(r(C,o[x]))}return{p:u,f}},wNAFCached(i,o,a,s){let c=i._WINDOW_SIZE||1,u=o.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&o.set(i,s(u))),this.wNAF(c,u,a)}}}function x0(e){return ls(e.Fp),$e(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...hs(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var _e=BigInt(0),he=BigInt(1),U1=BigInt(2),dl=BigInt(8),pl={zip215:!0};function yl(e){let t=x0(e);return $e(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function F1(e){let t=yl(e),{Fp:r,n,prehash:i,hash:o,randomBytes:a,nByteLength:s,h:c}=t,u=U1<<BigInt(s*8)-he,f=r.create,l=t.uvRatio||((k,A)=>{try{return{isValid:!0,value:r.sqrt(k*r.inv(A))}}catch{return{isValid:!1,value:_e}}}),p=t.adjustScalarBytes||(k=>k),d=t.domain||((k,A,F)=>{if(A.length||F)throw new Error("Contexts/pre-hash are not supported");return k}),h=k=>typeof k=="bigint"&&_e<k,y=(k,A)=>h(k)&&h(A)&&k<A,g=k=>k===_e||y(k,u);function m(k,A){if(y(k,A))return k;throw new Error(`Expected valid scalar < ${A}, got ${typeof k} ${k}`)}function x(k){return k===_e?k:m(k,n)}let v=new Map;function C(k){if(!(k instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(A,F,M,H){if(this.ex=A,this.ey=F,this.ez=M,this.et=H,!g(A))throw new Error("x required");if(!g(F))throw new Error("y required");if(!g(M))throw new Error("z required");if(!g(H))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(A){if(A instanceof E)throw new Error("extended point not allowed");let{x:F,y:M}=A||{};if(!g(F)||!g(M))throw new Error("invalid affine point");return new E(F,M,he,f(F*M))}static normalizeZ(A){let F=r.invertBatch(A.map(M=>M.ez));return A.map((M,H)=>M.toAffine(F[H])).map(E.fromAffine)}_setWindowSize(A){this._WINDOW_SIZE=A,v.delete(this)}assertValidity(){let{a:A,d:F}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:M,ey:H,ez:Z,et:tt}=this,ct=f(M*M),et=f(H*H),ot=f(Z*Z),Ut=f(ot*ot),Ct=f(ct*A),Yt=f(ot*f(Ct+et)),Wt=f(Ut+f(F*f(ct*et)));if(Yt!==Wt)throw new Error("bad point: equation left != right (1)");let Mt=f(M*H),Zt=f(Z*tt);if(Mt!==Zt)throw new Error("bad point: equation left != right (2)")}equals(A){C(A);let{ex:F,ey:M,ez:H}=this,{ex:Z,ey:tt,ez:ct}=A,et=f(F*ct),ot=f(Z*H),Ut=f(M*ct),Ct=f(tt*H);return et===ot&&Ut===Ct}is0(){return this.equals(E.ZERO)}negate(){return new E(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:A}=t,{ex:F,ey:M,ez:H}=this,Z=f(F*F),tt=f(M*M),ct=f(U1*f(H*H)),et=f(A*Z),ot=F+M,Ut=f(f(ot*ot)-Z-tt),Ct=et+tt,Yt=Ct-ct,Wt=et-tt,Mt=f(Ut*Yt),Zt=f(Ct*Wt),Qe=f(Ut*Wt),kr=f(Yt*Ct);return new E(Mt,Zt,kr,Qe)}add(A){C(A);let{a:F,d:M}=t,{ex:H,ey:Z,ez:tt,et:ct}=this,{ex:et,ey:ot,ez:Ut,et:Ct}=A;if(F===BigInt(-1)){let r2=f((Z-H)*(ot+et)),n2=f((Z+H)*(ot-et)),Si=f(n2-r2);if(Si===_e)return this.double();let i2=f(tt*U1*Ct),o2=f(ct*U1*Ut),s2=o2+i2,a2=n2+r2,c2=o2-i2,t6=f(s2*Si),e6=f(a2*c2),r6=f(s2*c2),n6=f(Si*a2);return new E(t6,e6,n6,r6)}let Yt=f(H*et),Wt=f(Z*ot),Mt=f(ct*M*Ct),Zt=f(tt*Ut),Qe=f((H+Z)*(et+ot)-Yt-Wt),kr=Zt-Mt,Qn=Zt+Mt,e2=f(Wt-F*Yt),Z5=f(Qe*kr),X5=f(Qn*e2),J5=f(Qe*e2),j5=f(kr*Qn);return new E(Z5,X5,j5,J5)}subtract(A){return this.add(A.negate())}wNAF(A){return N.wNAFCached(this,v,A,E.normalizeZ)}multiply(A){let{p:F,f:M}=this.wNAF(m(A,n));return E.normalizeZ([F,M])[0]}multiplyUnsafe(A){let F=x(A);return F===_e?L:this.equals(L)||F===he?this:this.equals(S)?this.wNAF(F).p:N.unsafeLadder(this,F)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return N.unsafeLadder(this,n).is0()}toAffine(A){let{ex:F,ey:M,ez:H}=this,Z=this.is0();A==null&&(A=Z?dl:r.inv(H));let tt=f(F*A),ct=f(M*A),et=f(H*A);if(Z)return{x:_e,y:he};if(et!==he)throw new Error("invZ was invalid");return{x:tt,y:ct}}clearCofactor(){let{h:A}=t;return A===he?this:this.multiplyUnsafe(A)}static fromHex(A,F=!1){let{d:M,a:H}=t,Z=r.BYTES;A=Rt("pointHex",A,Z);let tt=A.slice(),ct=A[Z-1];tt[Z-1]=ct&-129;let et=Br(tt);et===_e||(F?m(et,u):m(et,r.ORDER));let ot=f(et*et),Ut=f(ot-he),Ct=f(M*ot-H),{isValid:Yt,value:Wt}=l(Ut,Ct);if(!Yt)throw new Error("Point.fromHex: invalid y coordinate");let Mt=(Wt&he)===he,Zt=(ct&128)!==0;if(!F&&Wt===_e&&Zt)throw new Error("Point.fromHex: x=0 and x_0=1");return Zt!==Mt&&(Wt=f(-Wt)),E.fromAffine({x:Wt,y:et})}static fromPrivateKey(A){return q(A).point}toRawBytes(){let{x:A,y:F}=this.toAffine(),M=Xr(F,r.BYTES);return M[M.length-1]|=A&he?128:0,M}toHex(){return rr(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,he,f(t.Gx*t.Gy)),E.ZERO=new E(_e,he,he,_e);let{BASE:S,ZERO:L}=E,N=O1(E,s*8);function $(k){return ht(k,n)}function G(k){return $(Br(k))}function q(k){let A=s;k=Rt("private key",k,A);let F=Rt("hashed private key",o(k),2*A),M=p(F.slice(0,A)),H=F.slice(A,2*A),Z=G(M),tt=S.multiply(Z),ct=tt.toRawBytes();return{head:M,prefix:H,scalar:Z,point:tt,pointBytes:ct}}function j(k){return q(k).pointBytes}function ft(k=new Uint8Array,...A){let F=ir(...A);return G(o(d(F,Rt("context",k),!!i)))}function Qt(k,A,F={}){k=Rt("message",k),i&&(k=i(k));let{prefix:M,scalar:H,pointBytes:Z}=q(A),tt=ft(F.context,M,k),ct=S.multiply(tt).toRawBytes(),et=ft(F.context,ct,Z,k),ot=$(tt+et*H);x(ot);let Ut=ir(ct,Xr(ot,r.BYTES));return Rt("result",Ut,s*2)}let T=pl;function D(k,A,F,M=T){let{context:H,zip215:Z}=M,tt=r.BYTES;k=Rt("signature",k,2*tt),A=Rt("message",A),i&&(A=i(A));let ct=Br(k.slice(tt,2*tt)),et,ot,Ut;try{et=E.fromHex(F,Z),ot=E.fromHex(k.slice(0,tt),Z),Ut=S.multiplyUnsafe(ct)}catch{return!1}if(!Z&&et.isSmallOrder())return!1;let Ct=ft(H,ot.toRawBytes(),et.toRawBytes(),A);return ot.add(et.multiplyUnsafe(Ct)).subtract(Ut).clearCofactor().equals(E.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:j,sign:Qt,verify:D,ExtendedPoint:E,utils:{getExtendedPublicKey:q,randomPrivateKey:()=>a(r.BYTES),precompute(k=8,A=E.BASE){return A._setWindowSize(k),A.multiply(BigInt(3)),A}}}}var gs=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),R4=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Ex=BigInt(0),gl=BigInt(1),ys=BigInt(2),ml=BigInt(5),P4=BigInt(10),xl=BigInt(20),vl=BigInt(40),L4=BigInt(80);function bl(e){let t=gs,n=e*e%t*e%t,i=Et(n,ys,t)*n%t,o=Et(i,gl,t)*e%t,a=Et(o,ml,t)*o%t,s=Et(a,P4,t)*a%t,c=Et(s,xl,t)*s%t,u=Et(c,vl,t)*c%t,f=Et(u,L4,t)*u%t,l=Et(f,L4,t)*u%t,p=Et(l,P4,t)*a%t;return{pow_p_5_8:Et(p,ys,t)*e%t,b2:n}}function wl(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function El(e,t){let r=gs,n=ht(t*t*t,r),i=ht(n*n*t,r),o=bl(e*i).pow_p_5_8,a=ht(e*n*o,r),s=ht(t*a*a,r),c=a,u=ht(a*R4,r),f=s===e,l=s===ht(-e,r),p=s===ht(-e*R4,r);return f&&(a=c),(l||p)&&(a=u),C4(a,r)&&(a=ht(-a,r)),{isValid:f||l,value:a}}var or=D1(gs,void 0,!0),ms={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:or,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:ss,randomBytes:On,adjustScalarBytes:wl,uvRatio:El},Fn=F1(ms);function N4(e,t,r){if(t.length>255)throw new Error("Context is too big");return T1(ns("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var Sx=F1({...ms,domain:N4}),Ix=F1({...ms,domain:N4,prehash:ss});var Sl=(or.ORDER+BigInt(3))/BigInt(8),Ax=or.pow(ys,Sl),Cx=or.sqrt(or.neg(or.ONE)),Bx=(or.ORDER-BigInt(5))/BigInt(8),Tx=BigInt(486662);var _x=B4(or,or.neg(BigInt(486664)));var Rx=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Px=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),Lx=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Nx=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var kx=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Kn=32,sr=64,K1=32;async function k4(){let e=Fn.utils.randomPrivateKey(),t=Fn.getPublicKey(e);return{privateKey:F4(e,t),publicKey:t}}async function D4(e){if(e.length!==K1)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=e,r=Fn.getPublicKey(t);return{privateKey:F4(t,r),publicKey:r}}async function O4(e,t){let r=e.subarray(0,K1);return Fn.sign(t,r)}async function U4(e,t,r){return Fn.verify(t,r,e)}function F4(e,t){let r=new Uint8Array(sr);for(let n=0;n<K1;n++)r[n]=e[n],r[K1+n]=t[n];return r}var xs={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function M1(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",o=e?.saltLength??16,a=e?.iterations??32767,s=Dt.get();r*=8;async function c(l,p){let d=s.getRandomValues(new Uint8Array(o)),h=s.getRandomValues(new Uint8Array(n)),y={name:t,iv:h};typeof p=="string"&&(p=pt(p));let g;if(p.length===0){g=await s.subtle.importKey("jwk",xs,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},v=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);g=await s.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}catch{g=await s.subtle.importKey("jwk",xs,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},v=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);g=await s.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}let m=await s.subtle.encrypt(y,g,l);return gt([d,y.iv,new Uint8Array(m)])}async function u(l,p){let d=l.subarray(0,o),h=l.subarray(o,o+n),y=l.subarray(o+n),g={name:t,iv:h};typeof p=="string"&&(p=pt(p));let m;if(p.length===0)try{let v={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},C=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await s.subtle.deriveKey(v,C,{name:t,length:r},!0,["decrypt"])}catch{m=await s.subtle.importKey("jwk",xs,{name:"AES-GCM"},!0,["decrypt"])}else{let v={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},C=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await s.subtle.deriveKey(v,C,{name:t,length:r},!0,["decrypt"])}let x=await s.subtle.decrypt(g,m,y);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Mn(e,t){let n=await M1().encrypt(e,t);return Or.encode(n)}var Vn={};Ft(Vn,{KeyType:()=>xt,PrivateKey:()=>Pe,PublicKey:()=>Re});var xt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(xt||(xt={}));var vs;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(vs||(vs={}));(function(e){e.codec=()=>En(vs)})(xt||(xt={}));var Re;(function(e){let t;e.codec=()=>(t==null&&(t=Fe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),xt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.Type=xt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Ue(r,e.codec()),e.decode=r=>Oe(r,e.codec())})(Re||(Re={}));var Pe;(function(e){let t;e.codec=()=>(t==null&&(t=Fe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),xt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.Type=xt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Ue(r,e.codec()),e.decode=r=>Oe(r,e.codec())})(Pe||(Pe={}));var v0=class{_key;constructor(t){this._key=qn(t,Kn)}async verify(t,r){return U4(this._key,r,t)}marshal(){return this._key}get bytes(){return Re.encode({Type:xt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}},jr=class{_key;_publicKey;constructor(t,r){this._key=qn(t,sr),this._publicKey=qn(r,Kn)}async sign(t){return O4(this._key,t)}get public(){return new v0(this._publicKey)}marshal(){return this._key}get bytes(){return Pe.encode({Type:xt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}async id(){let t=gr.digest(this.public.bytes);return Lt.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Mn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Al(e){if(e.length>sr){e=qn(e,sr+Kn);let n=e.subarray(0,sr),i=e.subarray(sr,e.length);return new jr(n,i)}e=qn(e,sr);let t=e.subarray(0,sr),r=e.subarray(Kn);return new jr(t,r)}function Cl(e){return e=qn(e,Kn),new v0(e)}async function Bl(){let{privateKey:e,publicKey:t}=await k4();return new jr(e,t)}async function bs(e){let{privateKey:t,publicKey:r}=await D4(e);return new jr(t,r)}function qn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new R(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var Wx=St(kt(),1),Zx=St(E1(),1),M4=St(ut(),1);function Le(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=gt([new Uint8Array(t-r.length),r])}return z(r,"base64url")}function de(e){let t=V1(e);return new M4.default.jsbn.BigInteger(z(t,"base16"),16)}function V1(e,t){let r=pt(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=gt([new Uint8Array(t-r.length),r])}return r}var V4={"P-256":256,"P-384":384,"P-521":521},Tl=Object.keys(V4),Es=Tl.join(" / ");async function q4(e){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new R(`Unknown curve: ${e}. Must be ${Es}`,"ERR_INVALID_CURVE");let t=await Dt.get().subtle.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"]),r=async(o,a)=>{let s;a!=null?s=await Dt.get().subtle.importKey("jwk",Rl(e,a),{name:"ECDH",namedCurve:e},!1,["deriveBits"]):s=t.privateKey;let c=await Dt.get().subtle.importKey("jwk",H4(e,o),{name:"ECDH",namedCurve:e},!1,[]),u=await Dt.get().subtle.deriveBits({name:"ECDH",namedCurve:e,public:c},s,V4[e]);return new Uint8Array(u,0,u.byteLength)},n=await Dt.get().subtle.exportKey("jwk",t.publicKey);return{key:_l(n),genSharedKey:r}}var z4={"P-256":32,"P-384":48,"P-521":66};function _l(e){if(e.crv==null||e.x==null||e.y==null)throw new R("JWK was missing components","ERR_INVALID_PARAMETERS");if(e.crv!=="P-256"&&e.crv!=="P-384"&&e.crv!=="P-521")throw new R(`Unknown curve: ${e.crv}. Must be ${Es}`,"ERR_INVALID_CURVE");let t=z4[e.crv];return gt([Uint8Array.from([4]),V1(e.x,t),V1(e.y,t)],1+t*2)}function H4(e,t){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new R(`Unknown curve: ${e}. Must be ${Es}`,"ERR_INVALID_CURVE");let r=z4[e];if(!dt(t.subarray(0,1),Uint8Array.from([4])))throw new R("Cannot unmarshal public key - invalid key format","ERR_INVALID_KEY_FORMAT");return{kty:"EC",crv:e,x:z(t.subarray(1,r+1),"base64url"),y:z(t.subarray(1+r),"base64url"),ext:!0}}var Rl=(e,t)=>({...H4(e,t.public),d:z(t.private,"base64url")});var $4=q4;async function G4(e,t){let r=Or.decode(e);return M1().decrypt(r,t)}var Q4={"AES-128":{ivSize:16,keySize:16},"AES-256":{ivSize:16,keySize:32},Blowfish:{ivSize:8,keySize:32}};async function Y4(e,t,r){let n=Q4[e];if(n==null){let x=Object.keys(Q4).join(" / ");throw new R(`unknown cipher type '${e}'. Must be ${x}`,"ERR_INVALID_CIPHER_TYPE")}if(t==null)throw new R("missing hash type","ERR_MISSING_HASH_TYPE");let i=n.keySize,o=n.ivSize,a=20,s=pt("key expansion"),c=2*(o+i+a),u=await d3(t,r),f=await u.digest(s),l=[],p=0;for(;p<c;){let x=await u.digest(gt([f,s])),v=x.length;p+v>c&&(v=c-p),l.push(x),p+=v,f=await u.digest(f)}let d=c/2,h=gt(l),y=h.subarray(0,d),g=h.subarray(d,c),m=x=>({iv:x.subarray(0,o),cipherKey:x.subarray(o,o+i),macKey:x.subarray(o+i)});return{k1:m(y),k2:m(g)}}var Bs={};Ft(Bs,{MAX_KEY_SIZE:()=>S0,RsaPrivateKey:()=>zn,RsaPublicKey:()=>E0,fromJwk:()=>Ml,generateKeyPair:()=>Vl,unmarshalRsaPrivateKey:()=>Fl,unmarshalRsaPublicKey:()=>Kl});var w0=St(ut(),1);var Fv=St(j4(),1);function en(e){if(isNaN(e)||e<=0)throw new R("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return On(e)}var bv=St(A1(),1),As=St(ut(),1);function t5(e,t){return t.map(r=>de(e[r]))}function e5(e){return As.default.pki.setRsaPrivateKey(...t5(e,["n","e","d","p","q","dp","dq","qi"]))}function r5(e){return As.default.pki.setRsaPublicKey(...t5(e,["n","e"]))}var rn={};Ft(rn,{jwkToPkcs1:()=>Nl,jwkToPkix:()=>Dl,pkcs1ToJwk:()=>Ll,pkixToJwk:()=>kl});var Sv=St(d0(),1),Iv=St(A1(),1);var ar=St(ut(),1);function Ll(e){let t=ar.default.asn1.fromDer(z(e,"ascii")),r=ar.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Le(r.n),e:Le(r.e),d:Le(r.d),p:Le(r.p),q:Le(r.q),dp:Le(r.dP),dq:Le(r.dQ),qi:Le(r.qInv),alg:"RS256"}}function Nl(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new R("JWK was missing components","ERR_INVALID_PARAMETERS");let t=ar.default.pki.privateKeyToAsn1({n:de(e.n),e:de(e.e),d:de(e.d),p:de(e.p),q:de(e.q),dP:de(e.dp),dQ:de(e.dq),qInv:de(e.qi)});return pt(ar.default.asn1.toDer(t).getBytes(),"ascii")}function kl(e){let t=ar.default.asn1.fromDer(z(e,"ascii")),r=ar.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Le(r.n),e:Le(r.e)}}function Dl(e){if(e.n==null||e.e==null)throw new R("JWK was missing components","ERR_INVALID_PARAMETERS");let t=ar.default.pki.publicKeyToAsn1({n:de(e.n),e:de(e.e)});return pt(ar.default.asn1.toDer(t).getBytes(),"ascii")}async function n5(e){let t=await Dt.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await s5(t);return{privateKey:r[0],publicKey:r[1]}}async function Cs(e){let r=[await Dt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Ol(e)],n=await s5({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function i5(e,t){let r=await Dt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Dt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function o5(e,t,r){let n=await Dt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Dt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function s5(e){if(e.privateKey==null||e.publicKey==null)throw new R("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Dt.get().subtle.exportKey("jwk",e.privateKey),Dt.get().subtle.exportKey("jwk",e.publicKey)])}async function Ol(e){return Dt.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function a5(e,t,r,n){let i=t?r5(e):e5(e),o=z(Uint8Array.from(r),"ascii"),a=n(o,i);return pt(a,"ascii")}function c5(e,t){return a5(e,!0,t,(r,n)=>n.encrypt(r))}function u5(e,t){return a5(e,!1,t,(r,n)=>n.decrypt(r))}function q1(e){if(e.kty!=="RSA")throw new R("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new R("invalid key modulus","ERR_INVALID_KEY_MODULUS");return pt(e.n,"base64url").length*8}var S0=8192,E0=class{_key;constructor(t){this._key=t}async verify(t,r){return o5(this._key,r,t)}marshal(){return rn.jwkToPkix(this._key)}get bytes(){return Re.encode({Type:xt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return c5(this._key,t)}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}},zn=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return en(16)}async sign(t){return i5(this._key,t)}get public(){if(this._publicKey==null)throw new R("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new E0(this._publicKey)}decrypt(t){return u5(this._key,t)}marshal(){return rn.jwkToPkcs1(this._key)}get bytes(){return Pe.encode({Type:xt.RSA,Data:this.marshal()}).subarray()}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new w0.default.util.ByteBuffer(this.marshal()),i=w0.default.asn1.fromDer(n),o=w0.default.pki.privateKeyFromAsn1(i),a={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return w0.default.pki.encryptRsaPrivateKey(o,t,a)}else{if(r==="libp2p-key")return Mn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function Fl(e){let t=rn.pkcs1ToJwk(e);if(q1(t)>S0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await Cs(t);return new zn(r.privateKey,r.publicKey)}function Kl(e){let t=rn.pkixToJwk(e);if(q1(t)>S0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new E0(t)}async function Ml(e){if(q1(e)>S0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Cs(e);return new zn(t.privateKey,t.publicKey)}async function Vl(e){if(e>S0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await n5(e);return new zn(t.privateKey,t.publicKey)}var Ns={};Ft(Ns,{Secp256k1PrivateKey:()=>A0,Secp256k1PublicKey:()=>I0,generateKeyPair:()=>r9,unmarshalSecp256k1PrivateKey:()=>t9,unmarshalSecp256k1PublicKey:()=>e9});var ql=(e,t,r)=>e&t^~e&r,zl=(e,t,r)=>e&t^e&r^t&r,Hl=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),_r=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Rr=new Uint32Array(64),Ts=class extends Un{constructor(){super(64,32,8,!1),this.A=_r[0]|0,this.B=_r[1]|0,this.C=_r[2]|0,this.D=_r[3]|0,this.E=_r[4]|0,this.F=_r[5]|0,this.G=_r[6]|0,this.H=_r[7]|0}get(){let{A:t,B:r,C:n,D:i,E:o,F:a,G:s,H:c}=this;return[t,r,n,i,o,a,s,c]}set(t,r,n,i,o,a,s,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=a|0,this.G=s|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)Rr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let p=Rr[l-15],d=Rr[l-2],h=Te(p,7)^Te(p,18)^p>>>3,y=Te(d,17)^Te(d,19)^d>>>10;Rr[l]=y+Rr[l-7]+h+Rr[l-16]|0}let{A:n,B:i,C:o,D:a,E:s,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let p=Te(s,6)^Te(s,11)^Te(s,25),d=f+p+ql(s,c,u)+Hl[l]+Rr[l]|0,y=(Te(n,2)^Te(n,13)^Te(n,22))+zl(n,i,o)|0;f=u,u=c,c=s,s=a+d|0,a=o,o=i,i=n,n=d+y|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,a=a+this.D|0,s=s+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,a,s,c,u,f)}roundClean(){Rr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var f5=_1(()=>new Ts);function $l(e){let t=x0(e);$e(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a:i}=t;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Gl,hexToBytes:Ql}=N1,nn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=nn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:Gl(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=nn,r=typeof e=="string"?Ql(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:o}=nn._parseInt(r.subarray(2)),{d:a,l:s}=nn._parseInt(o);if(s.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:a}},hexFromSig(e){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},n=t(r(e.s)),i=t(r(e.r)),o=n.length/2,a=i.length/2,s=r(o),c=r(a);return`30${r(a+o+4)}02${c}${i}02${s}${n}`}},cr=BigInt(0),xe=BigInt(1),Qv=BigInt(2),l5=BigInt(3),Yv=BigInt(4);function Yl(e){let t=$l(e),{Fp:r}=t,n=t.toBytes||((h,y,g)=>{let m=y.toAffine();return ir(Uint8Array.from([4]),r.toBytes(m.x),r.toBytes(m.y))}),i=t.fromBytes||(h=>{let y=h.subarray(1),g=r.fromBytes(y.subarray(0,r.BYTES)),m=r.fromBytes(y.subarray(r.BYTES,2*r.BYTES));return{x:g,y:m}});function o(h){let{a:y,b:g}=t,m=r.sqr(h),x=r.mul(m,h);return r.add(r.add(x,r.mul(h,y)),g)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function a(h){return typeof h=="bigint"&&cr<h&&h<t.n}function s(h){if(!a(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:y,nByteLength:g,wrapPrivateKey:m,n:x}=t;if(y&&typeof h!="bigint"){if(h instanceof Uint8Array&&(h=rr(h)),typeof h!="string"||!y.includes(h.length))throw new Error("Invalid key");h=h.padStart(g*2,"0")}let v;try{v=typeof h=="bigint"?h:nr(Rt("private key",h,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof h}`)}return m&&(v=ht(v,x)),s(v),v}let u=new Map;function f(h){if(!(h instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(y,g,m){if(this.px=y,this.py=g,this.pz=m,y==null||!r.isValid(y))throw new Error("x required");if(g==null||!r.isValid(g))throw new Error("y required");if(m==null||!r.isValid(m))throw new Error("z required")}static fromAffine(y){let{x:g,y:m}=y||{};if(!y||!r.isValid(g)||!r.isValid(m))throw new Error("invalid affine point");if(y instanceof l)throw new Error("projective point not allowed");let x=v=>r.eql(v,r.ZERO);return x(g)&&x(m)?l.ZERO:new l(g,m,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(y){let g=r.invertBatch(y.map(m=>m.pz));return y.map((m,x)=>m.toAffine(g[x])).map(l.fromAffine)}static fromHex(y){let g=l.fromAffine(i(Rt("pointHex",y)));return g.assertValidity(),g}static fromPrivateKey(y){return l.BASE.multiply(c(y))}_setWindowSize(y){this._WINDOW_SIZE=y,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:y,y:g}=this.toAffine();if(!r.isValid(y)||!r.isValid(g))throw new Error("bad point: x or y not FE");let m=r.sqr(g),x=o(y);if(!r.eql(m,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y}=this.toAffine();if(r.isOdd)return!r.isOdd(y);throw new Error("Field doesn't support isOdd")}equals(y){f(y);let{px:g,py:m,pz:x}=this,{px:v,py:C,pz:E}=y,S=r.eql(r.mul(g,E),r.mul(v,x)),L=r.eql(r.mul(m,E),r.mul(C,x));return S&&L}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){let{a:y,b:g}=t,m=r.mul(g,l5),{px:x,py:v,pz:C}=this,E=r.ZERO,S=r.ZERO,L=r.ZERO,N=r.mul(x,x),$=r.mul(v,v),G=r.mul(C,C),q=r.mul(x,v);return q=r.add(q,q),L=r.mul(x,C),L=r.add(L,L),E=r.mul(y,L),S=r.mul(m,G),S=r.add(E,S),E=r.sub($,S),S=r.add($,S),S=r.mul(E,S),E=r.mul(q,E),L=r.mul(m,L),G=r.mul(y,G),q=r.sub(N,G),q=r.mul(y,q),q=r.add(q,L),L=r.add(N,N),N=r.add(L,N),N=r.add(N,G),N=r.mul(N,q),S=r.add(S,N),G=r.mul(v,C),G=r.add(G,G),N=r.mul(G,q),E=r.sub(E,N),L=r.mul(G,$),L=r.add(L,L),L=r.add(L,L),new l(E,S,L)}add(y){f(y);let{px:g,py:m,pz:x}=this,{px:v,py:C,pz:E}=y,S=r.ZERO,L=r.ZERO,N=r.ZERO,$=t.a,G=r.mul(t.b,l5),q=r.mul(g,v),j=r.mul(m,C),ft=r.mul(x,E),Qt=r.add(g,m),T=r.add(v,C);Qt=r.mul(Qt,T),T=r.add(q,j),Qt=r.sub(Qt,T),T=r.add(g,x);let D=r.add(v,E);return T=r.mul(T,D),D=r.add(q,ft),T=r.sub(T,D),D=r.add(m,x),S=r.add(C,E),D=r.mul(D,S),S=r.add(j,ft),D=r.sub(D,S),N=r.mul($,T),S=r.mul(G,ft),N=r.add(S,N),S=r.sub(j,N),N=r.add(j,N),L=r.mul(S,N),j=r.add(q,q),j=r.add(j,q),ft=r.mul($,ft),T=r.mul(G,T),j=r.add(j,ft),ft=r.sub(q,ft),ft=r.mul($,ft),T=r.add(T,ft),q=r.mul(j,T),L=r.add(L,q),q=r.mul(D,T),S=r.mul(Qt,S),S=r.sub(S,q),q=r.mul(Qt,j),N=r.mul(D,N),N=r.add(N,q),new l(S,L,N)}subtract(y){return this.add(y.negate())}is0(){return this.equals(l.ZERO)}wNAF(y){return d.wNAFCached(this,u,y,g=>{let m=r.invertBatch(g.map(x=>x.pz));return g.map((x,v)=>x.toAffine(m[v])).map(l.fromAffine)})}multiplyUnsafe(y){let g=l.ZERO;if(y===cr)return g;if(s(y),y===xe)return this;let{endo:m}=t;if(!m)return d.unsafeLadder(this,y);let{k1neg:x,k1:v,k2neg:C,k2:E}=m.splitScalar(y),S=g,L=g,N=this;for(;v>cr||E>cr;)v&xe&&(S=S.add(N)),E&xe&&(L=L.add(N)),N=N.double(),v>>=xe,E>>=xe;return x&&(S=S.negate()),C&&(L=L.negate()),L=new l(r.mul(L.px,m.beta),L.py,L.pz),S.add(L)}multiply(y){s(y);let g=y,m,x,{endo:v}=t;if(v){let{k1neg:C,k1:E,k2neg:S,k2:L}=v.splitScalar(g),{p:N,f:$}=this.wNAF(E),{p:G,f:q}=this.wNAF(L);N=d.constTimeNegate(C,N),G=d.constTimeNegate(S,G),G=new l(r.mul(G.px,v.beta),G.py,G.pz),m=N.add(G),x=$.add(q)}else{let{p:C,f:E}=this.wNAF(g);m=C,x=E}return l.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(y,g,m){let x=l.BASE,v=(E,S)=>S===cr||S===xe||!E.equals(x)?E.multiplyUnsafe(S):E.multiply(S),C=v(this,g).add(v(y,m));return C.is0()?void 0:C}toAffine(y){let{px:g,py:m,pz:x}=this,v=this.is0();y==null&&(y=v?r.ONE:r.inv(x));let C=r.mul(g,y),E=r.mul(m,y),S=r.mul(x,y);if(v)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:C,y:E}}isTorsionFree(){let{h:y,isTorsionFree:g}=t;if(y===xe)return!0;if(g)return g(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:y,clearCofactor:g}=t;return y===xe?this:g?g(l,this):this.multiplyUnsafe(t.h)}toRawBytes(y=!0){return this.assertValidity(),n(l,this,y)}toHex(y=!0){return rr(this.toRawBytes(y))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);let p=t.nBitLength,d=O1(l,t.endo?Math.ceil(p/2):p);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function Wl(e){let t=x0(e);return $e(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function h5(e){let t=Wl(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function a(T){return cr<T&&T<r.ORDER}function s(T){return ht(T,n)}function c(T){return k1(T,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:p}=Yl({...t,toBytes(T,D,P){let k=D.toAffine(),A=r.toBytes(k.x),F=ir;return P?F(Uint8Array.from([D.hasEvenY()?2:3]),A):F(Uint8Array.from([4]),A,r.toBytes(k.y))},fromBytes(T){let D=T.length,P=T[0],k=T.subarray(1);if(D===i&&(P===2||P===3)){let A=nr(k);if(!a(A))throw new Error("Point is not on curve");let F=l(A),M=r.sqrt(F),H=(M&xe)===xe;return(P&1)===1!==H&&(M=r.neg(M)),{x:A,y:M}}else if(D===o&&P===4){let A=r.fromBytes(k.subarray(0,r.BYTES)),F=r.fromBytes(k.subarray(r.BYTES,2*r.BYTES));return{x:A,y:F}}else throw new Error(`Point of length ${D} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}}),d=T=>rr(Tr(T,t.nByteLength));function h(T){let D=n>>xe;return T>D}function y(T){return h(T)?s(-T):T}let g=(T,D,P)=>nr(T.slice(D,P));class m{constructor(D,P,k){this.r=D,this.s=P,this.recovery=k,this.assertValidity()}static fromCompact(D){let P=t.nByteLength;return D=Rt("compactSignature",D,P*2),new m(g(D,0,P),g(D,P,2*P))}static fromDER(D){let{r:P,s:k}=nn.toSig(Rt("DER",D));return new m(P,k)}assertValidity(){if(!p(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!p(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(D){return new m(this.r,this.s,D)}recoverPublicKey(D){let{r:P,s:k,recovery:A}=this,F=L(Rt("msgHash",D));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");let M=A===2||A===3?P+t.n:P;if(M>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=A&1?"03":"02",Z=u.fromHex(H+d(M)),tt=c(M),ct=s(-F*tt),et=s(k*tt),ot=u.BASE.multiplyAndAddUnsafe(Z,ct,et);if(!ot)throw new Error("point at infinify");return ot.assertValidity(),ot}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return Zr(this.toDERHex())}toDERHex(){return nn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Zr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let x={isValidPrivateKey(T){try{return f(T),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let T=ds(t.n);return _4(t.randomBytes(T),t.n)},precompute(T=8,D=u.BASE){return D._setWindowSize(T),D.multiply(BigInt(3)),D}};function v(T,D=!0){return u.fromPrivateKey(T).toRawBytes(D)}function C(T){let D=T instanceof Uint8Array,P=typeof T=="string",k=(D||P)&&T.length;return D?k===i||k===o:P?k===2*i||k===2*o:T instanceof u}function E(T,D,P=!0){if(C(T))throw new Error("first arg must be private key");if(!C(D))throw new Error("second arg must be public key");return u.fromHex(D).multiply(f(T)).toRawBytes(P)}let S=t.bits2int||function(T){let D=nr(T),P=T.length*8-t.nBitLength;return P>0?D>>BigInt(P):D},L=t.bits2int_modN||function(T){return s(S(T))},N=m0(t.nBitLength);function $(T){if(typeof T!="bigint")throw new Error("bigint expected");if(!(cr<=T&&T<N))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Tr(T,t.nByteLength)}function G(T,D,P=q){if(["recovered","canonical"].some(Ct=>Ct in P))throw new Error("sign() legacy options not supported");let{hash:k,randomBytes:A}=t,{lowS:F,prehash:M,extraEntropy:H}=P;F==null&&(F=!0),T=Rt("msgHash",T),M&&(T=Rt("prehashed msgHash",k(T)));let Z=L(T),tt=f(D),ct=[$(tt),$(Z)];if(H!=null){let Ct=H===!0?A(r.BYTES):H;ct.push(Rt("extraEntropy",Ct))}let et=ir(...ct),ot=Z;function Ut(Ct){let Yt=S(Ct);if(!p(Yt))return;let Wt=c(Yt),Mt=u.BASE.multiply(Yt).toAffine(),Zt=s(Mt.x);if(Zt===cr)return;let Qe=s(Wt*s(ot+Zt*tt));if(Qe===cr)return;let kr=(Mt.x===Zt?0:2)|Number(Mt.y&xe),Qn=Qe;return F&&h(Qe)&&(Qn=y(Qe),kr^=1),new m(Zt,Qn,kr)}return{seed:et,k2sig:Ut}}let q={lowS:t.lowS,prehash:!1},j={lowS:t.lowS,prehash:!1};function ft(T,D,P=q){let{seed:k,k2sig:A}=G(T,D,P),F=t;return us(F.hash.outputLen,F.nByteLength,F.hmac)(k,A)}u.BASE._setWindowSize(8);function Qt(T,D,P,k=j){let A=T;if(D=Rt("msgHash",D),P=Rt("publicKey",P),"strict"in k)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:M}=k,H,Z;try{if(typeof A=="string"||A instanceof Uint8Array)try{H=m.fromDER(A)}catch(Mt){if(!(Mt instanceof nn.Err))throw Mt;H=m.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:Mt,s:Zt}=A;H=new m(Mt,Zt)}else throw new Error("PARSE");Z=u.fromHex(P)}catch(Mt){if(Mt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&H.hasHighS())return!1;M&&(D=t.hash(D));let{r:tt,s:ct}=H,et=L(D),ot=c(ct),Ut=s(et*ot),Ct=s(tt*ot),Yt=u.BASE.multiplyAndAddUnsafe(Z,Ut,Ct)?.toAffine();return Yt?s(Yt.x)===tt:!1}return{CURVE:t,getPublicKey:v,getSharedSecret:E,sign:ft,verify:Qt,ProjectivePoint:u,Signature:m,utils:x}}var z1=class extends Dn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,m4(t);let n=g0(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,o=new Uint8Array(i);o.set(n.length>i?t.create().update(n).digest():n);for(let a=0;a<o.length;a++)o[a]^=54;this.iHash.update(o),this.oHash=t.create();for(let a=0;a<o.length;a++)o[a]^=106;this.oHash.update(o),o.fill(0)}update(t){return kn(this),this.iHash.update(t),this}digestInto(t){kn(this),rs(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:o,blockLen:a,outputLen:s}=this;return t=t,t.finished=i,t.destroyed=o,t.blockLen=a,t.outputLen=s,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},_s=(e,t,r)=>new z1(e,t).update(r).digest();_s.create=(e,t)=>new z1(e,t);function Zl(e){return{hash:e,hmac:(t,...r)=>_s(e,t,T1(...r)),randomBytes:On}}function d5(e,t){let r=n=>h5({...e,...Zl(n)});return Object.freeze({...r(t),create:r})}var g5=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),p5=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Xl=BigInt(1),Rs=BigInt(2),y5=(e,t)=>(e+t/Rs)/t;function Jl(e){let t=g5,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),a=BigInt(23),s=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=Et(f,r,t)*f%t,p=Et(l,r,t)*f%t,d=Et(p,Rs,t)*u%t,h=Et(d,i,t)*d%t,y=Et(h,o,t)*h%t,g=Et(y,s,t)*y%t,m=Et(g,c,t)*g%t,x=Et(m,s,t)*y%t,v=Et(x,r,t)*f%t,C=Et(v,a,t)*h%t,E=Et(C,n,t)*u%t,S=Et(E,Rs,t);if(!Ps.eql(Ps.sqr(S),e))throw new Error("Cannot find square root");return S}var Ps=D1(g5,void 0,void 0,{sqrt:Jl}),ur=d5({a:BigInt(0),b:BigInt(7),Fp:Ps,n:p5,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=p5,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Xl*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,a=BigInt("0x100000000000000000000000000000000"),s=y5(o*e,t),c=y5(-n*e,t),u=ht(e-s*r-c*i,t),f=ht(-s*n-c*o,t),l=u>a,p=f>a;if(l&&(u=t-u),p&&(f=t-f),u>a||f>a)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:p,k2:f}}}},f5),sb=BigInt(0);var ab=ur.ProjectivePoint;function m5(){return ur.utils.randomPrivateKey()}async function x5(e,t){let{digest:r}=await It.digest(t);try{return ur.sign(r,e).toDERRawBytes()}catch(n){throw new R(String(n),"ERR_INVALID_INPUT")}}async function v5(e,t,r){try{let{digest:n}=await It.digest(r);return ur.verify(t,n,e)}catch(n){throw new R(String(n),"ERR_INVALID_INPUT")}}function b5(e){return ur.ProjectivePoint.fromHex(e).toRawBytes(!0)}function w5(e){try{ur.getPublicKey(e,!0)}catch(t){throw new R(String(t),"ERR_INVALID_PRIVATE_KEY")}}function Ls(e){try{ur.ProjectivePoint.fromHex(e)}catch(t){throw new R(String(t),"ERR_INVALID_PUBLIC_KEY")}}function E5(e){try{return ur.getPublicKey(e,!0)}catch(t){throw new R(String(t),"ERR_INVALID_PRIVATE_KEY")}}var I0=class{_key;constructor(t){Ls(t),this._key=t}async verify(t,r){return v5(this._key,r,t)}marshal(){return b5(this._key)}get bytes(){return Re.encode({Type:xt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}},A0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??E5(t),w5(this._key),Ls(this._publicKey)}async sign(t){return x5(this._key,t)}get public(){return new I0(this._publicKey)}marshal(){return this._key}get bytes(){return Pe.encode({Type:xt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Mn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function t9(e){return new A0(e)}function e9(e){return new I0(e)}async function r9(){let e=m5();return new A0(e)}var Ge={rsa:Bs,ed25519:ws,secp256k1:Ns};function ks(e){let t=Object.keys(Ge).join(" / ");return new R(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Ds(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return Ge[e];throw ks(e)}async function n9(e,t){return Ds(e).generateKeyPair(t??2048)}async function i9(e,t,r){if(e.toLowerCase()!=="ed25519")throw new R("Seed key derivation is unimplemented for RSA or secp256k1","ERR_UNSUPPORTED_KEY_DERIVATION_TYPE");return bs(t)}function o9(e){let t=Re.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case xt.RSA:return Ge.rsa.unmarshalRsaPublicKey(r);case xt.Ed25519:return Ge.ed25519.unmarshalEd25519PublicKey(r);case xt.Secp256k1:return Ge.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw ks(t.Type??"unknown")}}function s9(e,t){return t=(t??"rsa").toLowerCase(),Ds(t),e.bytes}async function S5(e){let t=Pe.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case xt.RSA:return Ge.rsa.unmarshalRsaPrivateKey(r);case xt.Ed25519:return Ge.ed25519.unmarshalEd25519PrivateKey(r);case xt.Secp256k1:return Ge.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw ks(t.Type??"RSA")}}function a9(e,t){return t=(t??"rsa").toLowerCase(),Ds(t),e.bytes}async function c9(e,t){try{let i=await G4(e,t);return await S5(i)}catch{}let r=H1.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new R("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=H1.default.asn1.toDer(H1.default.pki.privateKeyToAsn1(r));return n=pt(n.getBytes(),"ascii"),Ge.rsa.unmarshalRsaPrivateKey(n)}var u9=St(Go(),1),f9=St(kt(),1);function G1(e,t){for(let r=0;r<e.byteLength;r++){if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return e.byteLength>t.byteLength?1:e.byteLength<t.byteLength?-1:0}function fr(e,t){if(e.length!==t.length)throw new Error("Inputs should have the same length");let r=zt(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return We(r)}var Q1=class{originDhtKey;capacity;peerDistances;constructor(t,r){this.originDhtKey=t,this.capacity=r,this.peerDistances=[]}get length(){return this.peerDistances.length}get peers(){return this.peerDistances.map(t=>t.peerId)}async add(t){if(this.peerDistances.find(i=>i.peerId.equals(t))!=null)return;let r=await Ae(t),n={peerId:t,distance:fr(this.originDhtKey,r)};this.peerDistances.push(n),this.peerDistances.sort((i,o)=>G1(i.distance,o.distance)),this.peerDistances=this.peerDistances.slice(0,this.capacity)}async anyCloser(t){if(t.length===0)return!1;if(this.length===0)return!0;let r=await Promise.all(t.map(Ae)),n=this.peerDistances[this.peerDistances.length-1].distance;for(let i of r){let o=fr(this.originDhtKey,i);if(G1(o,n)<0)return!0}return!1}};var Y1=class{components;log;routingTable;network;validators;queryManager;constructor(t,r){let{routingTable:n,network:i,validators:o,queryManager:a,lan:s}=r;this.components=t,this.routingTable=n,this.network=i,this.validators=o,this.queryManager=a,this.log=X(`libp2p:kad-dht:${s?"lan":"wan"}:peer-routing`)}async findPeerLocal(t){let r,n=await this.routingTable.find(t);if(n!=null){this.log("findPeerLocal found %p in routing table",t);try{r=await this.components.peerStore.get(n)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}}if(r==null)try{r=await this.components.peerStore.get(t)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}if(r!=null)return this.log("findPeerLocal found %p in peer store",t),{id:r.id,multiaddrs:r.addresses.map(i=>i.multiaddr),protocols:[]}}async*_getValueSingle(t,r,n={}){let i=new _t(Nt.GET_VALUE,r,0);yield*this.network.sendRequest(t,i,n)}async*getPublicKeyFromNode(t,r={}){let n=Ka(t);for await(let i of this._getValueSingle(t,n,r))if(yield i,i.name==="PEER_RESPONSE"&&i.record!=null){let o=await ia($1.marshalPublicKey({bytes:i.record.value}));if(!o.equals(t))throw new R("public key does not match id","ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID");if(o.publicKey==null)throw new R("public key missing","ERR_PUBLIC_KEY_MISSING");yield c0({from:t,value:o.publicKey},r)}throw new R(`Node not responding with its public key: ${t.toString()}`,"ERR_INVALID_RECORD")}async*findPeer(t,r={}){this.log("findPeer %p",t);let n=await this.findPeerLocal(t);if(n!=null){this.log("found local"),yield j0({from:this.components.peerId,peer:n},r);return}let i=this,o=async function*({peer:s,signal:c}){let u=new _t(Nt.FIND_NODE,t.toBytes(),0);for await(let f of i.network.sendRequest(s,u,{...r,signal:c}))if(yield f,f.name==="PEER_RESPONSE"){let l=f.closer.find(p=>p.id.equals(t));l!=null&&(yield j0({from:f.from,peer:l},r))}},a=!1;for await(let s of this.queryManager.run(t.toBytes(),o,r))s.name==="FINAL_PEER"&&(a=!0),yield s;a||(yield ne({from:this.components.peerId,error:new R("Not found","ERR_NOT_FOUND")},r))}async*getClosestPeers(t,r={}){this.log("getClosestPeers to %b",t);let n=await br(t),i=this.routingTable.closestPeers(n),o=this,a=new Q1(n,this.routingTable.kBucketSize);await Promise.all(i.map(async c=>{await a.add(c)}));let s=async function*({peer:c,signal:u}){o.log("closerPeersSingle %s from %p",z(t,"base32"),c);let f=new _t(Nt.FIND_NODE,t,0);yield*o.network.sendRequest(c,f,{...r,signal:u})};for await(let c of this.queryManager.run(t,s,r))yield c,c.name==="PEER_RESPONSE"&&await Promise.all(c.closer.map(async u=>{await a.add(u.id)}));this.log("found %d peers close to %b",a.length,t);for(let c of a.peers)try{let u=await this.components.peerStore.get(c);yield j0({from:this.components.peerId,peer:{id:c,multiaddrs:u.addresses.map(({multiaddr:f})=>f),protocols:u.protocols}},r)}catch(u){if(u.code!=="ERR_NOT_FOUND")throw u}}async*getValueOrPeers(t,r,n={}){for await(let i of this._getValueSingle(t,r,n)){if(i.name==="PEER_RESPONSE"&&i.record!=null)try{await this._verifyRecordOnline(i.record)}catch{let a="invalid record received, discarded";this.log(a),yield ne({from:i.from,error:new R(a,"ERR_INVALID_RECORD")},n);continue}yield i}}async _verifyRecordOnline(t){if(t.timeReceived==null)throw new R("invalid record received","ERR_INVALID_RECORD");await Sn(this.validators,new Vt(t.key,t.value,t.timeReceived))}async getCloserPeersOffline(t,r){let n=await br(t),i=this.routingTable.closestPeers(n),o=[];for(let a of i)if(!a.equals(r))try{let s=await this.components.peerStore.get(a);o.push({id:a,multiaddrs:s.addresses.map(({multiaddr:c})=>c),protocols:s.protocols})}catch(s){if(s.code!=="ERR_NOT_FOUND")throw s}return o.length>0?this.log("getCloserPeersOffline found %d peer(s) closer to %b than %p",o.length,t,r):this.log("getCloserPeersOffline could not find peer closer to %b than %p",t,r),o}};var U5=St(A5(),1);var Us=St(B5(),1);var B0=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Fs=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},T5=e=>globalThis.DOMException===void 0?new Fs(e):new DOMException(e),_5=e=>{let t=e.reason===void 0?T5("This operation was aborted."):e.reason;return t instanceof Error?t:T5(t)};function Ks(e,t,r,n){let i,o=new Promise((a,s)=>{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){a(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&s(_5(c)),c.addEventListener("abort",()=>{s(_5(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{a(r())}catch(f){s(f)}return}let c=typeof r=="string"?r:`Promise timed out after ${t} milliseconds`,u=r instanceof Error?r:new B0(c);typeof e.cancel=="function"&&e.cancel(),s(u)},t),(async()=>{try{a(await e)}catch(c){s(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return o.clear=()=>{clearTimeout(i),i=void 0},o}function Ms(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),a=n+o;r(e[a],t)<=0?(n=++a,i-=o+1):i=o}return n}var on=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},lr,Vs=class{constructor(){lr.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&on(this,lr,"f")[this.size-1].priority>=r.priority){on(this,lr,"f").push(n);return}let i=Ms(on(this,lr,"f"),n,(o,a)=>a.priority-o.priority);on(this,lr,"f").splice(i,0,n)}dequeue(){let t=on(this,lr,"f").shift();return t?.run}filter(t){return on(this,lr,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return on(this,lr,"f").length}};lr=new WeakMap;var R5=Vs;var At=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},K=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Ot,_0,R0,Lr,ei,P0,Z1,Ne,T0,pe,X1,ye,L0,Pr,J1,P5,L5,D5,N5,k5,j1,qs,zs,ri,O5,ti,ni=class extends Error{},Hs=class extends Us.default{constructor(t){var r,n,i,o;if(super(),Ot.add(this),_0.set(this,void 0),R0.set(this,void 0),Lr.set(this,0),ei.set(this,void 0),P0.set(this,void 0),Z1.set(this,0),Ne.set(this,void 0),T0.set(this,void 0),pe.set(this,void 0),X1.set(this,void 0),ye.set(this,0),L0.set(this,void 0),Pr.set(this,void 0),J1.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:R5,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(o=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&o!==void 0?o:""}\` (${typeof t.interval})`);At(this,_0,t.carryoverConcurrencyCount,"f"),At(this,R0,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),At(this,ei,t.intervalCap,"f"),At(this,P0,t.interval,"f"),At(this,pe,new t.queueClass,"f"),At(this,X1,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,At(this,J1,t.throwOnTimeout===!0,"f"),At(this,Pr,t.autoStart===!1,"f")}get concurrency(){return K(this,L0,"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})`);At(this,L0,t,"f"),K(this,Ot,"m",ri).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:K(this,J1,"f"),...r},new Promise((n,i)=>{K(this,pe,"f").enqueue(async()=>{var o,a,s;At(this,ye,(a=K(this,ye,"f"),a++,a),"f"),At(this,Lr,(s=K(this,Lr,"f"),s++,s),"f");try{if(!((o=r.signal)===null||o===void 0)&&o.aborted)throw new ni("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=Ks(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,K(this,Ot,"m",O5).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof B0&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{K(this,Ot,"m",D5).call(this)}},r),this.emit("add"),K(this,Ot,"m",j1).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return K(this,Pr,"f")?(At(this,Pr,!1,"f"),K(this,Ot,"m",ri).call(this),this):this}pause(){At(this,Pr,!0,"f")}clear(){At(this,pe,new(K(this,X1,"f")),"f")}async onEmpty(){K(this,pe,"f").size!==0&&await K(this,Ot,"m",ti).call(this,"empty")}async onSizeLessThan(t){K(this,pe,"f").size<t||await K(this,Ot,"m",ti).call(this,"next",()=>K(this,pe,"f").size<t)}async onIdle(){K(this,ye,"f")===0&&K(this,pe,"f").size===0||await K(this,Ot,"m",ti).call(this,"idle")}get size(){return K(this,pe,"f").size}sizeBy(t){return K(this,pe,"f").filter(t).length}get pending(){return K(this,ye,"f")}get isPaused(){return K(this,Pr,"f")}};_0=new WeakMap,R0=new WeakMap,Lr=new WeakMap,ei=new WeakMap,P0=new WeakMap,Z1=new WeakMap,Ne=new WeakMap,T0=new WeakMap,pe=new WeakMap,X1=new WeakMap,ye=new WeakMap,L0=new WeakMap,Pr=new WeakMap,J1=new WeakMap,Ot=new WeakSet,P5=function(){return K(this,R0,"f")||K(this,Lr,"f")<K(this,ei,"f")},L5=function(){return K(this,ye,"f")<K(this,L0,"f")},D5=function(){var t;At(this,ye,(t=K(this,ye,"f"),t--,t),"f"),K(this,Ot,"m",j1).call(this),this.emit("next")},N5=function(){K(this,Ot,"m",zs).call(this),K(this,Ot,"m",qs).call(this),At(this,T0,void 0,"f")},k5=function(){let t=Date.now();if(K(this,Ne,"f")===void 0){let r=K(this,Z1,"f")-t;if(r<0)At(this,Lr,K(this,_0,"f")?K(this,ye,"f"):0,"f");else return K(this,T0,"f")===void 0&&At(this,T0,setTimeout(()=>{K(this,Ot,"m",N5).call(this)},r),"f"),!0}return!1},j1=function(){if(K(this,pe,"f").size===0)return K(this,Ne,"f")&&clearInterval(K(this,Ne,"f")),At(this,Ne,void 0,"f"),this.emit("empty"),K(this,ye,"f")===0&&this.emit("idle"),!1;if(!K(this,Pr,"f")){let t=!K(this,Ot,"a",k5);if(K(this,Ot,"a",P5)&&K(this,Ot,"a",L5)){let r=K(this,pe,"f").dequeue();return r?(this.emit("active"),r(),t&&K(this,Ot,"m",qs).call(this),!0):!1}}return!1},qs=function(){K(this,R0,"f")||K(this,Ne,"f")!==void 0||(At(this,Ne,setInterval(()=>{K(this,Ot,"m",zs).call(this)},K(this,P0,"f")),"f"),At(this,Z1,Date.now()+K(this,P0,"f"),"f"))},zs=function(){K(this,Lr,"f")===0&&K(this,ye,"f")===0&&K(this,Ne,"f")&&(clearInterval(K(this,Ne,"f")),At(this,Ne,void 0,"f")),At(this,Lr,K(this,_0,"f")?K(this,ye,"f"):0,"f"),K(this,Ot,"m",ri).call(this)},ri=function(){for(;K(this,Ot,"m",j1).call(this););},O5=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new ni("The task was aborted."))},{once:!0})})},ti=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var Hn=Hs;var hr=X("libp2p:kad-dht:providers"),ii=class{components;cache;cleanupInterval;provideValidity;syncQueue;started;cleaner;constructor(t,r={}){let{cacheSize:n,cleanupInterval:i,provideValidity:o}=r;this.components=t,this.cleanupInterval=i??36e5,this.provideValidity=o??864e5,this.cache=(0,U5.default)(n??256),this.syncQueue=new Hn({concurrency:1}),this.started=!1}isStarted(){return this.started}async start(){this.started||(this.started=!0,this.cleaner=setInterval(()=>{this._cleanup().catch(t=>{hr.error(t)})},this.cleanupInterval))}async stop(){this.started=!1,this.cleaner!=null&&(clearInterval(this.cleaner),this.cleaner=void 0)}async _cleanup(){await this.syncQueue.add(async()=>{let t=Date.now(),r=0,n=0,i=new Map,o=this.components.datastore.batch(),a=this.components.datastore.query({prefix:Oi});for await(let s of a)try{let{cid:c,peerId:u}=F5(s.key),f=K5(s.value).getTime(),l=Date.now(),p=l-f,d=p>this.provideValidity;if(hr("comparing: %d - %d = %d > %d %s",l,f,p,this.provideValidity,d?"(expired)":""),d){n++,o.delete(s.key);let h=i.get(c)??new Set;h.add(u),i.set(c,h)}r++}catch(c){hr.error(c.message)}i.size>0?(hr("deleting %d / %d entries",n,r),await o.commit()):hr("nothing to delete");for(let[s,c]of i){let u=N0(s),f=this.cache.get(u);if(f!=null){for(let l of c)f.delete(l);f.size===0?this.cache.remove(u):this.cache.set(u,f)}}hr("Cleanup successful (%dms)",Date.now()-t)})}async _getProvidersMap(t){let r=N0(t),n=this.cache.get(r);return n==null&&(n=await m9(this.components.datastore,t),this.cache.set(r,n)),n}async addProvider(t,r){await this.syncQueue.add(async()=>{hr("%p provides %s",r,t);let n=await this._getProvidersMap(t);hr("loaded %s provs",n.size);let i=new Date;n.set(r.toString(),i);let o=N0(t);this.cache.set(o,n),await g9(this.components.datastore,t,r,i)})}async getProviders(t){return this.syncQueue.add(async()=>(hr("get providers for %s",t),[...(await this._getProvidersMap(t)).keys()].map(n=>Tt(n))),{throwOnTimeout:!0})}};function N0(e){let t=typeof e=="string"?e:z(e.multihash.bytes,"base32");return`${Oi}/${t}`}async function g9(e,t,r,n){let i=[N0(t),"/",r.toString()].join(""),o=new In(i),a=De(n.getTime());await e.put(o,a)}function F5(e){let t=e.toString().split("/");if(t.length!==5)throw new Error(`incorrectly formatted provider entry key in datastore: ${e.toString()}`);return{cid:t[3],peerId:t[4]}}async function m9(e,t){let r=new Map,n=e.query({prefix:N0(t)});for await(let i of n){let{peerId:o}=F5(i.key);r.set(o,K5(i.value))}return r}function K5(e){return new Date(Se(e))}function dr(e,t){let r={[Symbol.iterator]:()=>r,next:()=>{let n=e.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return r}var $s=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return dr(this.map.entries(),t=>[Tt(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,Tt(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,r){this.map.set(t.toString(),r)}keys(){return dr(this.map.keys(),t=>Tt(t))}values(){return this.map.values()}get size(){return this.map.size}};var Nr=class e{set;constructor(t){if(this.set=new Set,t!=null)for(let r of t)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return dr(this.set.entries(),t=>{let r=Tt(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=Tt(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return dr(this.set.values(),t=>Tt(t))}intersection(t){let r=new e;for(let n of t)this.has(n)&&r.add(n);return r}difference(t){let r=new e;for(let n of this)t.has(n)||r.add(n);return r}union(t){let r=new e;for(let n of t)r.add(n);for(let n of this)r.add(n);return r}};var Gs=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return dr(this.list.entries(),t=>Tt(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return dr(this.list.entries(),t=>[t[0],Tt(t[1])])}every(t){return this.list.every((r,n)=>t(Tt(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let o=Tt(n);t(o,i,this)&&r.push(o)}),r}find(t){let r=this.list.find((n,i)=>t(Tt(n),i,this));if(r!=null)return Tt(r)}findIndex(t){return this.list.findIndex((r,n)=>t(Tt(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(Tt(r),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return Tt(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return Tt(t)}unshift(...t){let r=this.list.length;for(let n=t.length-1;n>-1;n--)r=this.list.unshift(t[n].toString());return r}get length(){return this.list.length}};function $n(e){let t=new globalThis.AbortController;function r(){t.abort();for(let o of e)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}for(let o of e){if(o?.aborted===!0){r();break}o?.addEventListener!=null&&o.addEventListener("abort",r)}function n(){for(let o of e)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}let i=t.signal;return i.clear=n,i}var x9=BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");async function*M5(e){let{key:t,startingPeer:r,ourPeerId:n,signal:i,query:o,alpha:a,pathIndex:s,numPaths:c,cleanUp:u,queryFuncTimeout:f,log:l,peersSeen:p}=e,d=new Hn({concurrency:a}),h=await br(t);function y(g,m){if(g==null)return;p.add(g);let x=BigInt("0x"+z(fr(m,h),"base16"));d.add(async()=>{let v=[i];f!=null&&v.push(AbortSignal.timeout(f));let C=$n(v);try{for await(let E of o({key:t,peer:g,signal:C,pathIndex:s,numPaths:c})){if(C.aborted)return;if(E.name==="PEER_RESPONSE")for(let S of E.closer){if(p.has(S.id)){l("already seen %p in query",S.id);continue}if(n.equals(S.id)){l("not querying ourselves");continue}let L=await Ae(S.id);if(BigInt("0x"+z(fr(L,h),"base16"))>x){l("skipping %p as they are not closer to %b than %p",S.id,t,g);continue}l("querying closer peer %p",S.id),y(S.id,L)}d.emit("completed",E)}}catch(E){if(!i.aborted)return ne({from:g,error:E},e)}finally{C.clear()}},{priority:x9-x}).catch(v=>{l.error(v)})}y(r,await Ae(r)),yield*v9(d,i,u,l)}async function*v9(e,t,r,n){let i=Jt(),o=!0,a=[],s=()=>{o&&(n("clean up queue, results %d, queue size %d, pending tasks %d",a.length,e.size,e.pending),o=!1,e.clear(),a.splice(0,a.length))};for(e.on("completed",c=>{a.push(c),i.resolve()}),e.on("error",c=>{n("queue error",c),s(),i.reject(c)}),e.on("idle",()=>{n("queue idle"),o=!1,i.resolve()}),t.addEventListener("abort",()=>{n("abort queue");let c=o;s(),c&&i.reject(new R("Query aborted","ERR_QUERY_ABORTED"))}),r.addEventListener("cleanup",()=>{s(),i.resolve()});o;)for(await i.promise,i=Jt();a.length>0;){let c=a.shift();c!=null&&(yield c)}yield*a}var si=class{components;lan;disjointPaths;alpha;shutDownController;running;queries;metrics;routingTable;initialQuerySelfHasRun;constructor(t,r){let{lan:n=!1,disjointPaths:i=20,alpha:o=3}=r;this.components=t,this.disjointPaths=i??20,this.running=!1,this.alpha=o??3,this.lan=n,this.queries=0,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun,this.routingTable=r.routingTable,this.shutDownController=new AbortController,sn(1/0,this.shutDownController.signal)}isStarted(){return this.running}async start(){this.running=!0,this.components.metrics!=null&&this.metrics==null&&(this.metrics={runningQueries:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_running_queries`),queryTime:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_query_time_seconds`)})}async stop(){this.running=!1,this.shutDownController.abort()}async*run(t,r,n={}){if(!this.running)throw new Error("QueryManager not started");let i=this.metrics?.queryTime.timer();n.signal==null&&(n.signal=AbortSignal.timeout(3e4),sn(1/0,n.signal));let o=$n([this.shutDownController.signal,n.signal]);sn(1/0,o);let a=X(`libp2p:kad-dht:${this.lan?"lan":"wan"}:query:`+z(t,"base58btc")),s=Date.now(),c=new Xt;try{n.isSelfQuery!==!0&&this.initialQuerySelfHasRun!=null&&(a("waiting for initial query-self query before continuing"),await Promise.race([new Promise((h,y)=>{o.addEventListener("abort",()=>{y(new F0("Query was aborted before self-query ran"))})}),this.initialQuerySelfHasRun.promise]),this.initialQuerySelfHasRun=void 0),a("query:start"),this.queries++,this.metrics?.runningQueries.update(this.queries);let u=await br(t),f=this.routingTable.closestPeers(u),l=f.slice(0,Math.min(this.disjointPaths,f.length));if(f.length===0){a.error("Running query with no peers");return}let p=new Nr,d=l.map((h,y)=>M5({key:t,startingPeer:h,ourPeerId:this.components.peerId,signal:o,query:r,pathIndex:y,numPaths:l.length,alpha:this.alpha,cleanUp:c,queryFuncTimeout:n.queryFuncTimeout,log:a,peersSeen:p,onProgress:n.onProgress}));for await(let h of be(...d))yield h,h.name==="QUERY_ERROR"&&a("error",h.error)}catch(u){if(!(!this.running&&u.code==="ERR_QUERY_ABORTED"))throw u}finally{o.clear(),this.queries--,this.metrics?.runningQueries.update(this.queries),i?.(),c.dispatchEvent(new Pt("cleanup")),a("query:done in %dms",Date.now()-s)}}};function w9(e){return e[Symbol.asyncIterator]!=null}function E9(e){if(w9(e))return(async()=>{let t=0;for await(let r of e)t++;return t})();{let t=0;for(let r of e)t++;return t}}var ai=E9;function S9(e){return e[Symbol.asyncIterator]!=null}function I9(e,t){return S9(e)?async function*(){let r=0;if(!(t<1)){for await(let n of e)if(yield n,r++,r===t)return}}():function*(){let r=0;if(!(t<1)){for(let n of e)if(yield n,r++,r===t)return}}()}var V5=I9;var ci=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Qs=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},q5=e=>globalThis.DOMException===void 0?new Qs(e):new DOMException(e),z5=e=>{let t=e.reason===void 0?q5("This operation was aborted."):e.reason;return t instanceof Error?t:q5(t)};function Ys(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,a,c=new Promise((u,f)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(t.signal){let{signal:p}=t;p.aborted&&f(z5(p)),p.addEventListener("abort",()=>{f(z5(p))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new ci;a=o.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(p){f(p)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?u():i instanceof Error?f(i):(l.message=i??`Promise timed out after ${r} milliseconds`,f(l))},r),(async()=>{try{u(await e)}catch(p){f(p)}})()}).finally(()=>{c.clear()});return c.clear=()=>{o.clearTimeout.call(void 0,a),a=void 0},c}var A9=e=>{let t=e.on||e.addListener||e.addEventListener,r=e.off||e.removeListener||e.removeEventListener;if(!t||!r)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(e),removeListener:r.bind(e)}};function C9(e,t,r){let n,i=new Promise((o,a)=>{if(r={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...r},!(r.count>=0&&(r.count===Number.POSITIVE_INFINITY||Number.isInteger(r.count))))throw new TypeError("The `count` option should be at least 0 or more");r.signal?.throwIfAborted();let s=[t].flat(),c=[],{addListener:u,removeListener:f}=A9(e),l=(...d)=>{let h=r.multiArgs?d:d[0];r.filter&&!r.filter(h)||(c.push(h),r.count===c.length&&(n(),o(c)))},p=d=>{n(),a(d)};n=()=>{for(let d of s)f(d,l);for(let d of r.rejectionEvents)f(d,p)};for(let d of s)u(d,l);for(let d of r.rejectionEvents)u(d,p);r.signal&&r.signal.addEventListener("abort",()=>{p(r.signal.reason)},{once:!0}),r.resolveImmediately&&o(c)});if(i.cancel=n,typeof r.timeout=="number"){let o=Ys(i,{milliseconds:r.timeout});return o.cancel=n,o}return i}function H5(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=C9(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var ui=class{log;components;peerRouting;routingTable;count;interval;initialInterval;queryTimeout;started;timeoutId;controller;initialQuerySelfHasRun;querySelfPromise;constructor(t,r){let{peerRouting:n,lan:i,count:o,interval:a,queryTimeout:s,routingTable:c}=r;this.components=t,this.log=X(`libp2p:kad-dht:${i?"lan":"wan"}:query-self`),this.started=!1,this.peerRouting=n,this.routingTable=c,this.count=o??20,this.interval=a??3e5,this.initialInterval=r.initialInterval??1e3,this.queryTimeout=s??5e3,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun}isStarted(){return this.started}start(){this.started||(this.started=!0,clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.querySelf().catch(t=>{this.log.error("error running self-query",t)})},this.initialInterval))}stop(){this.started=!1,this.timeoutId!=null&&clearTimeout(this.timeoutId),this.controller!=null&&this.controller.abort()}async querySelf(){if(!this.started){this.log("skip self-query because we are not started");return}if(this.querySelfPromise!=null)return this.log("joining existing self query"),this.querySelfPromise.promise;if(this.querySelfPromise=Jt(),this.started){this.controller=new AbortController;let t=$n([this.controller.signal,AbortSignal.timeout(this.queryTimeout)]);sn(1/0,t);try{this.routingTable.size===0&&(this.log("routing table was empty, waiting for some peers before running query"),await H5(this.routingTable,"peer:add",{signal:t})),this.log("run self-query, look for %d peers timing out after %dms",this.count,this.queryTimeout);let r=Date.now(),n=await Ee(this.peerRouting.getClosestPeers(this.components.peerId.toBytes(),{signal:t,isSelfQuery:!0}),i=>V5(i,this.count),async i=>ai(i));this.log("self-query found %d peers in %dms",n,Date.now()-r)}catch(r){this.log.error("self-query error",r)}finally{t.clear(),this.initialQuerySelfHasRun!=null&&(this.initialQuerySelfHasRun.resolve(),this.initialQuerySelfHasRun=void 0)}}this.querySelfPromise.resolve(),this.querySelfPromise=void 0,this.started&&(this.timeoutId=setTimeout(()=>{this.querySelf().catch(t=>{this.log.error("error running self-query",t)})},this.interval))}};function $5(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;++r)if(e[r]!==t[r])return!1;return!0}function Ws(){return{contacts:[],dontSplit:!1,left:null,right:null}}function k0(e,t){if(!(t instanceof Uint8Array))throw new TypeError(e+" is not a Uint8Array")}var fi=class e extends Xt{localNodeId;root;numberOfNodesPerKBucket;numberOfNodesToPing;distance;arbiter;constructor(t){super(),this.localNodeId=t.localNodeId,this.numberOfNodesPerKBucket=t.numberOfNodesPerKBucket??20,this.numberOfNodesToPing=t.numberOfNodesToPing??3,this.distance=t.distance??e.distance,this.arbiter=t.arbiter??e.arbiter,k0("option.localNodeId as parameter 1",this.localNodeId),this.root=Ws()}static arbiter(t,r){return(t.vectorClock??0)>(r.vectorClock??0)?t:r}static distance(t,r){let n=0,i=0,o=Math.min(t.length,r.length),a=Math.max(t.length,r.length);for(;i<o;++i)n=n*256+(t[i]^r[i]);for(;i<a;++i)n=n*256+255;return n}add(t){k0("contact.id",t?.id);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t.id,r++);let i=this._indexOf(n,t.id);return i>=0?(this._update(n,i,t),this):n.contacts.length<this.numberOfNodesPerKBucket?(n.contacts.push(t),this.safeDispatchEvent("added",{detail:t}),this):n.dontSplit?(this.safeDispatchEvent("ping",{detail:{oldContacts:n.contacts.slice(0,this.numberOfNodesToPing),newContact:t}}),this):(this._split(n,r),this.add(t))}closest(t,r=1/0){if(k0("id",t),!Number.isInteger(r)&&r!==1/0||r<=0)throw new TypeError("n is not positive number");let n=[];for(let i=[this.root],o=0;i.length>0&&n.length<r;){let a=i.pop();if(a!=null)if(a.contacts===null){let s=this._determineNode(a,t,o++);i.push(a.left===s?a.right:a.left),i.push(s)}else n=n.concat(a.contacts)}return n.map(i=>({distance:this.distance(i.id,t),contact:i})).sort((i,o)=>i.distance-o.distance).slice(0,r).map(i=>i.contact)}count(){let t=0;for(let r=[this.root];r.length>0;){let n=r.pop();n!=null&&(n.contacts===null?r.push(n.right,n.left):t+=n.contacts.length)}return t}_determineNode(t,r,n){let i=n>>3,o=n%8;return r.length<=i&&o!==0?t.left:r[i]&1<<7-o?t.right:t.left}get(t){k0("id",t);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t,r++);let i=this._indexOf(n,t);return i>=0?n.contacts[i]:void 0}_indexOf(t,r){for(let n=0;n<t.contacts.length;++n)if($5(t.contacts[n].id,r))return n;return-1}remove(t){k0("the id as parameter 1",t);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t,r++);let i=this._indexOf(n,t);if(i>=0){let o=n.contacts.splice(i,1)[0];this.safeDispatchEvent("removed",{detail:o})}return this}_split(t,r){t.left=Ws(),t.right=Ws();for(let o of t.contacts)this._determineNode(t,o.id,r).contacts.push(o);t.contacts=null;let n=this._determineNode(t,this.localNodeId,r),i=t.left===n?t.right:t.left;i.dontSplit=!0}toArray(){let t=[];for(let r=[this.root];r.length>0;){let n=r.pop();n!=null&&(n.contacts===null?r.push(n.right,n.left):t=t.concat(n.contacts))}return t}*toIterable(){for(let t=[this.root];t.length>0;){let r=t.pop();r!=null&&(r.contacts===null?t.push(r.right,r.left):yield*r.contacts)}}_update(t,r,n){if(!$5(t.contacts[r].id,n.id))throw new Error("wrong index for _update");let i=t.contacts[r],o=this.arbiter(i,n);o===i&&i!==n||(t.contacts.splice(r,1),t.contacts.push(o),this.safeDispatchEvent("updated",{detail:{incumbent:i,selection:o}}))}};var R9="kad-close",P9=50,G5=20,L9=1e4,N9=10,li=class extends Xt{kBucketSize;kb;pingQueue;log;components;lan;pingTimeout;pingConcurrency;running;protocol;tagName;tagValue;metrics;constructor(t,r){super();let{kBucketSize:n,pingTimeout:i,lan:o,pingConcurrency:a,protocol:s,tagName:c,tagValue:u}=r;this.components=t,this.log=X(`libp2p:kad-dht:${o?"lan":"wan"}:routing-table`),this.kBucketSize=n??G5,this.pingTimeout=i??L9,this.pingConcurrency=a??N9,this.lan=o,this.running=!1,this.protocol=s,this.tagName=c??R9,this.tagValue=u??P9;let f=()=>{this.metrics?.pingQueueSize.update(this.pingQueue.size),this.metrics?.pingRunning.update(this.pingQueue.pending)};this.pingQueue=new Hn({concurrency:this.pingConcurrency}),this.pingQueue.addListener("add",f),this.pingQueue.addListener("next",f),this._onPing=this._onPing.bind(this)}isStarted(){return this.running}async start(){this.running=!0,this.components.metrics!=null&&(this.metrics={routingTableSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_routing_table_size`),pingQueueSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_queue_size`),pingRunning:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_running`)});let t=new fi({localNodeId:await Ae(this.components.peerId),numberOfNodesPerKBucket:this.kBucketSize,numberOfNodesToPing:1});this.kb=t,t.addEventListener("ping",this._onPing),this._tagPeers(t)}async stop(){this.running=!1,this.pingQueue.clear(),this.kb=void 0}_tagPeers(t){let r=new Nr,n=qa(()=>{let i=new Nr(t.closest(t.localNodeId,G5).map(s=>s.peer)),o=i.difference(r),a=r.difference(i);Promise.resolve().then(async()=>{for(let s of o)await this.components.peerStore.merge(s,{tags:{[this.tagName]:{value:this.tagValue}}});for(let s of a)await this.components.peerStore.merge(s,{tags:{[this.tagName]:void 0}})}).catch(s=>{this.log.error("Could not update peer tags",s)}),r=i});t.addEventListener("added",i=>{n(),this.safeDispatchEvent("peer:add",{detail:i.detail.peer})}),t.addEventListener("removed",i=>{n(),this.safeDispatchEvent("peer:remove",{detail:i.detail.peer})})}_onPing(t){let{oldContacts:r,newContact:n}=t.detail;this.pingQueue.add(async()=>{if(!this.running)return;let i=0;try{await Promise.all(r.map(async o=>{try{let a={signal:AbortSignal.timeout(this.pingTimeout)};this.log("pinging old contact %p",o.peer),await(await(await this.components.connectionManager.openConnection(o.peer,a)).newStream(this.protocol,a)).close(),i++}catch(a){this.running&&this.kb!=null&&(this.log.error("could not ping peer %p",o.peer,a),this.log("evicting old contact after ping failed %p",o.peer),this.kb.remove(o.id))}finally{this.metrics?.routingTableSize.update(this.size)}})),this.running&&i<r.length&&this.kb!=null&&(this.log("adding new contact %p",n.peer),this.kb.add(n))}catch(o){this.log.error("could not process k-bucket ping event",o)}}).catch(i=>{this.log.error("could not process k-bucket ping event",i)})}get size(){return this.kb==null?0:this.kb.count()}async find(t){let r=await Ae(t),n=this.closestPeer(r);if(n!=null&&t.equals(n))return n}closestPeer(t){let r=this.closestPeers(t,1);if(r.length>0)return r[0]}closestPeers(t,r=this.kBucketSize){return this.kb==null?[]:this.kb.closest(t,r).map(i=>i.peer)}async add(t){if(this.kb==null)throw new Error("RoutingTable is not started");let r=await Ae(t);this.kb.add({id:r,peer:t}),this.log("added %p with kad id %b",t,r),this.metrics?.routingTableSize.update(this.size)}async remove(t){if(this.kb==null)throw new Error("RoutingTable is not started");let r=await Ae(t);this.kb.remove(r),this.metrics?.routingTableSize.update(this.size)}};var Q5=[77591,22417,43971,28421,740,29829,71467,228973,196661,78537,27689,36431,44415,14362,19456,106025,96308,2882,49509,21149,87173,131409,75844,23676,121838,30291,17492,2953,7564,110620,129477,127283,53113,72417,165166,109690,21200,102125,24049,71504,90342,25307,72039,26812,26715,32264,133800,71161,88956,171987,51779,24425,16671,30251,186294,247761,14202,2121,8465,35024,4876,85917,169730,3638,256836,96184,943,18678,6583,52907,35807,112254,214097,18796,11595,9243,23554,887,268203,382004,24590,111335,11625,16619,29039,102425,69006,97976,92362,32552,63717,41433,128974,137630,59943,10019,13986,35430,33665,108037,43799,43280,38195,29078,58629,18265,14425,46832,235538,40830,77881,110717,58937,3463,325358,51300,47623,117252,19007,10170,20540,91237,294813,4951,79841,56232,36270,128547,69209,66275,100156,32063,73531,34439,80937,28892,44466,88595,216307,32583,49620,16605,82127,45807,21630,78726,20235,40163,111007,96926,5567,72083,21665,58844,39419,179767,48328,42662,51550,5251,37811,49608,81056,50854,55513,20922,18891,197409,164656,32593,71449,220474,58919,85682,67854,13758,35066,3565,61905,214793,119572,141419,21504,10302,27354,67003,46131,32668,15165,64871,34450,17821,2757,11452,34189,5160,12257,85523,560,53385,65887,119549,135620,312353,115979,122356,10867,193231,124537,54783,90675,120791,4715,142253,50943,17271,43358,25331,4917,120566,34580,12878,33786,160528,32523,4869,301307,104817,81491,23276,8832,97911,31265,52065,7998,49622,9715,43998,34091,84587,20664,69041,29419,53205,10838,58288,116145,6185,5154,141795,35924,21307,144738,43730,12085,8279,10002,119,133779,199668,72938,31768,39176,67875,38453,9700,44144,4121,116048,41733,12868,82669,92308,128,34262,11332,7712,90764,36141,13553,71312,77470,117314,96549,49135,23602,54468,28605,6327,62308,17171,67531,21319,14105,894,107722,46157,8503,51069,100472,45138,15246,14577,35609,191464,1757,13364,161349,32067,91705,81144,52339,5408,91066,21983,14157,100545,4372,26630,129112,1423,29676,213626,4397,88436,99190,6877,49958,26122,114348,60661,29818,293118,50042,179738,16400,163423,89627,31040,43973,36638,45952,5153,1894,109322,1898,134021,12402,112077,68309,190269,69866,31938,107383,11522,105232,11248,14868,39852,71707,186525,16530,38162,106212,11700,5130,16608,26998,59586,108399,230033,43683,48135,82179,2073,5015,196684,189293,16378,23452,8301,35640,11632,214551,29240,57644,33137,91949,55157,52384,117313,5090,17717,89668,49363,82238,241035,66216,29066,184088,97206,62820,26595,4241,135635,173672,8202,459,71355,146294,29587,3008,135385,141203,14803,6634,45094,69362,50925,546,51884,62011,83296,234584,44515,56050,89476,87751,19373,12691,149923,19794,13833,35846,87557,58339,2884,19145,25647,12224,11024,77338,64608,122297,53025,7205,36189,36294,170779,21750,7739,173883,75192,35664,224240,113121,30181,26267,27036,117827,92015,106516,55628,203549,67949,60462,60844,35911,20457,1820,920,19773,8738,73173,181993,38521,98254,76257,46008,92796,5384,26868,151566,22124,2411,15919,186872,180021,28099,152961,78811,80237,62352,102653,74259,184890,16792,123702,224945,29940,19512,75283,14059,112691,92811,233329,20411,138569,53341,109802,50600,134528,66747,5529,166531,31578,64732,67189,1596,126357,967,167999,206598,109752,119431,207825,78791,91938,10301,27311,24233,252343,28831,32812,66002,112267,90895,8786,8095,16824,22866,21813,60507,174833,19549,130985,117051,52110,6938,81923,123864,38061,919,18680,53534,46739,112893,161529,85429,26761,11900,81121,91968,15390,217947,56524,1713,6654,37089,85630,138866,61850,16491,75577,16884,98296,73523,6140,44645,6062,36366,29844,57946,37932,42472,5266,20834,19309,33753,127182,134259,35810,41805,45878,312001,14881,47757,49251,120050,44252,3708,25856,107864,120347,1228,36550,41682,34496,47025,8393,173365,246526,12894,161607,35670,90785,126572,2095,124731,157033,58694,554,12786,9642,4817,16136,47864,174698,66992,4639,69284,10625,40710,27763,51738,30404,264105,137904,109882,52487,42824,57514,2740,10479,146799,107390,16586,88038,174951,9410,16185,44158,5568,40658,46108,12763,97385,26175,108859,664,230732,67470,46663,14395,50750,141320,93140,15361,47997,55784,6791,307840,118569,107326,18056,58281,260415,54691,8790,73332,45633,7511,45674,143373,14031,11799,94491,35646,96544,14560,26049,32983,25791,83814,42094,231370,63955,139212,2359,169908,3108,183486,105867,28197,32941,124968,26402,88267,149768,23053,3078,19091,52924,25383,19209,111548,97361,3959,24880,235061,9099,24921,161254,151405,20508,7159,34381,20133,11434,74036,19974,34769,36585,1076,22454,17354,38727,235160,111547,96454,117448,156940,91330,37299,7310,26915,117060,51369,22620,61861,322264,106850,111694,15091,2624,40345,300446,177064,1707,27389,54792,327783,132669,183543,59003,17744,20603,151134,106923,53084,71803,279424,319816,11579,21946,16728,38274,72711,5085,83391,88646,40159,25027,34680,10752,12988,54126,30365,18338,100445,230674,44874,84974,143877,123253,139372,28082,91477,144002,13096,219729,46016,50029,42377,14601,6660,58244,58978,23918,88206,113611,64452,17541,41032,10942,12021,49189,10978,40175,37156,10947,71709,106894,112538,57007,137486,150608,152719,40615,7746,279716,13101,19524,28708,40578,72320,1096,182051,94527,51275,22833,45164,81917,77519,48508,5421,140302,37845,149830,5587,27579,5357,428725,248187,6326,206760,39814,32585,89923,44341,288753,284443,96368,31201,94189,119504,20359,52073,103216,179,27934,32801,96035,34111,34309,101326,18198,20704,210266,37643,27880,141873,106e3,19414,56614,167714,66483,107885,86602,4379,20796,75467,4987,5017,118857,26003,34308,114428,29198,6686,29697,73632,3739,69795,16798,41504,7207,30722,21436,36735,28067,28545,3239,11221,36031,41889,100010,19247,317673,29495,174554,6424,129725,53845,94986,7955,59676,2604,191497,19735,102214,62954,23844,11872,179525,261436,34492,428,78404,142035,16747,17246,27578,37021,33672,57944,26056,135760,2369,61674,122066,31327,19374,157065,40553,130982,69619,71290,38855,72100,92903,95940,51422,165999,65713,57873,50726,7288,20272,2081,42326,22624,81120,57914,79352,19447,1684,72302,11774,302559,161481,96396,13692,414988,3721,79066,56627,46883,21150,11747,12184,5856,113458,176117,84416,52079,27933,3354,59765,141359,2212,216309,2555,23458,196722,142463,45701,44548,28798,19418,215,29916,9396,10574,114226,84475,13520,18694,34056,4524,90302,62930,13539,19407,77209,7728,38088,9535,2263,23875,183945,17750,26274,67172,10585,28042,22199,7478,51331,66030,26774,192929,31434,25850,50197,52926,178158,4679,181256,70184,229600,9959,105594,72158,73974,2726,35085,78087,23284,35568,51713,155676,5401,27254,11966,17569,223253,71993,103357,111477,55722,30504,26034,46774,35392,36285,214814,41143,163465,1051,16094,81044,6636,76489,179102,20712,39178,35683,125177,54219,30617,52994,25324,50123,2543,87529,58995,10688,125199,12388,60158,125481,131646,7642,133350,65874,3438,97277,101450,10075,56344,116821,50778,60547,98016,106135,13859,14255,16300,77373,173521,8285,45932,37426,4054,114295,55947,7703,39114,52,51119,128135,19714,60715,9554,50492,88180,2823,118271,52993,122625,97919,23859,37895,25040,33614,32102,20431,3577,9275,15686,43031,157741,110358,1884,40291,125391,13736,5008,64881,87336,77381,70711,43032,49155,118587,70494,4318,10168,30126,12580,10524,280104,104001,145413,2862,84140,6603,106005,13566,12780,11251,42830,571,179910,82443,13146,469,42714,32591,265217,424024,92553,54721,134100,6007,15242,114681,59030,16718,85465,200214,85982,55174,165013,23493,56964,82529,109150,32706,27568,82442,5350,14976,13165,44890,60021,21343,33978,17264,4655,22328,27819,75730,16567,55483,14510,17926,45827,150609,3704,7385,272531,161543,76904,122163,52405,2039,19165,41623,14423,228354,3369,176360,85491,7122,35789,303724,4465,13628,2233,55311,118771,20713,10006,221519,45115,71021,35650,29775,7337,10864,20665,21142,1746,15080,1624,32449,10905,105743,229797,7701,3940,22997,178467,57208,389057,39683,59403,63344,63125,54847,69691,18336,56448,3362,37202,18282,29648,138224,35867,10495,5911,28814,26653,31514,176702,26550,45621,11734,4525,40543,73944,121080,27858,155561,14887,44670,30742,8796,107455,113472,56369,75581,183777,240095,133699,153299,8768,160464,26058,49078,103971,21875,71486,44888,17156,9678,89541,123019,102337,3972,83930,21245,87852,109660,287918,183019,686,10100,39177,283941,11274,24736,26793,26214,25995,77011,141580,4070,23742,46285,46632,30700,26669,19056,35951,115575,174034,56097,35463,87425,24575,44245,38701,82317,85922,281616,100333,147697,61503,7730,84330,8530,59917,61597,17173,9092,32658,90288,193136,39023,20381,56654,31132,7779,1919,1375,117128,30819,11169,40938,23935,115201,101155,151034,4835,11231,74550,89388,59951,91704,107312,167882,115062,12732,72738,88703,464019,158267,57995,60496,737,14371,123867,4174,243339,159946,7568,16025,134556,110916,38103,191,80226,88794,29688,27230,10454,76308,57647,77409,113483,66864,14745,19808,12023,46583,84805,16015,17102,2231,20611,3547,95740,250131,34559,108894,8498,15853,159169,148920,20942,2813,93160,45188,210613,45531,52587,149062,39782,28194,57849,60965,84954,89766,84453,100927,16501,27658,165311,103841,54192,207341,19558,20084,319622,5672,205467,98462,61849,36279,13609,147177,24726,165015,209489,59591,31157,6551,117580,75060,141146,277310,21072,22023,106474,63041,137443,122965,68371,5383,42146,98961,113467,30863,23794,4843,99630,30392,82679,13699,241612,33601,93146,24319,18643,32155,95669,40440,15333,34089,67799,142144,58245,38633,114531,117400,77861,188726,5507,2568,8853,10987,107222,2663,2421,11530,13345,30075,41785,118661,104786,17459,12490,16281,71936,193555,17431,5944,71758,26485,77317,20803,367167,158,7362,93430,11735,172445,46002,11532,54482,930,62911,2235,23004,179236,4764,101859,208113,22477,55163,95579,14098,67320,162556,90709,156949,3826,57492,4025,34092,87442,104565,6718,186015,28214,14209,10039,107186,233912,58877,81637,55265,39828,6194,145813,50831,105849,4974,88319,122296,10272,197216,95714,51540,72418,23324,91555,8743,140452,250249,51666,34124,7229,38592,129641,78169,174242,22464,149964,51450,14034,10026,95376,26190,120062,14401,8700,265,31386,143573,7203,229889,61567,4227,140981,2466,72052,10787,10062,30958,6099,38471,30103,23202,208101,70847,467,58934,32271,32984,36637,24107,30771,17109,73353,13650,2098,157040,67366,66904,106018,265380,107238,18535,44025,32681,144983,62505,91295,56120,3082,77508,10322,63023,36700,81885,224127,16721,45023,239261,111272,13852,7866,149243,204199,32309,22084,42029,38316,126644,104973,14406,43454,67322,61310,15789,40285,24026,181047,6301,70927,23319,115823,27248,66693,115875,278566,63007,146844,56841,59007,87368,180001,22370,42114,80605,12022,10374,308,25079,14689,12618,63368,7936,264973,212291,136713,95999,105801,18965,32075,48700,52230,35119,96912,32992,8586,16606,101333,101812,14969,39930,759,193090,27387,42914,12937,5058,62646,64528,38624,25743,37502,3716,4435,30352,178687,26461,132611,42002,138442,35833,59582,16345,8048,60319,49349,309,47800,49739,90482,26405,34470,63786,32479,85028,39866,47846,11649,23934,29466,2816,42864,31828,7410,74885,49632,47629,111801,90749,19536,18767,105764,59606,21223,10746,76298,22220,39408,7190,79654,64856,11602,82156,272765,17079,70089,245473,51813,184407,384678,1576,122249,5064,27481,6188,25790,74361,27541,318284,45430,31488,620,93579,45723,192118,22670,51913,4162,70244,35966,26397,16199,50899,209613,121702,287507,2993,36101,132229,67345,33062,76295,118628,78705,52316,34375,107083,107454,44863,127561,33964,3073,154010,190914,55967,39074,6272,31047,5550,41123,26154,98638,47110,19998,148091,50229,31329,59900,195442,19106,61347,73497,70015,682,45850,25776,38022,148951,6288,37411,232526,109277,27286,32342,9262,5220,16651,23175,46740,129438,78614,121925,66914,88710,127952,5563,21500,34521,10739,14863,191006,62956,17359,16749,67027,56284,69134,43301,35039,58883,54466,60823,404451,75743,59856,86979,7923,34273,83785,32142,7693,268986,197428,282681,17049,22346,22990,92245,107180,3357,37104,96724,49153,7683,31197,43267,82231,164276,23696,20848,188364,22309,24821,158707,1018,22514,70922,27792,45589,59709,10765,736,35218,63479,51987,24275,63588,55361,92929,81964,4658,20122,12330,44058,13065,311456,72224,8337,211229,38979,22590,138478,52757,32595,133600,8838,31549,94412,43391,90056,1585,94802,127271,6223,31889,137038,132910,2165,57616,230152,6080,10748,36737,74579,134062,50525,180532,119270,34556,76155,82394,52595,29258,31435,87820,67996,26943,183878,38007,2410,13526,180297,69856,3503,187396,167700,7838,16701,9199,56267,3661,37407,65994,23767,5708,62508,221700,67088,86978,46776,84434,32088,5612,9149,88244,21685,95151,46750,189612,2979,506311,2594,3628,40074,105039,78243,28523,6651,38058,71999,30992,12764,68261,108991,6165,26450,61961,13400,22426,7490,60890,109623,2070,12958,50355,67979,257096,7213,42578,52121,35716,65461,7516,124758,39268,302,64712,14977,1467,219452,2840,34229,11121,21602,19270,63574,8024,1532,17331,79839,78885,52029,180767,57957,6069,91265,61380,55767,8927,32881,287603,22149,35029,68876,6428,199567,46926,13412,104132,21434,366616,45060,110046,81924,128910,45886,52821,130416,29416,77342,21762,67329,121432,79924,11724,38625,81006,102033,28338,13326,3250,82056,82526,38212,21112,12382,111495,3263,7414,86274,93490,40844,30224,45212,24019,48411,71367,24941,76729,57776,3769,38114,202019,197745,31953,237533,33270,201580,255648,100798,44741,32241,98468,106931,10085,15090,170358,33154,66787,18819,69760,25061,234005,82660,6295,131975,16874,9076,4094,25005,17740,40908,19533,220019,44330,99792,50040,19619,13950,55228,24423,31253,95308,103177,184795,28590,82285,5059,3210,75525,49894,70007,56178,10580,36051,139681,21617,98736,3555,106306,164189,37352,63915,47824,24883,145530,61904,28444,11483,19837,145446,30420,112972,85939,11835,191233,2262,20705,58630,1753,148334,1197,144714,6887,11223,107667,60879,77914,4151,57417,81594,96681,169430,1784,20444,95138,254041,27038,596,7117,72808,13759,3353,126776,21074,55322,27081,36942,39547,139830,179275,4453,713,8722,71399,19204,25785,22794,23923,104114,11291,25458,102309,88396,75288,230440,206396,104551,58447,130857,37247,94734,31548,176529,226077,65159,20104,10096,66881,94191,237909,27109,37404,1520,27421,25220,113003,23423,24884,50585,6286,231877,150800,11789,3226,90004,60642,5053,202400,61442,132531,175329,57138,30116,103847,9973,75367,16452,32360,59119,21246,10191,164804,23305,61051,37348,154530,13214,5468,50403,66754,130976,50559,80515,14436,155492,84017,5472,43107,41240,2890,90431,70188,382,76234,48040,50211,281038,237007,32115,142178,1536,22761,96429,1811,31243,1679,49143,55209,17402,235054,61494,7462,77030,34925,87609,78002,9499,9027,73289,201078,101379,63544,27666,5469,10642,30029,49816,132979,95620,58086,351930,116300,2110,2043,30845,6154,11279,16727,4122,2277,27281,4971,3650,39060,61970,65951,39674,75686,38151,11370,130809,177895,32665,63725,122267,7857,39618,118483,44792,157755,178624,136994,24260,41308,22471,12404,21707,12486,30473,52781,50246,20247,39065,909,56825,103158,128603,31542,1089,41935,32744,12428,37963,84420,33134,72921,208449,42622,168151,127335,147107,46699,38216,12591,94342,85814,31423,24944,2605,87542,67473,192551,4496,56321,91819,17630,6300,256183,114569,202090,33209,35289,34897,24967,40520,43470,5344,10199,34810,14283,10381,10017,62923,49924,23233,64539,13051,35686,19698,11570,135555,120868,44924,87065,52318,52335,47586,140906,245885,109834,78668,9065,46990,25258,72022,61243,40838,4545,146387,10537,11557,17470,36930,68104,46711,24264,79401,81043,18225,120488,24746,84338,81652,28266,13776,21878,46973,1047,230465,73357,95777,24973,210160,62210,58404,110633,169651,6937,41870,9909,26822,191062,76553,27519,96256,239070,2478,205678,67955,58532,20601,50120,19148,78501,195724,110740,8249,109665,27446,30568,57631,31425,49752,32820,65504,50079,3663,102256,219898,23849,211315,14645,4359,91767,9528,12449,49366,7941,49763,107848,8930,27086,50686,9744,10447,81935,39513,46514,1670,29229,6172,22312,137280,97759,9806,14445,22976,56458,73391,34983,93760,174219,52573,33149,59747,2429,136277,75123,165263,91040,7446,57632,48633,97140,246081,84766,151684,79918,93268,120346,54059,54875,77858,32996,103590,45276,11968,19600,25849,17159,132907,42828,16817,4913,99462,103303,27395,5737,74184,20749,21160,14377,77062,131403,158735,10999,27799,77785,9320,34366,51593,61070,33746,47048,29268,36675,30262,53297,9832,82e3,20188,122292,39917,7331,18160,68301,185935,134830,15031,4935,10004,165845,185534,46923,30109,44134,122631,18874,22903,112790,26561,18549,348902,82871,140345,255565,135390,63556,103747,145055,179600,145662,296111,61661,211987,23952,52342,126343,48450,32919,44277,82185,9591,62139,205363,376969,394874,108461,18040,120885,14798,39863,16571,16794,58271,81025,55206,14640,118656,6361,44092,85970,6262,153863,108244,180200,72264,79947,38044,10050,5735,61221,80712,5471,115689,11391,11661,184257,20010,60116,30320,19327,134598,45455,27542,18004,125092,452272,1549,91523,46567,180063,156026,2608,11174,58848,37788,65907,80194,30490,5786,40775,119519,106241,11323,156297,8425,61495,2617,29675,2425,59886,112582,49142,59618,4863,50597,86710,50650,168632,27693,85641,83643,18993,25768,84284,28090,93592,36627,312804,43381,9887,9402,100931,97165,3311,173330,66805,28935,4963,184460,3201,78102,19126,21607,37496,24938,22615,16153,32862,134792,153318,61120,6067,2812,12826,12792,23825,37559,64662,202250,102694,155488,85881,149193,46233,65383,15521,106982,11358,176786,25752,39717,34208,24510,32464,77742,39371,72028,138229,60688,71386,102834,132477,2208,11548,63670,271279,28351,30338,38620,32491,99845,143885,152266,13252,2825,178663,108097,1775,78201,14897,113573,163346,62292,171129,22183,96598,38733,64971,166776,117445,9968,146393,44677,74867,20908,97328,12761,25656,26785,9148,112344,26115,99176,110121,22437,49547,6180,79320,5835,31392,43328,33377,75870,119860,69497,80273,7325,155219,43167,111173,28347,20222,3763,71752,55041,47252,14618,28088,15012,97805,194698,54636,2036,41349,6173,96604,61530,51859,43782,13361,24334,22668,24792,7070,23441,16789,3209,36211,208475,26242,32880,122181,182407,21444,31060,88459,29929,77907,12716,10934,97005,20599,31690,8403,58445,30303,22700,10336,86731,103115,337709,72556,46788,112566,47684,67089,53548,36874,56487,41387,125985,26893,40071,106683,73712,18787,40105,72992,67246,137276,50802,36790,70328,138827,22466,39263,183295,29858,50975,9322,57397,10654,24364,30383,55799,41600,23584,127295,296610,129078,143558,244131,86397,36049,1085,80677,3820,108139,5476,34767,24683,7758,13060,7239,131671,250593,59556,103392,29810,4188,252323,39404,116877,7651,43600,40338,13554,157253,39196,25978,144387,61211,234,50104,6129,10449,93777,9240,356378,274148,4439,72970,3724,147770,78680,62570,115877,40027,40547,36817,224392,64609,34795,165027,67440,2477,37206,23431,50754,164797,46018,94995,170982,27051,7957,22767,3674,27900,56419,18930,60701,41302,2692,84749,339721,61996,111094,80221,50129,1045,8153,62945,19202,8250,37208,37418,32560,79477,41106,88569,33963,36693,5892,30570,1581,66471,49647,11922,160717,29442,5643,114865,82962,95982,132098,22633,22838,94726,54556,28566,205039,162340,33216,16849,35847,221339,94851,26533,71469,1805,3804,12935,45483,71020,36310,65381,192960,34240,35165,59773,1248,46954,155332,96864,4246,388800,16129,57133,74592,44807,442014,38203,42574,80818,91592,26377,36424,65760,977,77387,22628,147610,28018,30561,98454,6969,119628,63648,18170,36854,26601,64018,22027,37279,51395,152934,21153,9430,58760,194742,5330,55115,34158,28917,174111,13171,122326,1526,43896,66094,25325,4234,148354,11450,275,18999,112191,44365,22723,68409,8733,57746,96565,75007,14196,108844,29475,88599,177563,100792,106156,86323,93726,14248,135341,194131,40126,47099,14779,8272,39597,95983,171398,65882,28052,10393,47213,40689,22120,72212,106829,34964,109146,753,648,21660,30047,17527,181025,5619,145357,4085,216883,9359,186951,24779,53931,24545,36197,223296,62628,168101,4243,107313,30321,26642,13049,51059,31027,107912,807,73550,26551,84369,122422,165872,49754,74213,234264,33151,52014,33100,87183,22365,52500,40013,23302,5652,72723,21404,26107,48434,587,94049,168493,96418,32871,70860,31709,25128,443,71597,166253,15670,70994,26341,133675,28280,75491,54756,47955,56028,26182,11952,113272,472197,64640,110753,17919,337,50642,22576,142,87371,53391,93210,126694,15285,19642,85667,14148,1506,42092,52962,33243,11970,20734,135843,57044,58880,13002,219134,22876,64754,232519,4257,43120,321573,24799,64526,124728,52579,81472,70831,276848,17403,74359,23021,182101,74597,23744,148267,12055,7976,5349,11772,67540,167347,65318,18720,127832,108238,22828,90233,9987,259080,118185,73209,79270,13775,90100,137742,90799,70569,15699,19961,9087,67475,57872,39731,8810,134897,131868,146849,19898,3334,2281,167061,91073,60356,467742,74712,188,53179,137679,92769,29241,9537,132595,80119,1041,88962,5976,40171,44911,102859,139059,104558,98987,47761,19272,71472,113864,175377,73338,10857,23402,23758,1591,139864,5644,4076,118760,16427,134198,18853,20291,100849,37423,22038,36677,19071,195521,57445,11069,31869,55718,66882,148490,44,41296,75242,49704,166810,9906,20943,122258,49112,105667,15969,10344,6408,187694,21399,72742,58970,14867,14376,81889,41856,23225,15042,56993,16074,131389,74276,72407,53875,383108,53597,37363,68993,44854,122548,430927,198279,38430,80409,12245,2981,628,2818,17760,37437,238229,7968,46892,2200,3730,34190,65983,37959,112291,87850,70827,6522,20750,73913,111621,41652,19587,2780,58668,25916,85259,18200,168962,95781,42445,102050,7776,57662,103313,47742,96358,41964,66174,100396,29069,204735,19679,27978,7479,40264,22534,61183,36081,107436,58223,14680,23002,101311,24716,124108,12908,5646,31750,40380,14215,232799,102772,14122,96775,61398,50917,12096,149880,67833,598749,124194,155871,49216,790,14677,65319,56917,7440,145744,95701,12206,49405,129269,76199,45732,9767,11058,9047,210885,11051,7392,26307,2130,8132,147526,20802,232698,115660,50060,59789,57344,107623,80343,112676,23291,9866,160971,34032,118291,15719,59730,164911,28975,2659,58046,78480,21854,66209,53863,109085,116045,29021,46481,107552,22130,18764,70254,31272,11300,52460,43933,84738,20721,53869,190840,79673,105300,7561,321817,66924,13940,33281,101046,183181,32176,71878,5678,62924,79535,56646,40303,19559,27703,93042,73368,42187,3670,37376,46440,7023,36816,109628,20680,5940,276440,275233,170848,112093,136996,14984,20226,111441,77693,112960,48577,39370,55707,50314,123404,26570,54281,61372,123391,4857,35928,246740,132507,106646,44241,7196,92258,9825,37688,51197,303141,5590,15476,132986,10955,85782,34486,26696,7991,28813,18858,39546,11703,11365,38185,5716,93555,11925,40121,60002,6985,10976,171384,3887,43394,13337,56346,6381,252336,39573,75042,53711,1028,31781,44295,95925,131713,7214,68125,43571,70954,213234,1628,8760,13391,65485,17320,56038,1710,25248,60803,57399,19839,3870,326,281556,50945,72400,21460,316244,75619,56246,98775,481,13513,55765,50427,7388,123519,32929,57908,27124,61316,101097,57467,30228,48792,10788,20402,37318,50526,155730,34456,158065,145305,17832,43733,64052,4506,35072,205355,177028,184004,187081,68616,35938,83703,10367,36892,93186,260137,51934,89970,4985,23445,26755,21558,7948,78741,23376,124405,85594,68596,57536,49351,12619,56593,132668,99924,109728,71844,71935,196018,65464,17617,14987,89701,143773,33997,8687,22701,33258,2914,4436,72108,85610,9671,49067,2327,82988,1361,1672,44033,35777,30269,24057,10605,82236,616,15793,13919,47249,112086,116698,9484,80207,90574,33304,68624,93127,56101,42210,160929,4827,38995,38095,4701,125119,5027,33680,9236,231236,14135,87837,23318,70261,78893,30151,81482,14332,1084,74256,27532,46644,79185,3148,62615,6981,55672,31668,36825,1849,14536,37446,14738,23779,43058,162749,72199,1168,21346,5592,85932,85302,9668,18351,57135,150360,2080,228015,77953,34670,119302,151751,31009,106725,84265,45214,59289,74178,113071,263206,111009,4021,44449,188119,192629,123592,392506,292847,114487,12831,205858,9852,20780,79648,75767,357014,97721,18166,21005,67950,33226,204009,16536,2987,11335,66717,144910,47950,17262,55060,15063,2934,51038,26775,178497,66008,3427,49433,128592,20036,157553,63861,3089,23015,51210,28696,35933,49942,71135,231518,99620,17248,21835,176536,20676,16944,38700,165831,233253,295625,36723,13023,52745,10907,19423,67972,125868,95473,82875,1183,108455,52685,33417,64095,21433,52438,33191,127809,44505,211823,7810,2752,95548,162031,7185,91196,47563,61721,33359,17897,23682,42806,178101,22874,49707,199897,75419,82456,8618,11171,79712,116847,18783,44190,46564,5346,59046,95032,7893,14916,3214,26800,24172,121453,34362,10250,17408,18888,4840,68696,22831,13162,36005,32512,14800,62357,41723,45046,27247,37486,5372,2564,34261,298500,66509,133920,89138,31305,117697,19097,108304,81386,84106,23802,46411,63304,946,51417,41777,41041,19501,115864,60743,294354,37955,94165,18116,1156,17937,20645,57114,90804,58042,48643,92288,9861,2557,88546,61333,101008,12853,5148,87856,4152,144503,73841,18718,9789,147565,10846,42085,12789,30223,8993,56352,67203,2448,28215,6052,23540,126319,75933,36689,80235,23231,23561,21383,38800,77548,102798,21234,31468,158608,46188,63960,191679,8051,67014,11185,170078,42186,28827,34777,41930,212079,12421,34750,24111,110344,73918,45171,70826,141949,40063,23979,24254,37309,26724,27179,24718,83648,54938,14591,17425,29525,102675,48975,48654,12316,8929,60640,41709,50168,63264,89812,50716,48632,38755,138583,160123,55579,71829,24230,233277,46322,39650,166388,34718,24108,98252,7031,106695,62498,18258,35062,217827,78731,34824,33354,19520,60852,2432,60224,8587,2836,62955,702,20227,42285,40560,95592,62486,11094,53035,143291,18842,46177,77994,1770,9657,107422,172915,32655,128716,25886,25164,156740,119928,165875,85817,11007,89110,33956,12652,65156,180266,8494,36889,19958,20955,96,1264,118288,135769,44754,86671,5632,19026,168220,289120,33569,93821,66144,70635,7687,5642,2714,55445,56636,71545,184182,93133,7332,37389,12643,52315,22729,11014,158742,17050,152889,50178,34601,41945,52136,9948,26914,63548,95721,115951,40759,8960,158258,38938,49232,48325,42234,81523,253019,66128,40978,20048,238048,38760,62928,122560,118532,43687,137472,163689,26680,9878,17448,51035,16211,60834,36749,29178,14241,59868,150086,2305,26477,42422,34342,165341,83279,33894,14257,29928,12743,13957,125571,89134,66712,10952,16507,147839,30146,7249,16565,45399,39874,114565,215780,31990,230881,171477,102,196546,44538,10880,84948,281705,86651,10617,31395,2342,453658,43569,60561,132901,21845,17727,58556,258242,22262,58728,4008,77997,11806,37431,30599,81375,109137,185787,114085,217292,97453,169085,30593,60212,11544,102056,65580,2384,91655,4855,95725,7295,157994,16228,20669,53276,141590,105246,17334,25440,76067,17967,39321,38911,11362,28559,63807,21627,26468,85816,40120,1025,15234,58319,69516,66512,124548,75845,78873,22137,46681,51242,85683,32909,76747,35555,43396,101465,1765,73094,1077,2962,39028,66777,57831,42048,15828,13962,36041,63657,52412,5242,58846,2141,5506,219012,134451,3936,182230,17558,17153,152237,22621,49377,170216,35257,68233,65374,6510,11126,212151,7184,2480,22517,3437,33073,30156,16557,3768,55067,86829,91e3,12350,148650,66017,79424,70885,49066,28250,21369,51213,34533,11510,3258,18176,18465,84413,6315,36411,163765,4346,356,107618,598,13727,285026,162695,8749,14583,7132,63521,184253,32378,25991,5604,30961,53675,4874,84693,5086,34811,26978,56564,7904,33519,51221,113942,69253,6664,125563,22055,220680,102008,742,51930,19494,176108,44424,35123,13025,75685,11759,74335,22250,181453,131147,16984,132115,154311,11991,76452,52609,85351,196,30969,9198,74919,2529,56838,71779,29187,116304,3504,62330,41190,86153,28393,254926,104228,105189,13264,84359,3574,12415,8534,57147,10175,188174,59504,60932,66318,16407,107921,17638,99103,49278,28403,39786,145865,8462,3558,43406,142271,29139,21989,36552,93955,72365,7176,13556,106185,37957,321774,17782,129017,51154,27938,24952,1935,39366,2791,33489,41582,56078,24558,9311,5449,218786,27808,190429,68013,36020,86003,29735,3404,87348,119357,115714,2324,86796,81973,40992,43376,93621,28784,16808,36367,2517,2909,191926,24978,55303,53308,205724,60068,3098,21375,64784,23949,26579,63121,12319,80145,39967,97861,6757,70143,67642,37082,34698,69140,122883,46151,62187,80934,429,19437,135071,137885,222647,13331,154065,327,61778,74257,40116,37493,14855,85079,237641,42342,102164,199965,71204,4662,29368,5042,113914,122214,8955,13149,102503,43173,5659,163787,69003,307084,63392,171080,21390,81918,86666,36622,24126,28887,5736,28054,207170,163428,79891,346467,95363,38980,111806,80828,9200,19288,294896,114468,87405,111715,141705,7015,72754,68463,48738,243147,33397,101210,37051,98801,82847,20397,4940,185559,18716,54718,83491,11725,40803,1128,12128,23060,5174,7745,67007,46701,1571,27807,180186,256996,18975,16837,7877,212758,250379,15440,87954,57755,24719,124057,83461,258,50864,8874,29038,71289,31627,15429,9005,4061,113851,107716,82819,13651,79656,117851,17539,111446,12938,39724,190787,4352,15402,21070,62708,8539,23777,73853,13552,38810,86117,16285,56400,1718,75342,142863,29033,378,110113,180321,32586,23606,26393,160984,207987,23783,8406,16904,24596,47274,11693,46539,60524,78595,48423,31718,20170,9009,146268,15183,191060,172765,1349,138436,37365,10970,40509,225817,20021,70394,152138,21541,66559,66544,89352,2725,17258,91345,7313,3815,115868,8660,40362,4071,103524,39388,118275,21950,6549,38226,32754,209574,29201,43495,18028,20296,40597,18370,47520,202450,24134,2219,8195,69545,38041,136934,46374,19041,159811,84865,58620,846,98749,13569,30714,97246,32186,4479,27355,92973,35214,151491,75963,37631,1561,27200,238083,23182,60756,12291,25766,39355,102333,87362,65741,59906,19538,201575,48772,102938,24438,292580,39964,66366,9004,61379,50548,37622,38732,28379,68180,76622,17488,69849,5963,7219,48143,43413,55358,540,58691,29506,19245,52193,48621,5518,13048,118625,44755,191081,42061,89197,2259,60665,66994,71210,51232,3585,142096,55024,7892,8345,58653,463307,65658,64319,137941,136323,53499,12746,43492,6978,95163,29925,60175,5128,7352,41463,184756,121146,20473,18426,4598,5309,54580,14277,121151,10691,56711,43880,63409,76682,11830,172218,264898,32632,66536,81062,31649,25788,92774,60222,11100,63159,9432,224657,25240,53613,152,138620,163829,2397,85345,12501,37507,64932,38575,43522,65789,80198,78796,35226,3851,108891,73311,3060,28391,93671,39663,46142,30982,66041,37281,68157,26553,71872,81142,211527,39747,118119,22695,2859,11066,20232,168911,7933,197005,17066,111071,44434,133994,120798,12766,227798,45756,132852,29917,36076,55352,65281,129800,41958,18944,84678,18580,168093,132621,39997,54092,27740,32354,3770,114118,103242,43918,15899,18574,145944,3190,123469,219903,24169,100571,62403,16776,92779,14535,17168,16475,14304,37231,1712,28218,242754,61688,28980,1318,51359,222657,99200,67989,31772,23932,35351,201251,49041,27306,19128,40135,3986,77333,19649,120683,151927,21081,7076,78375,77501,101599,8011,89585,96715,58179,5378,102138,106793,26051,217276,4197,16297,27014,46721,13322,22806,5278,29629,70632,9647,71519,58818,40603,128530,8903,36770,56900,31483,26935,43845,34265,34920,87658,6114,84767,64250,47318,50720,19264,162514,33357,13117,6705,46696,75032,71054,87004,42035,69138,11903,99854,102328,19611,34525,69312,6431,49842,101600,133178,108751,41829,89939,225664,48916,99556,9195,130387,5960,36857,116724,53518,94002,39077,53996,6945,22261,64291,8314,152785,57588,16522,9091,5048,87671,35441,39509,1945,12423,158923,178413,37549,14095,1475,73188,62878,4819,24012,68534,42606,4010,120809,57497,59564,101758,103718,32701,80116,12345,95834,46918,21468,53213,15665,31200,3867,5140,96013,250744,21016,10069,13968,35449,180829,27683,39704,59956,22893,3115,26293,32785,75934,62445,141162,62720,2018,83638,19949,114012,95006,3330,99829,130935,309272,9565,55874,121727,37017,23586,319858,40970,27602,8625,112329,61060,100088,118525,25922,16232,1907,60671,51583,44553,80993,5262,94679,8676,940,20736,11823,3020,16476,12340,152600,97416,3703,25744,66826,16245,16876,46446,84798,74227,176020,45192,61955,75496,23946,23626,40372,26036,6149,11822,30582,16541,41914,82385,232823,40921,80773,14930,3631,7517,39619,4348,36180,126106,138939,62611,1477,113512,47321,25052,14546,118881,29060,23589,128322,36795,18401,137921,104699,267929,36194,172791,18113,4766,188215,30083,332586,94089,5805,77909,22194,68234,154976,43220,40660,70001,184893,138095,11128,103010,22663,5108,212615,8485,5565,49222,54614,26530,42639,16319,55062,152662,105595,21114,22216,10294,68158,10436,86950,7206,62115,3977,3657,59874,456,118617,18156,106663,112229,80992,17442,8217,55551,5133,34344,251927,51153,39364,201321,7816,66803,23057,156724,145664,14276,95705,979,2796,6875,13429,212525,50602,26276,28284,3424,19465,52397,46963,31420,51399,206476,92317,48851,637,100820,83349,10317,60227,21972,6908,282439,32857,224767,95629,83882,42106,87338,69757,29840,68709,37665,45244,114577,49188,175943,54009,186746,106158,70168,3358,234002,50555,9221,129338,9562,20118,32923,78479,118280,65752,4977,10474,102174,60947,129006,10570,83451,8598,8078,159367,123785,80438,16742,5905,5281,181513,42402,6977,163136,93179,42191,14968,50421,112401,105440,33456,57347,121611,4221,94954,36517,24046,27796,6255,33394,72990,135408,116627,1233,57874,25654,95419,68156,401399,313338,55208,45573,93124,119251,47200,38196,11909,130667,45391,73904,64964,167846,4137,115606,52036,62214,7969,160925,7187,1132,134835,40309,73195,64494,80472,444841,61111,26500,45323,40743,53625,52797,22659,15631,29739,36706,28841,39147,102836,26794,10536,14845,87305,45874,12241,127587,83833,57183,79722,30844,41304,84655,20825,92500,3722,25655,27811,10157,81634,31362,34088,92487,70123,22190,185100,72658,139035,192523,88241,2078,230490,44528,85638,100198,22088,29982,291233,241062,13865,4445,137791,37835,107218,31726,19718,38234,72528,23046,19177,66695,5109,17251,28077,5617,21554,47839,72425,133825,1486,73065,181275,141508,21768,62971,63082,2512,34200,9904,120309,6392,91243,68416,268253,41199,116757,138551,185526,41246,28986,4093,19057,17295,4148,245766,122360,35356,112075,20301,75441,10998,7977,19769,62922,937,63547,100196,26427,157820,20983,236696,22935,8140,90315,156004,47204,140973,7726,45097,52725,22636,23436,257282,105247,522,88389,216031,202204,46812,211666,19693,68828,81691,45925,11256,30292,372,5236,167826,88328,232776,151611,5360,82104,18841,80393,25465,18285,20320,72377,31730,33160,45803,38715,27705,37379,24163,18360,103586,4015,32305,269494,91252,20080,36567,54650,7797,57073,12650,31164,42209,6375,261663,105528,81661,106002,2800,5375,17247,43151,4442,15727,194619,100855,144898,62320,78465,39929,16454,1967,28311,61363,17219,9395,8745,121445,76939,80385,162380,22009,54191,44248,16299,122830,48151,74429,78291,64755,14238,44966,2511,17712,67954,93583,829,105899,49935,84750,11591,33185,85447,42717,27409,208542,28965,62052,52525,5597,25694,65594,16343,63224,276188,12475,9331,127507,38522,57287,24128,133161,79723,105548,133695,48917,27558,43278,46520,13778,141954,110785,83366,17715,46317,105763,66298,147013,41086,94180,16478,220447,44611,730,19722,78975,117889,125643,26254,16574,18480,65006,15806,38549,246418,46052,36056,8440,34984,30170,3163,59800,4458,115442,4283,41970,33507,104078,1653,22,121158,276486,3655,6338,24048,133421,23641,2161,24422,36006,8086,10675,181474,12307,29514,59143,14729,52509,87128,122470,19446,80852,33314,24573,119864,14237,9652,57779,6612,51851,15284,98871,90581,124466,156831,21190,22015,71380,161906,87247,69201,18392,17908,108470,72962,40719,14338,17911,95260,43339,20610,78916,20710,72451,11315,31448,17263,58853,178878,48111,116002,45497,80506,82605,85880,36300,121755,25215,36118,301929,88728,405223,276136,553,34704,212438,49970,78329,922,20711,25036,257130,38295,145369,18128,15385,30829,55656,48345,8012,3561,28004,122041,192900,58338,112508,41085,29976,87040,47117,23905,4336,92061,138880,97407,42083,172121,6256,25192,172671,5,93568,1420,12677,31605,56743,40620,6015,78415,231077,31298,80026,13902,19048,24924,170586,32955,176119,87859,36731,6773,27711,24658,26475,115216,133207,93250,95820,88522,8317,5714,124047,55219,86860,19677,23961,22928,162209,8904,225992,359835,56084,96201,29392,96558,86071,93643,55114,13347,8183,95129,82012,2017,123336,34219,115554,157159,47747,101684,41008,18735,193781,104151,226906,7552,179874,124113,31159,21162,44010,14771,51268,166128,31382,73124,77438,92830,205709,12113,1292,38937,13114,1334,2118,15597,69581,14449,21934,76618,48728,67038,14967,51495,24243,87736,147249,26720,11119,46063,43749,5843,44147,152629,133428,65703,14269,45604,57982,28672,55616,45957,8438,95433,37698,220862,132034,39456,61870,4161,26501,73560,56418,9845,4654,20916,10456,88920,119358,9015,65931,96507,48029,38534,21676,109081,43078,34943,25089,6131,28766,23665,5477,10255,16695,67,45778,42443,42770,29534,23733,100513,62617,42630,48746,14191,43753,50295,26007,8792,57243,43119,54725,164253,58250,112304,131796,25165,4651,3188,24831,47748,3705,19540,13211,102095,5593,18699,23666,32005,117571,33541,60584,74573,86311,99443,25172,27222,168938,7143,11853,53560,18834,19960,86522,28217,53266,117700,72989,34323,18721,66450,34346,74056,47217,202002,46269,9429,68582,75458,37823,82843,96652,32549,145144,27958,19820,158086,31955,201406,135379,31207,192545,12950,51704,9094,248263,76147,64028,110009,79407,89345,99284,223492,47966,26848,15359,201137,2861,110507,71231,72297,31851,118777,71039,151051,240855,16333,50766,14727,7939,4149,80908,418780,88378,59276,1327,7284,38576,79814,65820,42199,84860,49574,62596,12396,70598,40117,8648,7994,16836,7630,14047,359699,106878,525,29037,28064,13380,11675,50669,74216,103539,180314,27449,56299,172344,19274,7301,246099,32043,19422,36506,129317,6806,30140,4614,46639,66926,932,86600,6322,27847,233103,10541,39025,34887,3517,12972,26220,2031,66561,115015,48658,47596,12714,33845,3893,16165,35237,89983,14769,11962,147224,47018,29977,27979,5552,82338,86023,131368,1218,24853,237840,132193,15455,40873,3668,65351,53388,15229,59889,272245,47934,11858,34347,18038,90853,86981,300602,19343,114181,29362,84921,6095,106059,79472,38015,1206,48741,6208,8e4,21916,17423,6002,108083,24479,34931,56661,9511,26995,100694,163853,35997,81254,58321,18919,171890,86877,91341,74503,70477,53412,7027,59281,39892,131302,5864,15947,61301,67466,162369,47956,27874,35624,282324,21270,111847,102548,41482,30955,116737,28264,8592,55458,22301,75090,29821,30697,51709,3041,19208,8038,24634,30467,87509,126428,19389,18814,152686,20701,83474,45832,80891,105808,11378,153223,120770,98186,150633,49838,9141,12755,30962,5260,74490,21256,31678,65062,33326,289838,187831,20595,89768,2805,58535,10844,70085,12090,2451,138068,98544,24461,4511,6754,41684,28203,3383,65355,82833,30161,83924,234361,128424,28921,222594,33975,125491,34069,11508,67464,144226,41850,98703,34371,7901,21254,38398,65651,23549,53883,213340,123269,12028,71764,177701,28758,2623,68395,11549,15232,68603,9660,63116,36079,57093,31198,20475,48467,89984,35619,186847,107469,31389,43631,73867,41949,68841,114250,1605,30564,63403,17588,27680,99533,12641,70325,50428,73426,78379,11855,91651,72081,91720,60198,15743,12065,83398,140046,6761,46598,45900,5068,886,62448,148968,37347,19405,9680,15819,43496,63370,75667,163700,37639,3633,22774,34341,183131,134335,37200,23915,7054,14194,12970,26438,13350,285521,25594,8219,104410,91039,168804,138480,149734,15907,33818,61132,60082,4622,110187,56736,13551,73571,3945,73463,65498,17758,263266,17593,2710,27585,54469,38200,45367,63754,28881,3473,12791,98287,31895,65787,4463,94536,24951,36332,59901,28803,52130,86403,7668,181822,74831,18977,9850,177206,145485,109798,7292,31421,26280,77211,58511,12507,127004,11113,147,8729,56208,43066,79926,129937,31345,83947,39915,46146,98763,42566,1337,13192,18323,105163,80570,117753,16555,72883,11077,159438,40764,70933,83329,26066,12276,72059,21655,173836,126713,69454,153482,91585,70644,102558,110483,6764,127864,190133,3961,101798,20945,71138,82402,90884,69669,44753,923,16939,59700,164258,25969,27082,31399,43846,6306,246093,51342,6153,151581,202801,182731,56475,162188,89426,141356,14355,121815,27536,28023,65257,77523,106668,127314,24947,12790,38796,169698,23555,10725,44573,183083,42088,62716,43265,105958,32050,44067,50118,1668,3874,6243,318411,16599,1691,94999,52378,28671,216728,123258,2059,34969,69225,5913,136280,171443,141515,91662,22175,135282,80020,92270,1663,4808,4482,3495,34691,5226,109830,108512,17342,107488,11606,123190,100247,29666,146527,113014,15794,30894,13224,39585,243192,22351,9903,7836,47699,11078,25468,122291,48821,26780,122679,75521,81450,630,4895,92900,55074,74293,17441,3563,111657,103102,51613,12318,52370,36191,68245,34269,40445,41354,122901,168604,182500,62012,42557,11259,24428,115113,86345,12362,3909,78430,86852,134602,20459,47853,93879,22577,7659,3688,38555,13349,17381,56715,91639,12493,10895,92438,3142,37057,28928,2004,36427,32268,34222,209974,10432,67436,41989,173518,107930,27079,62729,30908,55558,5828,45031,14902,53546,8204,144263,60255,14520,88212,86582,109589,69356,8064,47449,8505,66558,16886,4844,52817,111260,215129,12941,91118,650,20770,6273,73089,40618,62790,2873,35002,14023,97208,19386,102646,36993,143736,135457,35385,113601,17893,32627,84439,100619,56016,6581,57264,172160,45452,111710,203627,70131,24100,322787,1996,35665,70078,22358,90922,83658,4097,63200,58499,14542,99153,52159,6615,12414,63415,31986,16823,1579,65405,137809,8841,16898,48082,259,33014,42375,12260,179850,73667,91389,98882,29532,17311,326251,41092,5928,20742,44964,48019,43505,9317,49265,6643,192712,48424,163487,19861,20113,70848,31928,105333,23685,78563,14638,54755,7158,24142,44018,20774,125255,20331,24280,10163,1285,2336,39851,4299,117269,46714,63816,87779,159624,11731,9971,990,137317,108831,50994,74554,162680,23640,131597,146962,170620,34829,91205,21184,1913,63616,18427,93136,156592,17519,67565,115882,138220,78622,88535,18115,2711,33554,109492,54298,971,24914,25863,36363,45715,27099,194995,14299,178181,111488,72395,322385,157719,130787,11897,81843,83999,11369,49280,118604,40922,61332,110343,53407,75639,40582,300440,54722,25637,13694,48248,48278,194521,56203,52779,48783,72627,10953,376,16733,280238,26351,230789,15132,25168,137270,3588,63704,73376,94031,74284,19443,159557,9697,39901,13351,119050,15406,146455,3460,29556,75195,37673,102524,92329,47289,98413,15311,100684,56345,7116,95480,11590,7200,167,23610,58426,17730,136656,27944,53151,2701,8824,103124,3017,90744,113588,53216,79736,65940,26931,498,29568,80540,143543,21292,1740,59268,16561,180816,42323,50174,40890,52866,10703,57169,4700,17191,4424,93511,49698,166650,26972,48631,165169,82879,69326,202970,4007,2376,231325,139592,22119,62851,37504,68816,58345,67398,186643,43331,277416,53749,15746,23102,17432,4793,151138,48822,54265,48203,198688,14305,54287,2291,18018,113378,123260,7180,97549,87027,120085,2920,76080,8190,102005,5641,64580,14955,59802,54028,58884,19367,81779,412567,85957,97053,103637,78871,29364,27637,141728,4767,30686,112738,130146,42745,12730,105040,14844,232,210944,36581,152317,135543,29744,3129,55647,58149,46319,27265,17499,28005,59948,7170,34138,5702,293047,110892,408,91760,218674,18469,46095,81403,14389,4610,35672,73060,11006,74848,104820,118143,190357,20043,105358,141735,5115,27093,45924,123073,52599,29433,9616,238350,78610,24851,58858,26769,31969,24613,18294,4982,32735,39639,143563,112073,202205,12567,4873,88601,44897,81503,101648,81362,34662,85277,17574,48173,21435,221188,40215,39576,80786,26544,64668,81841,10731,37733,247986,149188,127703,495,18382,54388,72446,43071,30974,198723,89608,41360,190,33045,8386,31658,19992,237838,119015,137622,50890,100913,6460,116233,267230,26621,104129,65114,14190,41542,14888,85962,23342,23041,26453,43725,71809,45186,4770,46452,53894,56616,221286,18973,9038,109299,55365,19366,26863,18808,60909,69353,41738,83463,12100,68561,72860,3980,13796,49340,12332,31311,27418,4255,53430,18976,45523,510,14224,30477,26581,4530,3651,101663,139840,22709,150861,31996,63923,120623,262522,3076,10528,2929,14672,130238,18087,9816,121894,100308,25085,55111,14565,18952,53293,2042,369988,23674,61789,133529,28783,108293,35477,47119,36448,71049,40015,33055,78598,198442,1833,159937,40654,77444,189245,113153,8621,18599,38553,35223,166072,2375,11659,21786,89523,6032,12116,63046,159398,18454,3678,32521,47626,11411,103527,38896,42946,15696,26370,10185,8413,37080,165583,4331,63555,14907,72220,50056,6623,62236,36565,49783,10049,17503,100581,55951,146244,24724,9626,17969,25524,109300,173965,99994,101056,46459,43647,53737,277968,8347,123521,74858,33829,44762,77574,877,81377,222525,123532,30602,43881,53145,2973,16284,81940,61281,127044,63620,9875,14756,114829,19032,9202,52759,119141,23928,120551,19607,3599,33401,76821,73233,117430,39968,36539,7071,5446,121735,194059,15206,45283,6706,15603,65615,1207,165723,92275,34773,104447,8396,32353,205240,164323,13600,60555,79205,25532,22907,33410,57480,107111,69630,32137,47832,70913,33161,20321,2371,117348,10714,86246,1625,11763,17900,268,78457,99175,97940,101092,86660,32221,14041,128504,125080,53744,124263,31017,13897,403,31859,21964,5633,111630,5547,77329,17961,18241,84995,25984,12983,67491,62168,47262,5241,297,51191,7351,8967,147212,82060,16821,782,11033,82431,62957,5026,43459,77963,203477,53528,6247,191852,87774,74164,215654,13467,1522,219964,28589,244104,16242,117821,67725,72570,156792,17186,15979,26990,44128,193014,35276,57125,16212,166451,68017,6905,77608,16364,53777,75921,76426,37975,26203,269296,64099,84122,12077,38533,830,4407,20139,963,43028,38902,42911,37503,83343,85045,16979,1165,60835,137387,58380,86990,110066,134540,56331,193845,81238,17922,163093,38744,110641,12502,56404,34862,26865,125964,12965,111648,25547,7771,27196,136980,9555,29551,107158,57885,18831,37705,35505,101742,13970,102109,62548,124657,23328,11124,89592,146376,248050,6241,22033,18337,80685,29898,11908,216623,67721,106162,146610,21377,15085,91552,42041,62560,122532,125336,102365,121537,142559,29693,223919,11515,110495,18776,22494,5895,185059,103592,229351,51220,100102,37027,257855,29359,54123,36066,106493,12244,79258,32002,432,56205,94836,90182,6726,14762,29391,48938,26864,38083,60364,3310,60192,14766,205567,57504,110760,22649,24666,46333,21517,3430,13135,28873,27052,158809,11597,20529,6695,23138,22960,37137,45574,6545,305877,43423,26153,24769,59844,14501,10430,134352,56169,13213,103432,49523,35181,13435,12408,129475,64620,230854,77390,51990,15653,83248,33466,44571,117828,51481,2187,10559,68019,18021,54895,48247,18354,33737,4554,108595,37288,39767,116707,9175,3726,108877,21616,83684,49862,1938,8543,276466,20134,108498,48770,102254,31914,131520,185291,100559,51890,209,19526,76471,50544,71814,99351,8172,198526,28816,20419,9109,98389,136777,76479,75596,30635,165417,48216,120220,25955,211071,39314,24308,32164,2559,146280,43403,9233,17947,90585,1786,86920,125662,2457,64741,32152,32918,122882,78538,44001,31723,56426,23375,103172,88177,145697,52506,49319,68016,31664,41488,18486,110400,7030,28241,986,109199,19900,42147,56864,65287,49183,7858,24e3,30453,840,16673,25907,68916,89927,6309,158335,36407,199737,130464,13137,59603,201778,195292,21015,42466,179062,172561,89492,11075,180407,31868,72493,20998,60217,9865,19530,39274,130266,54539,21623,12535,13505,40641,73375,4087,85633,2153,3117,70680,55788,92096,47509,98493,37490,271936,151475,3032,16171,96642,34106,78425,125761,19591,3366,19316,54508,24183,50786,194248,91528,33253,34622,108355,41741,705,3814,3883,108929,13203,67831,10142,59754,68208,29128,84820,56880,38794,24972,48571,40821,40476,18137,164254,24064,236309,79181,11282,395,39169,2013,51587,28551,9645,701,109513,115899,113566,12762,62045,58322,103726,41343,40866,244102,143816,2490,70346,40973,52618,15412,30720,104315,38917,42027,93676,17513,107418,20706,123890,13399,97727,24044,87962,65606,44250,98044,65276,74790,101473,19350,91570,1326,87790,172042,7577,100813,86896,85891,41512,108130,27794,14875,71431,12835,156250,58135,3759,22476,42176,115873,34686,56523,73643,108505,51491,20838,12721,32863,45700,29496,13700,34294,55360,29206,155942,123812,7706,163234,203,132720,49358,144431,8130,175788,35818,3270,76832,25710,54095,97274,28779,94621,74396,19092,128242,58067,20885,14670,93255,15107,63291,23654,126900,129421,59294,262659,9798,3251,67344,28600,44629,50672,29072,26999,31526,23183,49175,165843,175455,17282,175411,32022,45989,30298,90690,78118,83156,23749,35636,31317,7069,80381,94561,133756,14960,97404,6138,41065,78041,32843,16601,34123,9559,146529,123377,96395,54441,42012,84257,123541,10745,22139,106459,11720,150883,172651,154996,110538,4728,53447,25704,2009,71152,119354,21166,66604,1429,216162,8637,122250,63520,27180,29172,36124,276428,107787,77184,4680,14952,104903,24418,14793,51561,52931,8371,26342,48526,7118,92066,67280,40653,8847,34597,105438,14198,50163,61188,146286,50315,41205,170829,161496,585,197359,95056,1687,365794,91349,48507,5804,49263,5146,104902,96365,117343,132222,46084,96919,16875,8073,262381,79982,52663,13928,16056,153908,15145,109256,132308,18763,24904,167644,13618,40750,18686,147124,114709,150038,52849,2938,12568,48617,8778,5459,44202,44591,74914,17183,248689,13878,7822,80060,23116,194037,18487,2067,7798,43077,33678,244028,31320,74273,2794,19466,8218,36280,183997,48124,19416,29656,19280,98734,7715,18311,30701,133602,150307,126956,7378,2933,79903,13178,12593,86571,26604,92446,13574,44205,65699,427599,21118,8245,14407,27877,47936,33542,7916,26460,117762,21596,37818,2249,127359,209394,60044,47677,308089,36791,154971,31417,6998,150042,174360,12255,43009,29335,48739,3912,101398,53340,2580,146939,151295,45360,125275,15273,45383,27456,48761,23314,8750,60801,85823,104759,27894,123685,66968,39480,26917,55290,83305,2696,98390,57569,145853,340733,4919,20024,52268,30884,7413,203685,70989,112855,4129,50536,349518,68205,332641,159581,135361,236026,37563,176404,64899,6578,122033,63871,1850,85234,82089,66124,74145,121098,107351,12687,36881,117334,13136,14698,85933,93866,18047,32620,310,15094,46e3,88451,23632,36645,27940,87618,80520,58892,20976,27702,140090,96075,67841,103292,238964,87778,107338,17019,83427,67522,7302,8261,47570,116787,8730,80484,61772,174422,56005,131193,52875,14588,28471,59817,9586,15720,158155,51307,109734,15196,11025,59331,3884,52626,102602,84797,25158,27314,4437,20488,76214,189248,35023,114952,157376,2827,62439,102878,129749,36405,10329,109339,108633,36662,1254,13267,5470,87105,58004,15397,10434,159667,21864,52022,179464,3013,32147,31496,116832,18494,105502,129227,107267,50033,13481,9954,24267,22141,16257,116154,36185,950,115685,11305,176708,2048,178671,112573,287867,162328,497663,95170,50979,193861,50987,30368,136257,31830,46549,15119,169876,23788,17462,249887,57377,1949,35448,14791,43769,210091,3783,34612,282103,88380,245190,5457,20491,98908,11402,86899,117916,16028,162584,60644,320177,156096,31065,55876,22e3,77655,9992,23397,13757,317623,63978,215255,2443,17648,93231,27388,104529,93807,55505,140477,12046,112040,70887,40152,94365,112353,25063,114679,266061,71248,119555,15589,2244,617,14129,211431,70110,100652,7777,4383,85911,89221,21010,120615,58357,86405,37554,41647,18,15143,69662,60491,14714,186134,148344,42347,5410,168175,44535,42449,343894,129417,99682,20659,27272,140483,63455,222159,17536,13722,42637,62324,11976,114691,148109,2283,32057,182393,4295,147364,33705,2075,44303,30274,28331,63740,69740,29148,10346,44862,33716,73937,153333,12930,38784,247159,2515,41053,20256,83368,256189,54639,115240,5096,24661,175419,153552,26516,141,138176,63885,34115,47222,55709,2765,28479,38875,236608,12229,22921,77291,54426,45388,2860,57787,114579,295139,105782,17826,71066,19119,54364,69385,16568,12323,28057,33346,34919,124763,155533,101386,31644,8627,49001,303600,29868,63213,9103,77280,71333,9696,138789,37059,24823,5057,21352,32368,114208,56803,19424,10445,58514,8661,209508,26187,171838,10460,63454,14016,122504,41328,21329,46618,32493,38225,7855,31763,7945,29876,8734,6438,24205,97490,139977,130740,47323,33195,85390,57194,13813,60600,21313,96251,7699,27584,170521,139271,1363,4402,336738,129223,84983,69150,13147,3590,163929,207225,155260,55916,20288,4503,8398,98490,11773,27512,37113,84976,86558,28365,11756,116005,182148,13733,115313,47644,67208,85069,9347,14995,226141,14704,101835,41159,35314,13113,63526,214039,29978,50446,83339,17440,129441,72522,118641,97816,24907,73844,15717,118884,167255,96509,162793,30847,36849,51297,78974,77793,10427,1873,2972,9999,35074,28190,64297,146836,46298,60038,163007,108919,61219,2403,75022,127339,4233,110389,69022,9833,128097,88016,79390,222936,22570,94657,28462,56956,38803,81536,30474,152794,19566,16481,147408,74574,81895,20731,1918,1366,76367,187321,54494,24366,21690,61696,33283,107477,77499,31112,414383,74362,18463,218441,120929,59848,258629,201924,69269,454,19989,13054,59894,3623,58908,20681,35723,78523,102680,38988,184112,108087,50944,132704,52966,21699,18860,96349,201411,82697,85395,95658,5093,6427,177894,44191,32755,26961,155739,6249,31310,81030,26574,84311,120155,86730,113535,7424,48888,13516,45747,98098,20077,183995,81945,43210,26704,40420,75831,45648,11180,6855,57927,65528,124096,34851,2598,156633,107572,127352,38169,123845,60142,62722,105584,232364,23211,68120,1601,22169,89299,747,258039,80572,7258,152249,11862,101204,8834,121434,33761,19175,133142,46343,40178,48723,3589,41977,30210,38868,62257,10087,82658,87827,90646,16415,47552,351723,28298,72225,91146,272760,1701,11295,1652,109651,300747,51863,198800,29446,11794,32345,37538,22356,33102,37590,113544,37970,11478,179743,25454,103417,59905,221970,105196,145604,7817,164809,102360,16974,75840,255333,56902,6659,1954,645,59400,67769,7689,18675,5215,13793,20536,27852,3387,29523,259718,16860,94625,43143,29245,15848,233581,22685,63631,78557,22836,133302,84513,1348,51826,47129,98836,58284,1830,1749,94642,10933,6145,12506,10975,13879,103781,144434,10268,28409,32346,52968,121567,107374,77268,23686,35097,10501,155275,15303,47136,21102,168741,55332,90385,15996,84817,681,137803,25054,142275,6163,38175,8056,124296,240642,65621,4934,178205,16101,62803,60964,18230,100622,76465,44689,14545,9543,47514,16852,93380,28048,12047,107106,37575,101485,77047,57326,34819,96137,76916,6469,46264,115983,75768,87668,69942,13027,165,8373,114231,26434,52844,42799,182044,23580,146254,38081,43236,33883,146220,382894,14606,46035,36481,166621,35417,95382,2957,59384,60428,36358,66343,75378,22267,22950,83528,17577,56474,25285,4619,179691,75355,95836,53295,34588,171410,4487,14679,84208,44015,18562,109133,54101,11531,86052,174479,303157,28095,9953,35642,14564,39802,16145,77606,117406,53038,121117,53624,22062,1212,7632,127157,237292,189087,10478,127345,102515,181997,86752,87623,10966,121602,68783,68681,83042,114380,138349,191305,67176,50085,39016,1427,42384,1412,67118,122616,72389,25260,2237,13576,137346,19938,20304,2191,68759,5373,61364,238507,75814,23931,69565,38993,131741,38364,12528,87762,5679,129853,5310,186831,32653,90338,260176,389531,108118,26843,43985,50175,30563,25106,56965,18130,140428,4542,165503,117991,24219,229605,1819,129663,1240,3797,76093,18398,71339,51919,93043,27175,47060,216257,6483,35051,1217,16512,80798,129064,13225,69339,8548,237079,72298,2575,34280,51379,117910,55671,53345,247552,29486,39328,140821,34681,57045,60177,5004,90269,78522,2479,322607,48474,61296,13057,31558,4678,59271,6699,27044,31988,35944,12503,83480,4389,136508,3781,114121,70279,4488,155829,42214,2898,68191,75695,305850,45041,74344,106509,30087,17429,93292,12477,290,23080,114802,35714,18751,26554,105424,17775,2144,2412,100610,65192,113975,52975,180272,135050,129815,76238,106483,21440,63186,4260,46189,9711,28249,4169,23429,23390,8324,141585,63809,67668,38457,38063,39226,59972,1189,203916,62368,14403,16949,61767,85801,1739,40147,35049,76757,33124,62102,15780,103593,103009,53484,22952,67973,114645,6566,5245,50462,7601,8288,3513,194571,80276,1908,54592,5124,58571,2513,6800,273997,193904,1119,17991,117245,2508,129156,82366,26278,71465,63341,56943,39662,106116,94966,156875,9736,2204,122308,94418,27134,1280,24539,49022,45314,3764,50904,46424,30699,28087,293839,9400,33646,40165,822,147499,50263,116179,29085,11863,31314,5578,17797,5104,12454,1604,15342,219206,10232,67800,94261,25872,13565,90339,78971,75377,26649,41184,47695,11514,35369,20767,14227,41953,309396,148270,147938,33074,14453,27499,109019,39018,25738,240196,158931,52820,8612,95853,21524,137010,84901,70869,70021,116794,48404,38771,6732,1070,70990,187297,49140,5238,576,3564,253975,16027,16483,2811,37775,19034,25259,4053,2e3,70083,95774,19713,33431,92703,91314,42381,288770,48194,95985,3991,77418,13406,241328,245086,56533,35275,62725,9246,51924,70181,95331,16163,31410,79016,39312,120878,119371,275987,80124,27712,9186,220,23598,146167,85209,68238,282190,57048,31273,30555,80913,17594,75779,59160,135002,101219,189377,29225,96735,60126,62522,104e3,27620,86814,17240,147533,11001,5425,43682,410,49460,87270,69480,46315,59448,1816,76201,9431,11788,87960,29063,65539,47347,11678,33846,7008,196704,9895,6753,8633,120892,59970,572824,115934,6646,202559,892,48351,37611,251282,57823,67263,57750,26527,34485,90747,7685,88370,6144,64182,1709,41969,21458,62327,181657,49247,225330,122600,114574,107124,85361,111833,63243,71420,15655,191178,72430,18063,51425,54002,12364,53225,86557,18193,97580,41232,138398,67821,128724,8944,233212,101353,52099,42127,14006,120107,32789,32132,3498,18123,33758,56058,5779,128760,59888,98869,18445,84702,51911,13234,218379,20093,39031,8074,70195,20708,23462,24355,131384,60189,26390,10403,41060,7140,10781,49410,42261,87202,82566,41663,43105,60276,2768,5733,74176,28329,2297,145430,131632,83615,122915,105441,655,224102,5284,136426,67763,16294,188511,32538,61049,27893,3394,13951,159099,28542,17930,145360,9492,190122,32285,78855,26440,13570,58648,73908,4239,124561,2444,74172,53131,11468,10794,73566,11623,35343,64710,30481,4163,10328,38309,29901,10538,154377,76132,92405,24839,11679,3465,13449,11637,7824,2337,57754,1260,14458,41118,19878,38661,13416,159180,37074,163164,54137,28627,52134,184900,8520,40385,29546,30502,22386,66527,107458,6850,24022,47983,30603,35083,8934,304066,39500,9,28261,33026,77251,9374,44833,116312,34990,29236,63563,125639,135405,165398,159055,55690,88141,69643,236964,31983,25572,20436,36746,60896,31850,16179,11828,5888,3043,66368,9750,31167,7915,53111,36430,1333,64344,93659,20061,60596,180191,51630,6792,30244,43509,101058,22409,420,44210,109783,43223,27030,72477,72831,32679,29235,7675,47556,12258,39907,149412,84926,118247,24692,71717,105038,86009,45941,41189,89453,29856,52543,30627,226798,67303,59230,67415,34408,1367,99685,16867,128419,52147,4111,125381,117881,16173,44093,102224,31575,23234,24870,83790,127407,239098,3200,994,1255,100903,242275,117266,55116,38205,16140,29662,11307,40414,208793,123355,56470,4862,75600,30119,58218,70828,24075,26974,7802,192353,4851,5475,78720,66596,3409,28573,64396,30381,30690,59859,88256,5406,99945,103064,34463,37727,24238,86643,60088,4057,23741,5967,162904,38240,28356,93858,25510,122879,6897,3278,7057,11971,4400,35461,211413,21395,59615,39471,87233,55795,128426,3051,22470,41950,14705,3974,180108,80476,78442,204996,91987,15634,67610,139015,142373,35611,51134,10387,4353,153456,57749,181039,14183,68447,151532,21107,36452,20551,3186,46247,46383,129666,88736,140662,146243,2066,8360,7978,64818,106963,17896,47801,10723,114821,223295,74192,3293,3393,16987,74064,11277,91622,4270,29828,27951,387869,103235,1374,61988,120083,477,145892,128378,11779,211263,61354,18221,17869,46530,83061,108538,157981,90608,67199,95080,49064,195814,12302,66307,10348,231346,160732,112859,63633,146558,21271,31037,198802,47622,12862,95710,3910,77850,73961,85585,34752,61e3,4082,24595,103679,71107,8208,79568,150019,16615,24961,139857,32664,197366,4559,54735,32696,4126,162019,75698,13916,70108,159638,19834,9349,24675,175560,49643,18206,52459,27992,10809,88865,401975,133172,29e3,34558,30915,3658,25834,42430,36562,125265,18182,10155,40149,97082,208980,19575,60853,90529,66545,9600,789,46420,2317,88593,55595,98980,115302,5742,169155,1073,177901,3472,11189,63711,78643,65472,50459,127979,93,42202,67053,21720,157650,11145,141378,42033,22824,85705,79114,35584,15974,1510,54172,28562,12451,104226,19190,97151,73024,20948,5151,81741,21499,29006,84183,198074,54003,45120,170125,26240,35177,28389,64863,79974,60778,176915,232183,45342,2038,80253,41564,40703,32689,5430,100689,5366,23007,134279,14266,26712,73993,24934,64242,52113,102887,61801,46415,201049,54251,62133,122757,164883,30815,139966,2319,30842,766,13362,10287,134518,86111,81665,82440,28333,43019,18963,8804,161944,23439,102144,101145,80029,39052,248708,30350,117340,11878,128467,974,138625,63961,5237,74778,61834,67040,43814,13690,65947,33809,232476,115258,181745,28824,94013,9510,10246,93722,81976,7217,114383,3493,16014,69045,72692,12145,80981,9507,6692,1620,60820,330444,35474,33962,4797,7053,295463,46445,27026,12491,77988,49524,35675,90947,29114,166705,101385,133782,32704,6186,84595,176031,185623,45966,151302,63069,1699,107491,947,15458,74452,196212,6046,10498,12163,10239,35191,243951,9277,9090,29539,54460,22820,26514,112549,60372,51753,48756,21812,70861,260326,41,44222,10441,16961,48148,138771,216194,5914,52153,53400,212036,56519,26245,10117,45888,15294,138019,90913,26368,43842,42111,23348,6082,194845,161089,156206,51546,11647,30759,302912,262094,8635,78876,26535,35283,54183,31183,85484,147873,12989,5197,6356,72894,65347,20150,27370,73787,1493,45918,12366,190217,20724,13858,10981,67449,81213,7553,14115,72242,271517,11842,48310,88743,143726,22177,3290,243231,58452,62937,12592,1654,40066,33477,13751,9921,128442,15868,7106,75236,83773,10775,36938,10482,170465,17368,17469,161508,32752,98340,800,19824,264456,3901,87319,2867,26782,9630,113102,185815,24197,44584,86366,40224,3636,140916,31731,267731,9567,53678,72984,29389,27963,17106,50282,284911,60170,8322,12608,23374,89652,5268,39044,229766,8869,151350,31436,177342,12269,183212,120418,116270,2843,78888,69192,7865,184099,1086,129897,18383,70508,20242,18508,229924,124569,35749,50589,55626,9884,83115,40971,30671,18135,14452,38861,17844,201826,5549,26413,17189,13561,38539,10679,143331,3314,36785,171194,49685,187713,67506,4618,104039,17060,195080,50648,33159,19238,67559,134840,28599,157523,17130,38064,117398,94355,31918,13575,34538,40326,13997,3494,348283,62481,26862,3603,104426,244363,153709,112487,304612,199674,41239,35545,54869,293005,28223,26277,26899,4533,18518,15492,38587,80488,70485,160395,263,60162,11382,222152,4696,250751,51921,182609,10707,48463,46243,1227,49111,111564,46502,33342,56846,68541,63559,858,139927,16654,229375,76759,26478,33205,95828,23399,92945,2637,35630,28470,143992,50214,14174,21456,166191,65665,1711,21594,78019,97599,111701,36,147151,110246,189022,43021,30397,40757,131935,42065,73335,48039,26596,28984,15102,2361,7421,202167,69744,43766,52826,3642,83304,33873,75140,63169,192389,36551,92748,13039,123959,233220,21738,84447,77230,20228,187852,19095,25799,92136,108774,29237,53947,2299,118106,2687,8830,42331,202924,33667,2023,73763,30704,19363,19779,16737,35629,48081,24068,101013,162338,291912,13749,24745,328289,167679,70086,48299,23306,16732,17801,43322,54589,3586,63653,43624,53474,925,109177,251316,43805,13082,19511,86565,142182,92461,17117,101033,103319,64589,4022,4351,235897,5352,82705,107142,46391,156084,5860,61365,10558,13045,7717,18357,33922,12590,33065,6928,46993,783,46937,67846,8952,26295,6107,119656,18799,17458,50747,4229,179559,112727,118080,20683,41464,125468,51560,49749,44231,7359,35339,62988,136487,67015,5208,29150,24956,105186,48858,6143,18097,6972,16404,73489,58742,97196,36357,164616,5834,32267,13746,147733,15113,132091,34127,106298,39729,106426,22294,9780,15602,36213,71502,42808,66802,599,60755,5851,39120,67363,108623,126368,72770,91263,32486,30596,151717,7951,52002,43103,11768,68942,40901,39344,24037,127500,116890,48403,16926,86750,17745,48648,159545,34460,58419,5634,114317,67865,31462,23352,24010,98185,125708,69686,68337,13610,26271,70691,2980,4768,27225,102402,75453,28106,8104,6931,1176,6274,6475,112635,22498,6176,238686,26832,28893,90319,14441,15682,15087,39517,45270,109134,104440,45965,47645,81772,7876,52683,87720,12898,4505,185665,2769,113401,15664,57592,105229,137381,97059,119268,6876,43309,33886,128363,35476,144249,67013,143587,83367,25703,91436,59347,53236,2289,16519,19844,46309,58558,99834,23313,218816,231303,36388,51333,183535,109792,139277,54306,90139,18235,8275,32710,37677,82464,86025,92204,88842,117723,37570,128723,234242,76350,73795,34896,148247,58424,11105,11744,45746,63372,17118,49772,199520,81902,38004,22911,33752,3125,1995,53792,4689,26909,108150,146062,69674,41811,161444,84855,8999,28561,16731,93937,3189,21967,24890,22943,1356,145300,51569,28802,517,118679,31703,40607,48098,108854,25003,10233,73969,177495,5248,24516,215347,146192,48712,60626,69188,40735,5866,586,101541,6509,47590,52129,5969,222045,110933,25733,24223,65339,62812,2414,155418,35819,16022,78423,43138,20995,128255,240673,46745,236093,72176,57085,97841,61248,107,36068,193177,105427,55726,215229,20446,47228,100420,87091,14429,121708,23605,21157,187721,21880,2997,203976,99166,95068,25877,7724,98925,83401,4829,13182,18229,13718,239662,38653,116505,153497,30589,89029,38962,181302,43853,78872,180301,4786,248240,7401,106136,112590,77745,19731,60880,77789,125748,135487,5975,48627,34084,12419,215770,47557,254582,10364,106495,21856,67539,88981,38805,21428,48732,42316,12149,16078,52808,25327,51322,33850,51147,12253,122354,46077,56483,254553,115417,81834,150991,94662,86668,7381,12841,100650,18218,15741,22372,68294,50705,15535,84660,61887,22553,72299,31361,24824,17743,46820,64288,31582,77006,111674,116384,30760,80920,86149,77192,51979,79691,60342,122805,103800,240873,160744,233114,78962,54920,8608,3484,316104,72548,24337,5088,230040,21926,10172,36838,26,86221,83458,102176,12062,17571,41929,41170,28428,68239,41750,103930,2634,18313,53019,34825,97837,63115,24606,73157,152474,14715,91439,37033,109806,140259,30668,174760,380,135597,95673,136073,65073,134249,13829,17279,122305,4420,46444,10237,64848,203623,70728,10349,182885,65075,24519,25783,40318,34139,22222,63394,55266,102764,41422,20126,65100,90408,53640,35128,48932,11192,38935,96839,34782,39492,19396,41332,6250,5511,19492,51304,25936,104466,54099,73771,86115,5080,7669,30891,111700,13931,25276,72289,135447,14820,258641,25265,31005,281179,75286,393,95359,14623,13584,6680,101227,80173,44933,76666,54542,13244,39348,458,25379,109451,134348,81143,6959,65554,12027,51311,8716,57589,140731,28467,23316,17272,30458,25980,55229,77197,83798,28302,114784,7428,34548,26241,14712,39336,103304,18928,54080,12870,334,87722,15208,16895,142098,114262,39820,83913,57817,28682,7721,14900,108672,11250,62246,42849,415188,1724,26555,24549,25505,26443,107450,145899,61035,43528,6901,60726,65906,267741,21338,147590,42079,18924,73017,135236,15393,5206,4026,84185,1531,5988,113890,82647,303391,7386,69844,71611,189865,76523,31877,13315,19314,198575,32821,1928,67641,25913,104475,103489,3297,70391,18406,15446,113347,19295,93790,27856,1792,167471,116449,8541,4408,41757,63233,25765,86680,64501,27034,24816,34975,6079,4486,49693,36229,16917,21581,62426,27862,11612,54284,35702,194034,355,24277,48262,87411,70504,310164,118018,12516,47559,43502,57433,107139,9290,66533,80863,14634,34312,91725,28606,21342,67241,72355,43244,375789,37402,174015,105070,8342,44167,67494,1890,16365,11723,271002,1865,47918,8350,45564,27742,25110,125803,8553,49504,81925,62211,4534,15491,19011,80373,206920,667,102405,128623,245524,5553,113309,192739,65766,19567,22832,261958,29679,21293,71134,20962,105123,24721,860,21752,33448,18372,157167,94822,35770,173224,232737,75729,28937,46828,28062,25453,5207,140366,36665,30652,6169,67920,150458,92040,23186,184604,92330,20891,176492,49427,27828,38305,42495,143982,49560,25503,90043,29747,65328,47830,12932,11068,77721,9003,25213,94205,140426,46090,89945,138173,192691,33329,112232,129905,35709,27514,1841,19957,31411,127476,53572,17497,173549,55063,175135,19841,69314,5192,237921,117660,150697,4060,273045,50414,98940,65348,153665,164423,58804,156695,48994,213928,86036,28608,8355,39574,34540,16927,135680,18374,151587,10830,53805,16878,16623,4282,48030,8537,14986,46102,13062,72897,72,33050,108227,39451,45935,651,113320,40535,95176,57450,48843,5003,19019,10407,211163,3848,1068,4988,32091,30095,41692,15099,43602,107434,50744,7627,171349,16313,150832,352665,207750,33937,38256,51091,156e3,87889,90663,84175,24908,114900,50365,31494,83829,5398,169342,47521,54818,18935,8356,43094,41212,174536,10082,92550,6678,60614,23355,69721,14796,34149,128830,58187,3179,208,40325,28399,225029,401412,51150,31580,207268,6657,10993,69818,64282,289845,23308,12961,38447,6681,52944,31855,2572,47646,120728,179148,37240,45196,218274,4816,3695,21961,50084,35209,18073,51452,27004,6100,33941,1377,84831,171214,85,141510,9078,99227,32610,6417,11718,49868,65579,87902,73018,49062,46280,61742,21512,40862,107733,15941,29168,157765,144919,14487,5767,158014,140070,7241,573,71584,16921,223566,40331,179473,35081,47926,140885,41508,52104,59180,42310,32811,29048,123517,102413,80208,10104,14746,12649,153641,126022,37965,113017,4171,83,142592,2809,6362,50416,71323,116894,260776,16204,1524,5760,30351,12658,20703,54403,36083,45408,74772,4946,14485,50759,111222,10890,2195,167147,92962,130534,16283,177256,35016,15472,210156,151187,73922,117691,43250,52051,37392,24811,24358,30830,5775,818,21969,1476,127322,151783,58392,31021,106913,65215,89407,90802,28531,11690,20234,95249,44602,37256,18707,11928,5161,4410,26571,51903,49768,22008,25252,65780,209499,68769,203726,13249,137363,48845,86823,6658,5674,31881,1083,1823,108676,34518,166752,13791,14287,91576,91429,8665,11529,26401,16191,91972,30964,5254,28486,54697,79613,66520,18447,22870,45203,194466,22822,51703,12278,76716,44595,73455,33546,12235,144843,36154,51247,11116,33040,3180,225753,60864,1972,28469,12891,28879,10338,144157,56294,353058,38302,41447,87532,110616,27065,168438,6557,1213,50804,144643,24817,2390,136531,38174,247513,16190,4059,122791,131994,137430,39506,57650,16305,5188,54309,106128,20628,88071,67394,395446,250285,66176,91254,1399,114196,43915,60230,44853,27206,106353,43013,18733,345105,226453,51202,16607,57106,117175,35492,10476,89598,127439,15187,39624,13688,61570,10615,31111,59370,6238,175252,32143,224492,41388,95408,34384,148238,78307,38959,9340,160091,61443,15737,11216,41244,170,38299,102443,113097,26382,14027,33707,3957,76300,66160,19431,18900,6952,1717,108656,82206,188021,257335,27295,43999,41210,31777,46956,57457,12657,11489,15697,48060,204748,53583,82422,284790,30503,137341,8120,19615,220311,15991,10217,63424,9808,67431,70976,98221,4491,15177,28535,144789,751,13230,2394,1504,33977,132104,30316,22230,931,97193,185240,24826,22687,174322,15307,22988,1390,188745,180325,29580,59068,74903,18994,29195,79,15436,7622,38462,11566,138710,44828,45774,37768,99236,68137,84083,19282,22698,17134,74807,126662,173497,46248,16938,119735,3212,28292,213652,49013,9975,32180,45660,86250,4801,68788,95490,77482,113751,11994,44624,94452,46839,128497,100316,5798,58588,73184,202987,65417,37790,88524,1606,43156,97964,105717,34947,11203,100060,37742,130074,93653,107799,94311,196106,41347,8035,10780,16390,27883,118236,167395,1979,25006,19375,31628,18916,144723,78502,114047,103107,86492,107686,5844,20934,206963,23556,22591,16562,146333,20167,10471,117434,33085,2863,9740,36669,41849,37271,22790,18209,28979,8231,12952,54408,21731,25130,45208,55748,138120,75826,414,29593,9925,292865,25999,683,123149,7036,92159,86055,61827,103680,23176,54918,58466,57578,13305,5709,86479,16697,31064,17660,200919,10770,49793,33423,32370,52047,16488,62555,6459,8426,83493,7763,59725,82812,18628,67760,79405,68557,9612,7673,28102,56517,69620,171797,32458,29541,15870,81109,32080,207644,71495,21202,11039,91036,61230,2810,130800,32260,4613,60590,37112,75214,33979,126402,155062,30642,63875,12810,194463,82799,47664,16725,36685,43367,61099,449,172150,102867,21691,301838,36745,7130,18671,57316,34852,38034,54182,35578,65900,99486,19771,3456,2658,16914,99866,28390,28109,8262,21147,34353,20006,4228,137085,1675,203023,283196,198286,214375,163329,290603,152574,40471,83506,30068,14730,23177,131539,34759,27668,32178,71896,104799,116305,85430,119262,42860,25160,8911,23428,49437,105322,6519,16203,6349,74711,1230,38045,8540,75165,44736,25909,51026,317034,4984,32281,91312,27060,44431,17817,45363,155937,239085,35697,59784,91993,29531,126740,213757,76560,167776,285273,24262,8237,65030,41160,74437,48804,118916,13159,37842,1031,75349,1478,11655,108777,23435,277425,101734,67469,70231,124711,43532,28514,65526,54956,1e3,21882,17728,25302,40952,52214,149632,1999,2111,3259,63362,89961,220561,39777,26335,9063,10572,12416,34551,34623,38604,24723,5947,15588,69927,66252,119177,69173,46629,28714,70715,212408,20521,406913,74380,11716,50659,50862,37009,88460,130101,7210,53853,538,65120,151950,55806,163748,52837,13153,21100,16674,64536,6091,138201,44837,58547,3723,163,2177,32288,85454,34033,8497,14282,25742,10535,10741,79559,117493,243787,49337,100718,79495,40139,42956,7551,55433,15421,31509,23034,45081,547,61176,53434,328001,8470,36263,30145,4519,74173,53935,11845,73774,60211,78025,3,4102,73782,109293,315332,48412,26683,13714,6865,20128,18490,104141,325,39470,171970,115860,15707,7268,73301,74336,31370,2368,111827,107757,136231,142844,97138,96638,84053,38691,23801,1588,10573,122098,77039,240,186135,146101,11996,18143,112963,46171,155836,348769,47795,121213,116266,132515,3344,144804,31286,99187,255838,129694,35894,48779,55235,148582,71967,65282,15174,13920,47080,6147,108242,157593,125025,7136,1286,28957,127956,28402,98813,20805,7532,109417,40610,5041,32958,15142,18408,108596,33543,50517,27748,80114,233434,91447,487,37094,100048,30541,43477,10639,89862,155868,37667,8726,60684,237903,73408,99589,12190,38739,97348,3914,13594,2680,149016,13907,30171,28343,23530,115225,61104,35821,147679,14337,4297,244282,24085,326976,56428,7851,21303,131620,71446,83253,68692,111870,5224,15813,38197,49026,45057,13660,3306,76345,40671,27905,91072,996,68527,62085,91351,122634,55109,168209,2024,27560,112707,17352,8306,167115,169921,166958,5031,46020,11844,67284,19130,76185,6920,32849,5450,14610,22451,21002,17392,31872,66682,84796,13709,40210,59898,12029,8719,53564,21462,91884,21647,88379,194428,12754,37797,132826,160016,22567,54383,53186,77611,31107,8339,4694,19185,90355,23597,17222,140675,28442,23668,55977,9128,61555,28774,155229,17658,9390,24379,69357,15752,127381,239631,62460,93181,55913,45133,140155,18676,25249,33164,29581,82837,67223,22362,29975,7317,52813,1943,29613,20012,207130,49617,49651,5636,15334,36313,29226,28084,95247,72072,19e3,224932,15811,114,32127,38097,37508,88507,37225,27359,91626,12193,69279,20608,11055,88156,92808,2152,57259,55275,72789,24475,104414,1708,9882,3818,48661,66897,1631,34806,227930,85815,87753,18321,250664,72733,25107,206797,50891,8082,196411,92596,96764,152823,65514,22819,387277,62176,51225,40329,15563,189,3659,73670,64357,51793,275136,33482,86653,74615,67058,11318,125720,15388,22388,8267,1730,102663,170910,40784,7144,85373,13040,7088,94309,583,44224,140424,77439,18496,164026,36578,4722,9151,5824,63365,26510,35199,40500,79277,32495,44614,35233,9566,203293,152144,7097,2330,183480,98629,13423,330887,44130,68600,30939,97829,31012,345465,56747,94879,4939,160027,149761,99423,46099,32251,15332,8761,96094,128555,5763,235318,222223,55729,30241,55420,201746,3987,81382,8259,49325,23287,7719,24633,251100,92311,18591,110533,64759,170260,393860,7175,21144,132887,3593,75346,101277,91109,16387,259187,11627,57459,173829,44694,55780,49797,89192,120443,62622,3904,14814,23887,1027,112258,64955,99800,11132,66353,36202,48624,18158,88481,96882,43059,11040,2455,7077,21651,181159,99126,100434,61388,68186,19161,110468,120052,8819,55324,41494,7014,37689,3618,87729,92615,207943,9823,128657,12587,15857,6379,67628,51216,71775,157617,63244,1503,3864,218754,110864,5769,21492,7243,1192,87921,85529,31512,18537,42698,35350,73510,84474,34301,8991,21013,35034,566,38832,19838,35586,37216,39413,55006,12178,59742,856,84563,6900,25632,17437,49786,30723,13847,70845,4044,7843,23944,235976,55530,48942,6518,20939,73769,192653,52936,95207,23895,132542,142982,22632,87452,48042,54018,178468,10728,26230,23559,363,81269,142012,5718,346258,31456,84333,246476,51018,66692,101804,120570,39962,30373,70593,2864,60541,19425,54209,104092,7201,31545,48018,25865,15442,46257,40443,8328,6451,111782,47527,97754,33046,470,245116,31095,39,91934,87208,73470,36708,36521,12801,70624,36272,8892,79768,12427,55454,103756,5908,52390,62962,22720,141138,94634,41689,128402,126390,6628,106394,35527,134394,82727,254651,194502,148064,89549,3202,28359,957,21954,27906,49840,142747,8307,24206,48978,1186,71728,133038,71474,91306,6333,110959,74600,70387,18983,62609,56057,22970,1147,135850,1321,28834,3578,59715,102227,32827,81415,99952,55636,257598,390,22702,35701,85872,402916,39216,189795,14929,19467,10112,144422,61514,5279,63421,134686,41436,8424,51925,10598,132295,124416,4604,194739,210929,57866,31829,51626,50007,9976,91878,61906,56168,81906,60918,61859,40017,23059,16887,40927,62064,12785,32893,32913,21782,93965,20169,44387,79084,38463,11457,93950,27127,157050,2697,337088,5116,54128,48255,33279,8821,27352,25515,124022,65710,28906,38557,33390,1722,104435,72215,38551,12094,30978,25113,6671,37355,175109,42862,98024,65406,221276,59624,118012,64637,78760,86697,21426,1639,40350,12584,67193,84144,31396,7863,143011,69629,63112,9454,28666,65798,46372,134721,6314,51402,30837,151922,2847,38676,38008,92823,136245,17540,5504,109295,205242,37606,5211,214892,1586,20670,208711,137743,19328,40652,16995,20023,14657,154919,34422,12996,13918,38221,47690,16398,2959,37680,89122,6721,198469,91876,172043,83898,101992,26084,94570,3635,76958,22853,76497,38266,176590,168403,44464,142840,79180,184594,1984,41806,83147,11985,6546,366068,59732,24533,271505,8736,39084,222992,93429,28962,58985,86665,8432,30028,14548,32439,54424,165029,55175,27458,69046,121277,46168,33732,20661,24581,135574,123110,37556,79260,72611,16957,12939,46162,58238,44907,72936,253758,41324,32518,96480,11949,124438,65280,43256,34107,53533,43531,37037,28366,45970,32741,173438,6121,194202,62969,26355,30314,58370,28455,1848,50519,82830,90393,21761,295490,10936,256940,133568,44050,20269,4089,27457,21610,219460,36743,14821,101388,52005,13124,30979,140816,167362,26054,18458,60789,34917,40447,26606,33422,9066,3452,83614,5761,20263,137238,25038,91310,101,52322,74548,42572,38084,214054,186568,31802,17665,30620,141936,37730,14420,4265,187218,49640,188208,51441,55388,96452,66659,40869,42039,60967,221027,19234,178581,29105,96050,9165,196118,157335,3738,40354,117436,2965,34136,59659,15570,50843,230035,31444,71260,43886,18316,5387,38500,168508,17406,32174,8828,103373,143806,90367,3560,18719,122310,16508,26719,2541,105429,6645,37998,73190,10591,235916,49737,87112,233941,53188,32193,79154,4544,52905,126477,7580,63501,57314,3216,31337,6541,103083,60846,49,9756,15481,1355,43840,14319,13743,27486,10222,73114,230718,418644,16706,6674,279748,23058,45273,295831,86306,2743,5535,88773,21829,35253,120938,31153,3169,16839,42847,8751,80974,33942,36867,35514,16485,26474,77775,56877,5391,48346,3882,108713,31403,27804,55248,26235,43821,136104,40118,175507,28034,203908,18732,1788,34030,106427,36958,54359,7251,44936,15356,69139,455,157915,22173,140291,50348,43275,82066,49621,54952,15216,36226,96695,66855,6936,1987,8227,196087,4631,68827,99004,47541,110265,17953,147605,110242,58520,31312,38724,329975,642,3155,34497,75937,6207,73843,6120,17249,51429,117746,3218,910,68961,319671,14938,29555,34700,1649,66673,72268,9655,76800,153087,6941,210168,27130,35398,1780,73242,3135,56689,19556,165307,8765,35967,121458,13333,70453,17350,117253,22265,13340,44265,39869,441,3742,135025,23581,33309,16543,17731,13291,157637,283005,21408,101360,63887,52312,83873,5338,233779,23759,186949,34531,177320,38069,156465,91004,19353,59852,68160,14891,1338,1072,29823,1950,28901,81407,313445,73038,84807,162348,240257,37162,138934,16111,58013,41253,102951,16457,96056,19541,56402,67217,41638,94381,89674,29481,37456,80815,151579,13937,13683,132537,19699,134545,67020,29816,222341,141235,427578,48868,129557,233342,23077,87871,16213,18728,16184,9469,37913,19680,2798,171356,178328,13216,50049,72690,71904,124644,55455,7504,29052,41036,266546,19899,30391,188755,8659,59469,16,104298,112943,53865,76203,138226,68857,139953,14125,107625,119795,173133,4398,50273,48808,54390,16466,122086,31835,67035,50971,48859,7508,46427,66477,73021,84615,39985,83076,46779,201569,53336,36443,60865,168164,143810,51393,25548,169307,32896,24485,38424,21837,29087,275813,51674,6714,64883,46169,187369,55186,76192,12852,12018,62134,31067,118303,16542,12125,10579,4928,26291,43854,7091,10946,253716,109062,39283,17261,113012,258512,47764,125126,32646,55892,80279,201623,149872,3192,385,1208,48750,5376,58738,22335,5427,82416,47811,32435,143086,38930,94128,59975,156037,37977,38224,62485,7698,50405,71027,16462,21559,136153,34131,107506,162069,63703,3101,215029,40407,4178,3774,9187,80019,17880,97926,67579,2600,18405,8351,47924,86638,70820,92206,86453,29610,42241,119200,3198,15466,67813,57863,35454,4779,99518,4649,104641,144269,33730,38073,65864,6838,109456,193298,154007,5623,45741,30846,182578,25573,157224,1543,58575,138703,146140,44971,49356,18275,59064,20300,13122,11848,24453,11973,9797,86843,2919,25530,49210,1130,161220,76788,75373,85604,34926,36014,17777,17255,51533,11676,92226,51845,119859,21525,5936,18507,28050,1140,31418,14857,34207,47859,10750,36382,32079,106909,59426,87757,38393,110042,15965,97104,33757,35344,97993,53979,33651,45407,41884,82515,173089,7177,58371,35365,47543,51927,35587,10670,23544,29306,84233,39976,76076,62097,9007,8668,28119,78281,120790,19835,143020,54968,18670,64959,20649,34469,42570,33001,136570,87796,120044,1106,58700,63951,127623,12805,83057,40212,31773,49850,7361,54336,347524,101314,23751,19569,48791,29174,49369,20467,7465,75842,38281,623,112457,60210,28849,51003,94720,6426,90047,85560,43761,3579,85105,34607,90410,118528,7224,42907,111163,18168,6960,161135,191298,5247,100584,127552,171568,20121,91173,12636,54615,20199,63730,98105,2396,40387,14438,125012,4765,33235,12865,45299,37728,82098,77872,114037,59253,19675,24838,398016,102561,11446,17069,57508,178277,65836,99941,26114,2585,271882,136866,50126,11027,155648,118367,14585,8910,123015,335383,40434,41016,53021,14439,87098,176860,201543,121888,2358,9286,5739,22666,54270,37884,169381,33984,93859,16124,89364,72207,51639,76366,99029,65812,2198,12147,174891,194289,6986,30252,88822,21284,11445,288337,160821,33034,100869,43852,25761,52882,1144,103809,1924,84458,86079,43411,13542,139276,18141,34978,41298,7276,26481,173800,33210,17951,142652,33616,33677,2210,19941,98568,2486,192414,80136,12058,235883,50963,249638,29572,27221,47034,6124,72107,63346,97620,158513,299699,40388,23235,37176,224244,198386,121323,67992,23827,63170,17838,106622,158590,26807,5345,23489,91891,55474,74834,37981,13058,5977,72552,34706,26828,145172,19904,21367,34043,960,77092,91381,4733,47446,7680,41697,5170,16960,14741,46101,13656,473,51842,37433,11103,11551,121951,13191,97536,165932,50397,51628,129028,9069,44885,6590,59195,47045,32940,225472,90345,21833,13303,29407,96615,141951,5198,6028,18395,7181,3861,14966,156358,167182,36529,55253,25942,173153,30959,27261,50691,150176,162201,38467,48462,80602,42163,118482,168,108756,26011,17166,54149,456538,22512,91374,13816,90358,131615,18132,226707,1824,28139,26860,42253,93877,77351,65575,8980,80574,22020,27948,40422,91324,76376,13528,39281,91685,82215,122541,144066,1983,193851,17283,26320,2739,194978,4790,26845,42627,61300,65815,174612,55133,4200,191130,79771,158321,52280,166796,221620,62461,11278,4067,88152,83409,31717,121367,13522,47325,37945,10406,174348,249321,154101,64912,29938,51775,17220,15776,166138,78890,84425,54121,42861,16368,24572,291647,10197,32073,22651,11677,97509,26952,35787,18424,41910,71614,94977,72318,41594,70024,275419,37702,60199,7335,39107,61315,18271,18394,33768,87884,104277,123724,7277,56288,71981,189803,49320,3352,6798,14240,8954,69220,94433,57372,28620,68863,193727,85575,42309,41667,67689,42081,22543,44824,12719,28540,114236,101553,27638,27296,4300,5353,4663,19379,94098,3758,95888,95144,80344,87320,28447,259518,12718,71391,152731,37063,24132,31911,104896,15672,103782,1521,4945,72541,23717,122632,15619,87175,206120,29428,189780,61416,28350,44457,972,1175,47233,198738,95789,41907,21953,97034,59341,22864,53713,16873,32971,20693,20954,31336,21477,16169,38370,16412,9019,3841,24599,21938,17085,6484,81198,76413,5849,72514,12320,65247,276175,37234,59796,52642,16312,57349,198507,94148,46134,18958,125552,1747,18725,151873,14901,5490,68287,29470,3689,64794,40814,26018,25692,54450,2703,88278,124886,173087,174e3,24159,179477,24276,46004,201876,209202,445,52876,31948,30206,157610,39180,18439,44124,50469,5774,96278,222758,200216,50290,45486,20435,46986,46276,140133,142326,15569,13363,47522,92583,2182,7135,16853,22998,30272,4952,63263,35623,39096,53789,44864,20053,110392,124213,4630,16087,28221,127787,25839,77481,44693,13464,113146,6983,27069,55717,50102,4760,7107,26186,66507,59145,36032,104182,71328,29425,64317,50781,47465,94298,69706,74899,22754,120756,25108,93077,56834,73286,39928,16218,41699,176763,7555,70819,50083,26895,23315,26014,16773,123079,41712,5719,31516,90427,158540,85051,183128,40864,27505,55392,9058,45224,96857,30901,136622,96557,56304,120061,11501,151448,5773,89743,7769,86069,2935,18471,41628,10114,33660,110170,49479,26745,92846,33221,26731,18795,87076,8550,2100,29972,120289,3077,72490,33784,2630,208722,50861,63483,79029,6419,39467,14302,45286,64207,9686,67513,44170,1050,77246,59266,17055,53801,7150,11111,42432,4278,94579,362117,36175,42902,41933,39002,98489,22913,74161,84773,57036,17556,162288,74485,178760,93867,73635,128860,50362,261,67455,80001,46080,35662,4368,25247,19230,74393,22588,1822,27682,235324,13798,85998,13194,235067,23514,71669,147632,23191,134748,214683,105101,1518,25489,247114,7380,54842,26922,3971,26361,20844,68642,170517,77339,123255,8963,77818,150998,48466,36806,2732,23261,11741,236162,18243,126216,28690,50546,16385,92760,197383,246558,201295,88255,67588,71687,176076,172653,169058,33906,63747,24835,157621,43338,30050,46152,132741,2770,51371,94835,6614,15112,11749,56936,1250,19027,399017,58036,100215,23388,55815,308768,124152,94803,9521,64186,8971,28,30427,62163,7616,103838,35079,29203,131235,7743,17389,10882,37420,61460,228512,85363,41581,131077,62822,119647,10130,54445,26925,19968,29016,24446,74028,24176,61448,67185,9254,8563,119129,9771,99184,37716,39514,10532,221512,258753,218630,55980,23394,32141,61924,66749,32411,3741,36475,26678,77010,44946,91203,128749,116953,20476,49625,53116,13735,102335,29376,51946,83407,67892,59212,34685,21083,1546,112982,32972,74397,1078,190545,16082,86140,58591,89611,101531,10061,105104,76319,20035,17551,52611,169061,190842,100780,23907,90413,115619,9675,34710,193435,49443,129734,11183,258877,16318,136182,126808,44635,27304,192375,2599,125648,47051,12091,23814,721,58800,40137,66726,97930,60877,74487,7942,54326,9841,41428,13762,8211,85383,6950,99177,79806,201786,296464,124087,13144,29741,41721,47634,55088,254286,106408,17041,99064,12942,64086,45233,14005,2612,55827,255,7984,13980,38574,12776,46654,73499,249951,2101,26676,25996,132326,116415,119062,50449,31033,23038,11589,179252,20007,14860,129270,21143,17796,144715,60106,70758,69842,34674,282133,44014,16774,57268,38528,24053,46373,201667,28327,471023,51889,102667,21193,114909,84132,69317,96723,67969,16134,68145,15058,28765,32035,2524,101089,98664,25045,76571,14957,86040,118506,262428,154764,81573,39681,283900,73287,127825,544,80448,52347,38512,175971,15180,45467,33086,46552,48894,81107,43213,36672,54025,76703,8053,7608,13299,56619,20752,238099,54164,105133,1444,32942,953,37564,8e3,66316,119463,106817,404,13667,149108,128597,31267,10269,49836,106150,1484,52330,76965,160486,171648,38456,31263,22424,37738,66245,67467,143369,60471,75610,20895,115528,86070,60854,40796,49347,18989,15030,11371,37578,15779,79867,10187,86462,46402,155626,93200,40229,7090,57547,108053,99598,11088,47505,41218,206017,2173,20988,30219,22919,80563,57566,42369,93141,41675,2407,182519,120495,27154,16702,29456,14349,7958,16688,117177,140375,42467,261919,74916,153569,10836,34742,49526,7621,105997,12212,2270,392377,7755,17959,25086,232152,138791,33847,13860,35316,5811,1344,71259,50452,207539,92635,50359,5821,33674,30255,2086,2587,96264,17543,42,6029,9580,43007,139248,82831,12917,29607,25786,51467,42137,85161,100698,31561,88989,121990,278500,3602,109344,37982,15279,116442,28936,30880,87894,58079,128661,126731,67392,28051,146885,4861,16216,97344,42827,147561,153948,22684,21335,47685,1853,43349,15185,59642,10229,25520,187921,108972,5579,98037,24945,6697,19193,63734,137934,75056,89740,19767,224268,56138,63643,151661,39313,70618,84031,89723,84074,13703,85626,35460,8867,64845,3439,57906,99776,63968,49270,81130,34356,16210,23547,36446,34090,140028,72439,2221,22163,57058,363492,113754,18913,95451,48663,54464,54037,176097,68425,3023,34906,29482,117389,341780,80431,58330,16753,92616,60907,94846,147486,4498,48646,7773,46801,7778,18946,464978,47558,33223,177444,7328,15626,63337,94700,11743,9351,255024,39098,16447,42647,96230,39769,58840,10068,63439,35800,65843,58823,413844,9156,51258,7434,61791,85018,6872,3692,28096,7121,33024,6009,75532,31997,192535,9661,3304,9547,14753,31987,25314,55689,15896,20430,39472,31340,99744,25398,115569,54883,28719,205423,23071,57855,64638,149867,25671,82403,37616,20668,39989,77996,74948,140555,175248,64810,36515,46595,4958,248773,24045,28728,136673,168704,20804,114833,100325,27135,21205,96151,153134,45992,7093,13992,76047,1980,19432,145001,75159,87462,17710,1013,45556,34297,144882,20648,26061,11319,129567,108555,18872,464580,33386,22717,65948,167189,5603,135042,79542,8801,202632,18114,91882,5973,5239,67315,4431,60916,47819,71693,32597,32606,18183,45072,80329,76385,24749,51305,40314,156514,14693,130345,13168,66214,18029,12858,34801,27628,14544,10823,40522,40185,33739,148694,23548,9923,61012,28859,17933,19442,34364,99849,164107,141167,30629,21054,6744,36491,8096,42474,41706,155060,30650,10600,163442,1143,96655,61390,52359,7559,51568,64256,203854,4467,22453,14504,436398,7878,6980,8293,63610,293747,16167,35763,19627,147603,15419,18032,110744,51346,33681,54571,40472,48615,39073,21604,13754,173027,92560,11083,47299,63062,11813,52007,29883,9734,139722,15953,1550,20651,13616,49306,16113,90089,92326,7584,30712,72424,164858,6831,152871,55746,197721,34167,196442,6022,112107,55215,7538,123381,4920,43539,77165,8939,50392,34192,20225,79762,22505,58667,40770,29788,97180,82835,4568,8579,13273,363569,35898,49983,436,36598,3237,131691,62418,35591,8101,4073,379438,65218,76072,33887,2968,27573,212619,288680,68278,72851,150504,217896,6913,121339,22017,35340,51072,43616,75043,31437,10833,81487,4364,22968,41454,106687,85446,19863,109625,149241,524,141850,214404,54376,657,237023,9401,108137,53800,32474,49712,53334,126876,27337,45552,177696,8269,15036,12097,42240,2328,125374,119295,99715,2500,19624,39441,27220,102691,60957,94543,39101,18566,67362,13975,78230,25017,34017,239007,90027,39351,41681,35354,43822,1043,916,58587,141983,94818,38799,75459,41114,67432,16195,36606,59568,22272,126769,31424,68659,12287,134302,257977,5756,207285,95637,47248,117689,19583,77451,22373,12200,54993,117118,34244,29386,34562,53819,71267,64172,77665,49368,7716,59301,25749,45426,194789,17297,2650,1766,32501,45198,20403,20984,6600,14171,94604,19037,5402,29896,9938,59935,109708,88081,145182,44844,39167,352626,164173,35374,45982,6122,154,73419,220487,53834,53601,17992,8609,229321,5610,68098,66815,71012,95069,140968,27396,8957,134489,24656,86659,56598,134852,17316,123838,255436,6613,41610,138033,81452,32023,32396,123687,63398,8693,29712,30407,19296,121188,3551,36099,20032,111948,56624,16547,27453,35916,15378,52039,56849,13489,22214,73177,53097,277349,2157,14029,187886,10260,141743,246460,91880,50869,3788,49486,133566,54950,33120,129337,53768,18333,9525,26902,312251,10297,9020,70759,16647,112432,59260,84609,9818,82766,73569,468,46001,75780,55028,52106,11498,43645,108069,17150,17753,29417,16705,31799,9606,289,122254,115975,8620,6133,255357,56908,14456,133464,43554,79224,11247,29630,160,12756,25464,65960,350428,62521,321796,100359,67358,35169,46172,113128,48988,88868,31094,33266,6847,60887,98188,49659,69117,92977,220228,13947,80181,35103,62170,97351,13475,2440,199768,19498,36597,46971,25234,67806,62881,84717,73648,181966,10488,94149,21550,26655,63436,48375,14405,165650,9621,24439,28043,42735,4490,29963,56674,45373,1934,262446,50855,67098,26898,5261,52696,40644,33900,9440,180286,87162,22940,19704,26936,69769,10254,101759,27406,12243,48e3,73926,113215,54935,5726,192787,4312,106216,9366,11550,52949,23457,212271,277152,133895,108374,6191,96477,29980,218916,58024,54696,40853,91124,65894,91170,65908,252552,6793,29212,15389,44516,122515,52617,35058,9017,103536,39510,49136,19242,130652,662077,74699,47024,31422,8517,73351,24399,13867,128360,4810,4434,61779,111983,61036,17798,110240,59722,102960,39688,10001,23803,23039,176498,56659,44814,134295,17188,77577,74466,226175,102472,154333,63900,111747,18062,41171,79669,32773,408933,42562,28931,30907,107388,43487,2946,240310,23938,24354,319,184983,7927,6488,1422,10790,68809,68209,64775,4361,202,17123,59634,51200,44391,18188,17843,2619,74278,3230,9540,47187,21702,36274,56894,43907,16310,34790,16866,6150,5561,13587,107545,108873,126867,86986,28640,33427,19017,5762,80637,17430,46903,2047,131055,25958,13558,5444,47152,13900,44563,122857,45348,70863,39593,54332,38068,33637,318,40310,143467,18502,24520,11377,62013,28942,27246,28269,83545,17999,59015,90707,30065,15161,34720,1263,37008,2012,6060,98575,92933,5721,299,199555,24578,29223,2985,743,115825,109523,136657,47454,26378,53586,3733,174945,93340,244456,5693,37386,28782,89767,27545,23573,18798,136425,34320,84778,20041,48453,38215,7477,71958,40621,8773,5874,187927,105965,51100,43533,18083,8443,10180,43597,2003,183999,69689,12216,129696,146188,62389,34044,68410,12765,43273,26949,266807,3345,34477,79197,5688,47539,213110,21634,22257,50092,32222,42346,39530,63668,98,134978,74022,5152,59088,174145,37220,9934,9545,118937,5724,87240,19875,15784,40143,23263,87513,181654,285152,37881,263241,4966,43934,10433,186657,6470,74416,225854,25908,142677,246262,32280,6192,75890,45546,143264,135305,29742,47013,77787,11732,126658,8763,37950,21806,57557,113464,89465,108995,164574,23894,22996,23169,15369,23117,17642,130607,40503,36239,280990,44666,9981,40427,147487,26869,168452,32886,32991,46798,240839,15111,70502,65697,88548,44145,28701,48767,31139,206777,35659,181164,166262,14554,171445,31786,66523,76607,17956,6507,31279,90476,116611,167918,6560,1243,115324,80128,41867,55897,187323,37069,32596,189444,145931,13390,105530,65709,26805,6999,55714,41300,22915,68951,22138,21120,22264,10058,19945,33635,56123,99085,10032,5818,6016,46649,57476,35264,94413,112522,262288,93686,83038,14341,23204,28807,66084,77987,6101,126673,7133,38126,5923,122091,170240,97772,46874,215746,43948,41622,3272,55596,8332,146411,251315,13533,8561,81521,115449,48616,175175,2063,186556,3036,134537,75772,29728,82360,22973,186559,86348,89100,38388,82297,45610,2613,87082,9986,177812,57884,23591,47485,42543,33582,44713,74439,257444,252451,31825,35631,38540,33066,5147,13973,4343,51830,70378,22827,26448,95560,36896,241741,48067,203953,298860,61620,20450,3220,67272,6586,107662,100160,108684,6929,57226,4762,7457,1320,40404,77204,99309,62750,208653,59977,44e3,74315,34332,5819,172217,64904,114077,18147,84012,1791,98456,90930,21446,116669,103938,7422,85140,59713,5768,326211,16239,75411,13229,29398,10758,236107,1539,112472,95979,152154,151294,306,21196,38146,10700,6891,84282,109646,56492,40539,6589,119491,51354,30685,140209,136906,29622,73617,49553,70525,51671,166869,139616,74395,37439,49595,45678,11959,33211,86560,52434,9282,62690,112155,130810,5243,108261,99970,265613,72551,80049,6391,33365,90721,66737,69872,87011,1860,9032,112544,60905,37371,89015,140351,19076,850,373531,2802,36725,218795,72062,28990,16550,24614,7815,6187,26336,33373,32162,42791,73555,32062,23386,10244,56392,49442,27076,136262,12412,14883,1134,33675,97153,199281,15608,100152,74072,47942,254301,36451,16026,10687,65067,56708,254030,30290,50490,13864,57941,259331,35588,23485,43486,24869,21620,92971,22072,88645,1048,182050,13343,32452,14825,19509,3325,216938,45740,99716,189082,53740,78245,25609,24311,176777,47340,308354,40669,66085,14102,125339,9225,128709,97207,1271,200933,78439,113451,88975,18324,46521,11819,18570,141756,72512,170020,52754,63550,118515,103073,93330,32736,50499,14722,31600,68452,398867,29316,172786,18417,104924,2606,5670,84818,16288,67106,59580,82929,607401,291,85829,359,15897,35830,50696,65630,52672,22115,356968,29895,40837,231192,34024,38957,26722,406,23335,124952,72068,68804,13268,147101,164740,276569,162596,66943,11569,26654,66358,4777,23229,102127,5848,978,2921,59666,5371,28212,90108,42938,39320,2499,4271,108792,33510,125072,71653,65239,38250,66357,38577,13964,86251,35708,50755,36010,29448,12209,3844,38222,206337,100876,67827,137088,14167,252225,84163,195270,1306,5703,54198,779,46802,22028,51124,86759,70560,113164,35685,162145,45471,34561,422,2611,6464,47486,19223,38246,9191,18331,89942,243642,212364,15893,17518,22617,6409,30046,126182,59716,36560,104428,18846,26592,19458,50793,147333,30826,1388,27647,10922,14495,33545,19269,135828,39727,41601,46931,233379,49169,131130,182112,16276,82381,118209,142445,128310,19672,28740,82907,33436,3118,102206,28723,24819,41937,38854,5157,3881,111491,1142,9776,421673,152241,29309,14961,87854,6054,15424,3796,82656,54996,2108,55367,239450,154525,9643,118103,106041,64601,68549,48707,30266,25772,18740,9462,229669,91798,112152,191327,14493,72828,8175,66636,236474,25817,87351,129027,76653,20422,22983,71240,27846,44661,12399,46158,77704,53101,35032,11072,17300,109294,33638,24408,1895,11241,760,17584,82479,125877,63150,141075,34259,23274,81698,15732,43577,48340,91584,14688,16379,24481,150280,96420,262050,48635,43727,61819,56268,72003,88178,17281,79912,13218,122519,125295,166396,11811,2171,118930,67746,17636,178278,174656,95661,173039,83845,79689,17473,98555,127696,203415,54730,22925,232239,9309,12136,175026,20740,180188,10747,39816,314017,266131,10040,175732,112550,220651,31974,37393,888,23008,86799,4303,64905,148467,75337,251,3284,370102,50264,9835,5438,23655,4481,29851,329,12855,7162,64931,78141,12804,42372,296771,83547,18624,34874,86271,3360,48665,77735,88767,11463,63527,28889,22258,29140,194315,113924,25499,6406,31334,1845,4802,49184,43455,35469,127594,92970,61038,115005,38840,87761,106838,8811,20572,55637,11162,96721,132425,108925,2948,125457,36356,3502,75270,27622,127192,2561,123095,49394,61155,16897,110064,9699,89448,53356,19628,220310,21622,83036,9885,112214,6087,26713,17901,161912,91492,3440,68594,9266,92238,8087,6866,150194,72175,80701,13459,31836,43243,239700,95846,44749,50647,21945,230538,120612,132371,244604,5193,105637,34661,41341,68775,85393,1874,8771,33718,49672,77403,595452,99507,6490,58895,128742,7704,39239,73217,43816,62824,37804,199976,22361,80005,87514,94832,14089,4574,139975,59142,75523,100268,43906,53442,15152,2547,186002,17011,19513,204282,3343,60568,128318,119250,4298,51871,41336,71759,21921,45074,98169,145889,99427,11350,1237,5520,28799,7803,53702,21026,136352,38293,128690,12158,90132,44600,10184,26957,39459,126025,78904,82999,59373,39301,150198,120529,153042,20177,50089,14764,271571,30530,123161,38975,101562,22941,5648,124654,109243,69817,71675,49162,106884,21241,107795,30258,16572,188262,141456,7688,60718,8271,11044,32440,104608,103419,236109,93156,43293,128929,42107,67180,25201,115254,185488,130954,72813,167547,20537,39969,38432,22582,184022,1139,27199,5655,17767,97412,122606,209377,27070,35871,326617,188954,42680,73512,80911,22629,3011,95021,315242,157737,383,41821,41808,19335,27950,15674,25677,110950,35375,76835,59108,57370,35262,16569,160415,37706,78086,32041,49691,137143,9782,172080,50148,77917,6323,10110,69172,17711,21795,59511,76184,135114,31046,132319,59105,157578,20549,80778,57649,158421,65143,4575,72235,21899,10797,92745,34035,106079,80159,4508,78304,25350,75457,46458,32937,25623,47,8531,104751,84953,8138,36508,187199,66310,115274,13253,32461,38536,1916,42007,187160,35055,26325,84394,35963,94216,45590,97782];var hi=15,di=class{log;peerRouting;routingTable;refreshInterval;refreshQueryTimeout;commonPrefixLengthRefreshedAt;refreshTimeoutId;constructor(t){let{peerRouting:r,routingTable:n,refreshInterval:i,refreshQueryTimeout:o,lan:a}=t;this.log=X(`libp2p:kad-dht:${a?"lan":"wan"}:routing-table:refresh`),this.peerRouting=r,this.routingTable=n,this.refreshInterval=i??3e5,this.refreshQueryTimeout=o??3e4,this.commonPrefixLengthRefreshedAt=[],this.refreshTable=this.refreshTable.bind(this)}async start(){this.log(`refreshing routing table every ${this.refreshInterval}ms`),this.refreshTable(!0)}async stop(){this.refreshTimeoutId!=null&&clearTimeout(this.refreshTimeoutId)}refreshTable(t=!1){this.log("refreshing routing table");let r=this._maxCommonPrefix(),n=this._getTrackedCommonPrefixLengthsForRefresh(r);this.log(`max common prefix length ${r}`),this.log(`tracked CPLs [ ${n.map(i=>i.toISOString()).join(", ")} ]`),Promise.all(n.map(async(i,o)=>{try{if(await this._refreshCommonPrefixLength(o,i,t),this._numPeersForCpl(r)===0){let a=Math.min(2*(o+1),n.length-1);for(let s=o+1;s<a+1;s++)try{await this._refreshCommonPrefixLength(s,i,t)}catch(c){this.log.error(c)}}}catch(a){this.log.error(a)}})).catch(i=>{this.log.error(i)}).then(()=>{this.refreshTimeoutId=setTimeout(this.refreshTable,this.refreshInterval),this.refreshTimeoutId.unref!=null&&this.refreshTimeoutId.unref()}).catch(i=>{this.log.error(i)})}async _refreshCommonPrefixLength(t,r,n){if(!n&&r.getTime()>Date.now()-this.refreshInterval){this.log("not running refresh for cpl %s as time since last refresh not above interval",t);return}let i=await this._generateRandomPeerId(t);this.log("starting refreshing cpl %s with key %p (routing table size was %s)",t,i,this.routingTable.size);let o=await ai(this.peerRouting.getClosestPeers(i.toBytes(),{signal:AbortSignal.timeout(this.refreshQueryTimeout)}));this.log(`found ${o} peers that were close to imaginary peer %p`,i),this.log("finished refreshing cpl %s with key %p (routing table size is now %s)",t,i,this.routingTable.size)}_getTrackedCommonPrefixLengthsForRefresh(t){t>hi&&(t=hi);let r=[];for(let n=0;n<=t;n++)r[n]=this.commonPrefixLengthRefreshedAt[n]??new Date;return r}async _generateRandomPeerId(t){if(this.routingTable.kb==null)throw new Error("Routing table not started");let r=en(2),n=(r[1]<<8)+r[0],i=await this._makePeerId(this.routingTable.kb.localNodeId,n,t);return Kr(i)}async _makePeerId(t,r,n){if(n>hi)throw new Error(`Cannot generate peer ID for common prefix length greater than ${hi}`);let a=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(0,!1)^32768>>n,s=65535<<16-(n+1),c=a&s|r&~s,u=Q5[c],f=new ArrayBuffer(34),l=new DataView(f,0,f.byteLength);return l.setUint8(0,It.code),l.setUint8(1,32),l.setUint32(2,u,!1),new Uint8Array(l.buffer,l.byteOffset,l.byteLength)}_maxCommonPrefix(){let t=0;for(let r of this._prefixLengths())r>t&&(t=r);return t}_numPeersForCpl(t){let r=0;for(let n of this._prefixLengths())n===t&&r++;return r}*_prefixLengths(){if(this.routingTable.kb!=null)for(let{id:t}of this.routingTable.kb.toIterable()){let r=fr(this.routingTable.kb.localNodeId,t),n=0;for(let i of r)if(i===0)n++;else break;yield n}}};var D0=X("libp2p:kad-dht:rpc:handlers:add-provider"),pi=class{providers;constructor(t){let{providers:r}=t;this.providers=r}async handle(t,r){if(D0("start"),r.key==null||r.key.length===0)throw new R("Missing key","ERR_MISSING_KEY");let n;try{n=re.decode(r.key)}catch{throw new R("Invalid CID","ERR_INVALID_CID")}(r.providerPeers==null||r.providerPeers.length===0)&&D0.error("no providers found in message"),await Promise.all(r.providerPeers.map(async i=>{if(!i.id.equals(t)){D0("invalid provider peer %p from %p",i.id,t);return}if(i.multiaddrs.length<1){D0("no valid addresses for provider %p. Ignore",t);return}D0("received provider %p for %s (addrs %s)",t,n,i.multiaddrs.map(o=>o.toString())),await this.providers.addProvider(n,i.id)}))}};var Y5=X("libp2p:kad-dht:rpc:handlers:find-node"),yi=class{peerRouting;lan;components;constructor(t,r){let{peerRouting:n,lan:i}=r;this.components=t,this.peerRouting=n,this.lan=!!i}async handle(t,r){Y5("incoming request from %p for peers closer to %b",t,r.key);let n=[];dt(this.components.peerId.toBytes(),r.key)?n=[{id:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(o=>o.decapsulateCode(lt("p2p").code)),protocols:[]}]:n=await this.peerRouting.getCloserPeersOffline(r.key,t),n=n.map(this.lan?Cn:An).filter(({multiaddrs:o})=>o.length);let i=new _t(r.type,new Uint8Array(0),r.clusterLevel);return n.length>0?i.closerPeers=n:Y5("could not find any peers closer to %b than %p",r.key,t),i}};var W5=X("libp2p:kad-dht:rpc:handlers:get-providers"),gi=class{components;peerRouting;providers;lan;constructor(t,r){let{peerRouting:n,providers:i,lan:o}=r;this.components=t,this.peerRouting=n,this.providers=i,this.lan=!!o}async handle(t,r){let n;try{n=re.decode(r.key)}catch{throw new R("Invalid CID","ERR_INVALID_CID")}W5("%p asking for providers for %s",t,n);let[i,o]=await Promise.all([this.providers.getProviders(n),this.peerRouting.getCloserPeersOffline(r.key,t)]),a=await this._getPeers(i),s=await this._getPeers(o.map(({id:u})=>u)),c=new _t(r.type,r.key,r.clusterLevel);return a.length>0&&(c.providerPeers=a),s.length>0&&(c.closerPeers=s),W5("got %s providers %s closerPeers",a.length,s.length),c}async _getAddresses(t){return[]}async _getPeers(t){let r=[],n=this.lan?Cn:An;for(let i of t)try{let o=await this.components.peerStore.get(i),a=n({id:i,multiaddrs:o.addresses.map(({multiaddr:s})=>s),protocols:o.protocols});a.multiaddrs.length>0&&r.push(a)}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}return r}};var Gn=X("libp2p:kad-dht:rpc:handlers:get-value"),mi=class{components;peerRouting;constructor(t,r){let{peerRouting:n}=r;this.components=t,this.peerRouting=n}async handle(t,r){let n=r.key;if(Gn("%p asked for key %b",t,n),n==null||n.length===0)throw new R("Invalid key","ERR_INVALID_KEY");let i=new _t(Nt.GET_VALUE,n,r.clusterLevel);if(Ma(n)){Gn("is public key");let s=Va(n),c;try{let u=await this.components.peerStore.get(s);if(u.id.publicKey==null)throw new R("No public key found in key book","ERR_NOT_FOUND");c=u.id.publicKey}catch(u){if(u.code!=="ERR_NOT_FOUND")throw u}if(c!=null)return Gn("returning found public key"),i.record=new Vt(n,c,new Date),i}let[o,a]=await Promise.all([this._checkLocalDatastore(n),this.peerRouting.getCloserPeersOffline(r.key,t)]);return o!=null&&(Gn("had record for %b in local datastore",n),i.record=o),a.length>0&&(Gn("had %s closer peers in routing table",a.length),i.closerPeers=a),i}async _checkLocalDatastore(t){Gn("checkLocalDatastore looking for %b",t);let r=Je(t),n;try{n=await this.components.datastore.get(r)}catch(o){if(o.code==="ERR_NOT_FOUND")return;throw o}let i=Vt.deserialize(n);if(i==null)throw new R("Invalid record","ERR_INVALID_RECORD");if(i.timeReceived==null||Date.now()-i.timeReceived.getTime()>1296e5){await this.components.datastore.delete(r);return}return i}};var U9=X("libp2p:kad-dht:rpc:handlers:ping"),xi=class{async handle(t,r){return U9("ping from %p",t),r}};var vi=class{log;components;validators;constructor(t,r){let{validators:n}=r;this.components=t,this.log=X("libp2p:kad-dht:rpc:handlers:put-value"),this.validators=n}async handle(t,r){let n=r.key;this.log("%p asked us to store value for key %b",t,n);let i=r.record;if(i==null){let o=`Empty record from: ${t.toString()}`;throw this.log.error(o),new R(o,"ERR_EMPTY_RECORD")}try{await Sn(this.validators,i),i.timeReceived=new Date;let o=Je(i.key);await this.components.datastore.put(o,i.serialize().subarray()),this.log("put record for %b into datastore under key %k",n,o)}catch(o){this.log("did not put record for key %b into datastore %o",n,o)}return r}};var bi=class{handlers;routingTable;log;constructor(t,r){let{providers:n,peerRouting:i,validators:o,lan:a}=r;this.log=X("libp2p:kad-dht:rpc"),this.routingTable=r.routingTable,this.handlers={[Nt.GET_VALUE]:new mi(t,{peerRouting:i}),[Nt.PUT_VALUE]:new vi(t,{validators:o}),[Nt.FIND_NODE]:new yi(t,{peerRouting:i,lan:a}),[Nt.ADD_PROVIDER]:new pi({providers:n}),[Nt.GET_PROVIDERS]:new gi(t,{peerRouting:i,providers:n,lan:a}),[Nt.PING]:new xi}}async handleMessage(t,r){try{await this.routingTable.add(t)}catch(i){this.log.error("Failed to update the kbucket store",i)}let n=this.handlers[r.type];if(n==null){this.log.error(`no handler found for message type: ${r.type}`);return}return n.handle(t,r)}onIncomingStream(t){Promise.resolve().then(async()=>{let{stream:r,connection:n}=t,i=n.remotePeer;try{await this.routingTable.add(i)}catch(a){this.log.error(a)}let o=this;await Ee(r,a=>Hr(a),async function*(a){for await(let s of a){let c=_t.deserialize(s);o.log("incoming %s from %p",c.type,i);let u=await o.handleMessage(i,c);u!=null&&(yield u.serialize())}},a=>qr(a),r)}).catch(r=>{this.log.error(r)})}};var wi=class extends Xt{log;components;protocol;running;registrarId;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=X(`libp2p:kad-dht:topology-listener:${i?"lan":"wan"}`),this.running=!1,this.protocol=n}isStarted(){return this.running}async start(){this.running||(this.running=!0,this.registrarId=await this.components.registrar.register(this.protocol,{onConnect:t=>{this.log("observed peer %p with protocol %s",t,this.protocol),this.dispatchEvent(new Pt("peer",{detail:t}))}}))}async stop(){this.running=!1,this.registrarId!=null&&(this.components.registrar.unregister(this.registrarId),this.registrarId=void 0)}};var F9=32,K9=64,O0=class extends Xt{protocol;routingTable;providers;network;peerRouting;components;log;running;kBucketSize;clientMode;lan;validators;selectors;queryManager;contentFetching;contentRouting;routingTableRefresh;rpc;topologyListener;querySelf;maxInboundStreams;maxOutboundStreams;constructor(t,r){super();let{kBucketSize:n,clientMode:i,validators:o,selectors:a,querySelfInterval:s,lan:c,protocolPrefix:u,pingTimeout:f,pingConcurrency:l,maxInboundStreams:p,maxOutboundStreams:d,providers:h}=r;this.running=!1,this.components=t,this.lan=!!c,this.log=X(`libp2p:kad-dht:${c===!0?"lan":"wan"}`),this.protocol=`${u??U2}${c===!0?O2:""}${F2}`,this.kBucketSize=n??20,this.clientMode=i??!0,this.maxInboundStreams=p??F9,this.maxOutboundStreams=d??K9,this.routingTable=new li(t,{kBucketSize:n,lan:this.lan,pingTimeout:f,pingConcurrency:l,protocol:this.protocol}),this.providers=new ii(t,h??{}),this.validators={...Oa,...o},this.selectors={...Da,...a},this.network=new s1(t,{protocol:this.protocol,lan:this.lan});let y=Jt();r.allowQueryWithZeroPeers===!0&&y.resolve(),this.queryManager=new si(t,{disjointPaths:Math.ceil(this.kBucketSize/2),lan:c,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.peerRouting=new Y1(t,{routingTable:this.routingTable,network:this.network,validators:this.validators,queryManager:this.queryManager,lan:this.lan}),this.contentFetching=new e1(t,{validators:this.validators,selectors:this.selectors,peerRouting:this.peerRouting,queryManager:this.queryManager,network:this.network,lan:this.lan}),this.contentRouting=new r1(t,{network:this.network,peerRouting:this.peerRouting,queryManager:this.queryManager,routingTable:this.routingTable,providers:this.providers,lan:this.lan}),this.routingTableRefresh=new di({peerRouting:this.peerRouting,routingTable:this.routingTable,lan:this.lan}),this.rpc=new bi(t,{routingTable:this.routingTable,providers:this.providers,peerRouting:this.peerRouting,validators:this.validators,lan:this.lan}),this.topologyListener=new wi(t,{protocol:this.protocol,lan:this.lan}),this.querySelf=new ui(t,{peerRouting:this.peerRouting,interval:s,initialInterval:r.initialQuerySelfInterval,lan:this.lan,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.network.addEventListener("peer",g=>{let m=g.detail;this.onPeerConnect(m).catch(x=>{this.log.error("could not add %p to routing table",m.id,x)}),this.dispatchEvent(new Pt("peer",{detail:m}))}),this.topologyListener.addEventListener("peer",g=>{let m=g.detail;Promise.resolve().then(async()=>{let x=await this.components.peerStore.get(m),v={id:m,multiaddrs:x.addresses.map(({multiaddr:C})=>C),protocols:x.protocols};await this.onPeerConnect(v)}).catch(x=>{this.log.error("could not add %p to routing table",m,x)})})}async onPeerConnect(t){if(this.log("peer %p connected with protocols",t.id,t.protocols),this.lan?t=Cn(t):t=An(t),t.multiaddrs.length===0){this.log("ignoring %p as they do not have any %s addresses in %s",t.id,this.lan?"private":"public",t.multiaddrs.map(r=>r.toString()));return}try{await this.routingTable.add(t.id)}catch(r){this.log.error("could not add %p to routing table",t.id,r)}}isStarted(){return this.running}async getMode(){return this.clientMode?"client":"server"}async setMode(t){await this.components.registrar.unhandle(this.protocol),t==="client"?(this.log("enabling client mode"),this.clientMode=!0):(this.log("enabling server mode"),this.clientMode=!1,await this.components.registrar.handle(this.protocol,this.rpc.onIncomingStream.bind(this.rpc),{maxInboundStreams:this.maxInboundStreams,maxOutboundStreams:this.maxOutboundStreams}))}async start(){this.running=!0,await this.setMode(this.clientMode?"client":"server"),await Promise.all([this.providers.start(),this.queryManager.start(),this.network.start(),this.routingTable.start(),this.topologyListener.start()]),this.querySelf.start(),await this.routingTableRefresh.start()}async stop(){this.running=!1,this.querySelf.stop(),await Promise.all([this.providers.stop(),this.queryManager.stop(),this.network.stop(),this.routingTable.stop(),this.routingTableRefresh.stop(),this.topologyListener.stop()])}async*put(t,r,n={}){yield*this.contentFetching.put(t,r,n)}async*get(t,r={}){yield*this.contentFetching.get(t,r)}async*provide(t,r={}){yield*this.contentRouting.provide(t,this.components.addressManager.getAddresses(),r)}async*findProviders(t,r={}){yield*this.contentRouting.findProviders(t,r)}async*findPeer(t,r={}){yield*this.peerRouting.findPeer(t,r)}async*getClosestPeers(t,r={}){yield*this.peerRouting.getClosestPeers(t,r)}async refreshRoutingTable(){this.routingTableRefresh.refreshTable(!0)}};var Zs=X("libp2p:kad-dht"),Xs=class{dht;constructor(t){this.dht=t}async provide(t,r={}){await Yn(this.dht.provide(t,r))}async*findProviders(t,r={}){for await(let n of this.dht.findProviders(t,r))n.name==="PROVIDER"&&(yield*n.providers)}async put(t,r,n){await Yn(this.dht.put(t,r,n))}async get(t,r){for await(let n of this.dht.get(t,r))if(n.name==="VALUE")return n.value;throw new R("Not found","ERR_NOT_FOUND")}},Js=class{dht;constructor(t){this.dht=t}async findPeer(t,r={}){for await(let n of this.dht.findPeer(t,r))if(n.name==="FINAL_PEER")return n.peer;throw new R("Not found","ERR_NOT_FOUND")}async*getClosestPeers(t,r={}){for await(let n of this.dht.getClosestPeers(t,r))n.name==="FINAL_PEER"&&(yield n.peer)}},M9=290,V9=54,q9=55,z9=56,H9=4,$9=41;function G9(e){let t=e.stringTuples();for(let r of t)if(r[0]===M9)return!1;if(t[0][0]===V9||t[0][0]===q9||t[0][0]===z9)return!0;if(t[0][0]===H9||t[0][0]===$9){let r=Zn(`${t[0][1]}`);return r==null||!r}return!1}var Ei=class extends Xt{wan;lan;components;contentRouting;peerRouting;constructor(t,r={}){super(),this.components=t,this.wan=new O0(t,{protocolPrefix:"/ipfs",...r,lan:!1}),this.lan=new O0(t,{protocolPrefix:"/ipfs",...r,clientMode:!1,lan:!0}),this.contentRouting=new Xs(this),this.peerRouting=new Js(this),this.wan.addEventListener("peer",n=>{this.dispatchEvent(new Pt("peer",{detail:n.detail}))}),this.lan.addEventListener("peer",n=>{this.dispatchEvent(new Pt("peer",{detail:n.detail}))}),r.clientMode==null&&t.events.addEventListener("self:peer:update",n=>{Zs("received update of self-peer info");let i=n.detail.peer.addresses.some(({multiaddr:o})=>G9(o));this.getMode().then(async o=>{i&&o==="client"?await this.setMode("server"):o==="server"&&!i&&await this.setMode("client")}).catch(o=>{Zs.error("error setting dht server mode",o)})})}[Symbol.toStringTag]="@libp2p/dual-kad-dht";get[f2](){return this.contentRouting}get[h2](){return this.peerRouting}get[l2](){return this}isStarted(){return this.wan.isStarted()&&this.lan.isStarted()}async getMode(){return this.wan.getMode()}async setMode(t){await this.wan.setMode(t)}async start(){await Promise.all([this.lan.start(),this.wan.start()])}async stop(){await Promise.all([this.lan.stop(),this.wan.stop()])}async*put(t,r,n={}){for await(let i of be(this.lan.put(t,r,n),this.wan.put(t,r,n)))yield i}async*get(t,r={}){let n=!1,i=!1;for await(let o of be(this.lan.get(t,r),this.wan.get(t,r)))yield o,o.name==="DIAL_PEER"&&(n=!0),o.name==="VALUE"&&(n=!0,o.value!=null&&(i=!0)),o.name==="SEND_QUERY"&&(n=!0);if(!n)throw new R("No peers found in routing table!","ERR_NO_PEERS_IN_ROUTING_TABLE");i||(yield ne({from:this.components.peerId,error:new R("Not found","ERR_NOT_FOUND")},r))}async*provide(t,r={}){let n=0,i=0,o=[],a=[this.lan];await this.wan.getMode()==="server"&&a.push(this.wan);for await(let s of be(...a.map(c=>c.provide(t,r))))yield s,s.name==="SEND_QUERY"&&n++,s.name==="QUERY_ERROR"&&o.push(s.error),s.name==="PEER_RESPONSE"&&s.messageName==="ADD_PROVIDER"&&(Zs("sent provider record for %s to %p",t,s.from),i++);if(i===0)throw o.length>0?new R(`Failed to provide to ${o.length} of ${n} peers`,"ERR_PROVIDES_FAILED",{errors:o}):new R("Failed to provide - no peers found","ERR_PROVIDES_FAILED")}async*findProviders(t,r={}){yield*be(this.lan.findProviders(t,r),this.wan.findProviders(t,r))}async*findPeer(t,r={}){let n=!1;for await(let i of be(this.lan.findPeer(t,r),this.wan.findPeer(t,r)))yield i,(i.name==="SEND_QUERY"||i.name==="FINAL_PEER")&&(n=!0);if(!n)throw new R("Peer lookup failed","ERR_LOOKUP_FAILED")}async*getClosestPeers(t,r={}){yield*be(this.lan.getClosestPeers(t,r),this.wan.getClosestPeers(t,r))}async refreshRoutingTable(){await Promise.all([this.lan.refreshRoutingTable(),this.wan.refreshRoutingTable()])}};var js;(function(e){e[e.SEND_QUERY=0]="SEND_QUERY",e[e.PEER_RESPONSE=1]="PEER_RESPONSE",e[e.FINAL_PEER=2]="FINAL_PEER",e[e.QUERY_ERROR=3]="QUERY_ERROR",e[e.PROVIDER=4]="PROVIDER",e[e.VALUE=5]="VALUE",e[e.ADD_PEER=6]="ADD_PEER",e[e.DIAL_PEER=7]="DIAL_PEER"})(js||(js={}));var t2;(function(e){e[e.PUT_VALUE=0]="PUT_VALUE",e[e.GET_VALUE=1]="GET_VALUE",e[e.ADD_PROVIDER=2]="ADD_PROVIDER",e[e.GET_PROVIDERS=3]="GET_PROVIDERS",e[e.FIND_NODE=4]="FIND_NODE",e[e.PING=5]="PING"})(t2||(t2={}));function Q9(e){return t=>new Ei(t,e)}return u6(Y9);})();
|
|
26
|
+
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),Q6=new RegExp(`(?:^${we}$)|(?:^${z0}$)`),Y6=new RegExp(`^${we}$`),W6=new RegExp(`^${z0}$`),ki=e=>e&&e.exact?Q6:new RegExp(`(?:${yr(e)}${we}${yr(e)})|(?:${yr(e)}${z0}${yr(e)})`,"g");ki.v4=e=>e&&e.exact?Y6:new RegExp(`${yr(e)}${we}${yr(e)}`,"g");ki.v6=e=>e&&e.exact?W6:new RegExp(`${yr(e)}${z0}${yr(e)}`,"g");var B2=ki;var H0=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,r,n,i){return this.readAtomically(()=>{let o=0,a=0,s=this.peekChar();if(s===void 0)return;let c=s==="0",u=2**(8*i)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let p=Number.parseInt(l,t);if(!Number.isNaN(p))return p});if(f===void 0)break;if(o*=t,o+=f,o>u||(a+=1,r!==void 0&&a>r))return}if(a!==0)return!n&&c&&a>1?void 0:o})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let a=this.readSeparator(":",n,()=>this.readIPv4Addr());if(a!==void 0)return r[i]=a[0],r[i+1]=a[1],r[i+2]=a[2],r[i+3]=a[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),a=16-(n+2),[s]=t(o.subarray(0,a));return r.set(o.subarray(0,s),16-s),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var T2=45,Z6=15,hn=new H0;function Di(e){if(!(e.length>Z6))return hn.new(e).parseWith(()=>hn.readIPv4Addr())}function Oi(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>T2))return hn.new(e).parseWith(()=>hn.readIPv6Addr())}function $0(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>T2))return hn.new(e).parseWith(()=>hn.readIPAddr())}function _2(e){return!!Di(e)}function R2(e){return!!Oi(e)}function dn(e){return!!$0(e)}var D2=St(L2(),1),{isValid:X6,parse:J6}=D2.default,j6=["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"],t8=j6.map(e=>new k2.Netmask(e));function e8(e){for(let t of t8)if(t.contains(e))return!0;return!1}function N2(e){return/^::$/.test(e)||/^::1$/.test(e)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(e)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(e)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(e)||/^ff([0-9a-fA-F]{2,2}):/i.test(e)}var O2=e=>{if(X6(e)){let t=J6(e);if(t.kind()==="ipv4")return e8(t.toNormalizedString());if(t.kind()==="ipv6")return N2(e)}else if(dn(e)&&B2.v6().test(e))return N2(e)};var Zn=O2;var U2="/lan",F2="/ipfs",K2="/kad/1.0.0",M2="/dht/record",Ui="/dht/provider";function r8(e){let[t,r]=e[Symbol.asyncIterator]!=null?[e[Symbol.asyncIterator](),Symbol.asyncIterator]:[e[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[r](){return this}}}var V2=r8;function n8(e){return e[Symbol.asyncIterator]!=null}function i8(e,t){if(n8(e))return async function*(){for await(let s of e)yield t(s)}();let r=V2(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let o=t(n);if(typeof o.then=="function")return async function*(){yield await o;for await(let s of r)yield t(s)}();let a=t;return function*(){yield o;for(let s of r)yield a(s)}()}var Q0=i8;var Y0=globalThis.CustomEvent??Event;async function*Xn(e,t={}){let r=t.concurrency??1/0;r<1&&(r=1/0);let n=t.ordered==null?!1:t.ordered,i=new EventTarget,o=[],a=Jt(),s=Jt(),c=!1,u,f=!1;i.addEventListener("task-complete",()=>{s.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of e){if(o.length===r&&(a=Jt(),await a.promise),f)break;let y={done:!1};o.push(y),h().then(g=>{y.done=!0,y.ok=!0,y.value=g,i.dispatchEvent(new Y0("task-complete"))},g=>{y.done=!0,y.err=g,i.dispatchEvent(new Y0("task-complete"))})}c=!0,i.dispatchEvent(new Y0("task-complete"))}catch(h){u=h,i.dispatchEvent(new Y0("task-complete"))}});function l(){return n?o[0]?.done:!!o.find(h=>h.done)}function*p(){for(;o.length>0&&o[0].done;){let h=o[0];if(o.shift(),h.ok)yield h.value;else throw f=!0,a.resolve(),h.err;a.resolve()}}function*d(){for(;l();)for(let h=0;h<o.length;h++)if(o[h].done){let y=o[h];if(o.splice(h,1),h--,y.ok)yield y.value;else throw f=!0,a.resolve(),y.err;a.resolve()}}for(;;){if(l()||(s=Jt(),await s.promise),u!=null)throw u;if(n?yield*p():yield*d(),c&&o.length===0)break}}function Ee(e,...t){if(e==null)throw new Error("Empty pipeline");if(Fi(e)){let n=e;e=()=>n.source}else if(z2(e)||q2(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&Fi(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++)Fi(r[n])&&(r[n]=s8(r[n]));return o8(...r)}var o8=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},q2=e=>e?.[Symbol.asyncIterator]!=null,z2=e=>e?.[Symbol.iterator]!=null,Fi=e=>e==null?!1:e.sink!=null&&e.source!=null,s8=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=q0({objectMode:!0});r.then(()=>{n.end()},a=>{n.end(a)});let i,o=e.source;if(q2(o))i=async function*(){yield*o,n.end()};else if(z2(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return be(n,i())}return e.source};function dt(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}var H2=Symbol.for("@libp2p/peer-id");var Ki={};Ft(Ki,{base10:()=>a8});var a8=pr({prefix:"9",name:"base10",alphabet:"0123456789"});var Mi={};Ft(Mi,{base16:()=>c8,base16upper:()=>u8});var c8=Bt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),u8=Bt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Vi={};Ft(Vi,{base2:()=>f8});var f8=Bt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var qi={};Ft(qi,{base256emoji:()=>y8});var $2=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}"),l8=$2.reduce((e,t,r)=>(e[r]=t,e),[]),h8=$2.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function d8(e){return e.reduce((t,r)=>(t+=l8[r],t),"")}function p8(e){let t=[];for(let r of e){let n=h8[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var y8=fn({prefix:"\u{1F680}",name:"base256emoji",encode:d8,decode:p8});var zi={};Ft(zi,{base36:()=>g8,base36upper:()=>m8});var g8=pr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),m8=pr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Hi={};Ft(Hi,{base8:()=>x8});var x8=Bt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var $i={};Ft($i,{identity:()=>v8});var v8=fn({prefix:"\0",name:"identity",encode:e=>E2(e),decode:e=>w2(e)});var nd=new TextEncoder,id=new TextDecoder;var Qi={};Ft(Qi,{identity:()=>gr});var E8=Y2,G2=128,S8=127,I8=~S8,A8=Math.pow(2,31);function Y2(e,t,r){t=t||[],r=r||0;for(var n=r;e>=A8;)t[r++]=e&255|G2,e/=128;for(;e&I8;)t[r++]=e&255|G2,e>>>=7;return t[r]=e|0,Y2.bytes=r-n+1,t}var C8=Gi,B8=128,Q2=127;function Gi(e,n){var r=0,n=n||0,i=0,o=n,a,s=e.length;do{if(o>=s)throw Gi.bytes=0,new RangeError("Could not decode varint");a=e[o++],r+=i<28?(a&Q2)<<i:(a&Q2)*Math.pow(2,i),i+=7}while(a>=B8);return Gi.bytes=o-n,r}var T8=Math.pow(2,7),_8=Math.pow(2,14),R8=Math.pow(2,21),P8=Math.pow(2,28),L8=Math.pow(2,35),N8=Math.pow(2,42),k8=Math.pow(2,49),D8=Math.pow(2,56),O8=Math.pow(2,63),U8=function(e){return e<T8?1:e<_8?2:e<R8?3:e<P8?4:e<L8?5:e<N8?6:e<k8?7:e<D8?8:e<O8?9:10},F8={encode:E8,decode:C8,encodingLength:U8},K8=F8,Jn=K8;var jn=(e,t=0)=>[Jn.decode(e,t),Jn.decode.bytes],pn=(e,t,r=0)=>(Jn.encode(e,t,r),t),yn=e=>Jn.encodingLength(e);var ke=(e,t)=>{let r=t.byteLength,n=yn(e),i=n+yn(r),o=new Uint8Array(i+r);return pn(e,o,0),pn(r,o,n),o.set(t,i),new gn(e,r,t,o)},Ur=e=>{let t=Ye(e),[r,n]=jn(t),[i,o]=jn(t.subarray(n)),a=t.subarray(n+o);if(a.byteLength!==i)throw new Error("Incorrect length");return new gn(r,i,a,t)},W2=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&b2(e.bytes,r.bytes)}},gn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var Z2=0,M8="identity",X2=Ye,V8=e=>ke(Z2,X2(e)),gr={code:Z2,name:M8,encode:X2,digest:V8};var Zi={};Ft(Zi,{sha256:()=>It,sha512:()=>q8});var Wi=({name:e,code:t,encode:r})=>new Yi(e,t,r),Yi=class{constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?ke(this.code,r):r.then(n=>ke(this.code,n))}else throw Error("Unknown type, must be binary type")}};var j2=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),It=Wi({name:"sha2-256",code:18,encode:j2("SHA-256")}),q8=Wi({name:"sha2-512",code:19,encode:j2("SHA-512")});var ta=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return H8(r,Xi(e),t||Lt.encoder);default:return $8(r,Xi(e),t||ve.encoder)}};var ea=new WeakMap,Xi=e=>{let t=ea.get(e);if(t==null){let r=new Map;return ea.set(e,r),r}return t},re=class e{constructor(t,r,n,i){this.code=r,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==t0)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==G8)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:r}=this.multihash,n=ke(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&W2(t.multihash,n.multihash)}toString(t){return ta(this,t)}toJSON(){return{"/":ta(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:o,bytes:a}=r;return new e(n,i,o,a||ra(n,i,o.bytes))}else if(r[Q8]===!0){let{version:n,multihash:i,code:o}=r,a=Ur(i);return e.create(n,o,a)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==t0)throw new Error(`Version 0 CID must use dag-pb (code: ${t0}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=ra(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,t0,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,i=Ye(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),a=new gn(r.multihashCode,r.digestSize,o,i);return[r.version===0?e.createV0(a):e.createV1(r.codec,a),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[l,p]=jn(t.subarray(r));return r+=p,l},i=n(),o=t0;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let a=r,s=n(),c=n(),u=r+c,f=u-a;return{version:i,codec:o,multihashCode:s,digestSize:c,multihashSize:f,size:u}}static parse(t,r){let[n,i]=z8(t,r),o=e.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Xi(o).set(n,t),o}},z8=(e,t)=>{switch(e[0]){case"Q":{let r=t||Lt;return[Lt.prefix,r.decode(`${Lt.prefix}${e}`)]}case Lt.prefix:{let r=t||Lt;return[Lt.prefix,r.decode(e)]}case ve.prefix:{let r=t||ve;return[ve.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},H8=(e,t,r)=>{let{prefix:n}=r;if(n!==Lt.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let o=r.encode(e).slice(1);return t.set(n,o),o}else return i},$8=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let o=r.encode(e);return t.set(n,o),o}else return i},t0=112,G8=18,ra=(e,t,r)=>{let n=yn(e),i=n+yn(t),o=new Uint8Array(i+r.byteLength);return pn(e,o,0),pn(t,o,n),o.set(r,i),o},Q8=Symbol.for("@ipld/js-cid/CID");var mr={...$i,...Vi,...Hi,...Ki,...Mi,...Ri,...zi,...Pi,...Li,...qi},bd={...Zi,...Qi};var Y8=Symbol.for("nodejs.util.inspect.custom"),na=Object.values(mr).map(e=>e.decoder).reduce((e,t)=>e.or(t),mr.identity.decoder),ia=114,Ji=36,ji=37,e0=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[H2]=!0;toString(){return this.string==null&&(this.string=Lt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return re.createV1(ia,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return dt(this.multihash.bytes,t);if(typeof t=="string")return Tt(t).equals(this);if(t?.multihash?.bytes!=null)return dt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[Y8](){return`PeerId(${this.toString()})`}},mn=class extends e0{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},xn=class extends e0{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},vn=class extends e0{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function Tt(e,t){if(t=t??na,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Ur(Lt.decode(`z${e}`));return e.startsWith("12D")?new xn({multihash:r}):e.startsWith("16U")?new vn({multihash:r}):new mn({multihash:r})}return Kr(na.decode(e))}function Kr(e){try{let t=Ur(e);if(t.code===gr.code){if(t.digest.length===Ji)return new xn({multihash:t});if(t.digest.length===ji)return new vn({multihash:t})}if(t.code===It.code)return new mn({multihash:t})}catch{return W8(re.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function W8(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==ia)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===It.code)return new mn({multihash:e.multihash});if(t.code===gr.code){if(t.digest.length===Ji)return new xn({multihash:e.multihash});if(t.digest.length===ji)return new vn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function oa(e,t){return e.length===Ji?new xn({multihash:ke(gr.code,e),privateKey:t}):e.length===ji?new vn({multihash:ke(gr.code,e),privateKey:t}):new mn({multihash:await It.digest(e),publicKey:e,privateKey:t})}function We(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Ze(e=0){return globalThis.Buffer?.alloc!=null?We(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function zt(e=0){return globalThis.Buffer?.allocUnsafe!=null?We(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function aa(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var sa=aa("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),to=aa("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=zt(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),Z8={utf8:sa,"utf-8":sa,hex:mr.base16,latin1:to,ascii:to,binary:to,...mr},Z0=Z8;function z(e,t="utf8"){let r=Z0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var X8=Math.pow(2,7),J8=Math.pow(2,14),j8=Math.pow(2,21),eo=Math.pow(2,28),ro=Math.pow(2,35),no=Math.pow(2,42),io=Math.pow(2,49),st=128,jt=127;function ae(e){if(e<X8)return 1;if(e<J8)return 2;if(e<j8)return 3;if(e<eo)return 4;if(e<ro)return 5;if(e<no)return 6;if(e<io)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function tc(e,t,r=0){switch(ae(e)){case 8:t[r++]=e&255|st,e/=128;case 7:t[r++]=e&255|st,e/=128;case 6:t[r++]=e&255|st,e/=128;case 5:t[r++]=e&255|st,e/=128;case 4:t[r++]=e&255|st,e>>>=7;case 3:t[r++]=e&255|st,e>>>=7;case 2:t[r++]=e&255|st,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function ec(e,t,r=0){switch(ae(e)){case 8:t.set(r++,e&255|st),e/=128;case 7:t.set(r++,e&255|st),e/=128;case 6:t.set(r++,e&255|st),e/=128;case 5:t.set(r++,e&255|st),e/=128;case 4:t.set(r++,e&255|st),e>>>=7;case 3:t.set(r++,e&255|st),e>>>=7;case 2:t.set(r++,e&255|st),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function rc(e,t){let r=e[t],n=0;if(n+=r&jt,r<st||(r=e[t+1],n+=(r&jt)<<7,r<st)||(r=e[t+2],n+=(r&jt)<<14,r<st)||(r=e[t+3],n+=(r&jt)<<21,r<st)||(r=e[t+4],n+=(r&jt)*eo,r<st)||(r=e[t+5],n+=(r&jt)*ro,r<st)||(r=e[t+6],n+=(r&jt)*no,r<st)||(r=e[t+7],n+=(r&jt)*io,r<st))return n;throw new RangeError("Could not decode varint")}function nc(e,t){let r=e.get(t),n=0;if(n+=r&jt,r<st||(r=e.get(t+1),n+=(r&jt)<<7,r<st)||(r=e.get(t+2),n+=(r&jt)<<14,r<st)||(r=e.get(t+3),n+=(r&jt)<<21,r<st)||(r=e.get(t+4),n+=(r&jt)*eo,r<st)||(r=e.get(t+5),n+=(r&jt)*ro,r<st)||(r=e.get(t+6),n+=(r&jt)*no,r<st)||(r=e.get(t+7),n+=(r&jt)*io,r<st))return n;throw new RangeError("Could not decode varint")}function De(e,t,r=0){return t==null&&(t=zt(ae(e))),t instanceof Uint8Array?tc(e,t,r):ec(e,t,r)}function Se(e,t=0){return e instanceof Uint8Array?rc(e,t):nc(e,t)}function gt(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=zt(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return We(r)}var Wd=parseInt("0xFFFF",16),Zd=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function pt(e,t="utf8"){let r=Z0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?We(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var fa=_2,cc=R2,oo=function(e){let t=0;if(e=e.toString().trim(),fa(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(cc(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=fa(r[n]),a;o&&(a=oo(r[n]),r[n]=z(a.slice(0,2),"base16")),a!=null&&++n<8&&r.splice(n,0,z(a.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(t+16);for(n=0;n<r.length;n++){let o=parseInt(r[n],16);i[t++]=o>>8&255,i[t++]=o&255}return i}throw new Error("invalid ip address")},la=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let o=0;o<r;o++)i.push(e[t+o]);return i.join(".")}if(r===16){let i=[];for(let o=0;o<r;o+=2)i.push(n.getUint16(t+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var bn={},so={},fc=[[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"]];fc.forEach(e=>{let t=lc(...e);so[t.code]=t,bn[t.name]=t});function lc(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function ut(e){if(typeof e=="number"){if(so[e]!=null)return so[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(bn[e]!=null)return bn[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var kp=ut("ip4"),Dp=ut("ip6"),Op=ut("ipcidr");function co(e,t){switch(ut(e).code){case 4:case 41:return dc(t);case 42:return pa(t);case 6:case 273:case 33:case 132:return ga(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return pa(t);case 421:return mc(t);case 444:return ya(t);case 445:return ya(t);case 466:return gc(t);default:return z(t,"base16")}}function uo(e,t){switch(ut(e).code){case 4:return ha(t);case 41:return ha(t);case 42:return da(t);case 6:case 273:case 33:case 132:return fo(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return da(t);case 421:return pc(t);case 444:return xc(t);case 445:return vc(t);case 466:return yc(t);default:return pt(t,"base16")}}var ao=Object.values(mr).map(e=>e.decoder),hc=function(){let e=ao[0].or(ao[1]);return ao.slice(2).forEach(t=>e=e.or(t)),e}();function ha(e){if(!dn(e))throw new Error("invalid ip address");return oo(e)}function dc(e){let t=la(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!dn(t))throw new Error("invalid ip address");return t}function fo(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function ga(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function da(e){let t=pt(e),r=Uint8Array.from(De(t.length));return gt([r,t],r.length+t.length)}function pa(e){let t=Se(e);if(e=e.slice(ae(t)),e.length!==t)throw new Error("inconsistent lengths");return z(e)}function pc(e){let t;e[0]==="Q"||e[0]==="1"?t=Ur(Lt.decode(`z${e}`)).bytes:t=re.parse(e).multihash.bytes;let r=Uint8Array.from(De(t.length));return gt([r,t],r.length+t.length)}function yc(e){let t=hc.decode(e),r=Uint8Array.from(De(t.length));return gt([r,t],r.length+t.length)}function gc(e){let t=Se(e),r=e.slice(ae(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+z(r,"base64url")}function mc(e){let t=Se(e),r=e.slice(ae(t));if(r.length!==t)throw new Error("inconsistent lengths");return z(r,"base58btc")}function xc(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=ve.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=fo(n);return gt([r,i],r.length+i.length)}function vc(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=ve.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=fo(n);return gt([r,i],r.length+i.length)}function ya(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=z(t,"base32"),i=ga(r);return`${n}:${i}`}function ma(e){e=lo(e);let t=[],r=[],n=null,i=e.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o<i.length;o++){let a=i[o],s=ut(a);if(s.size===0){t.push([s.code]),r.push([s.code]);continue}if(o++,o>=i.length)throw va("invalid address: "+e);if(s.path===!0){n=lo(i.slice(o).join("/")),t.push([s.code,uo(s.code,n)]),r.push([s.code,n]);break}let c=uo(s.code,i[o]);t.push([s.code,c]),r.push([s.code,co(s.code,c)])}return{string:xa(r),bytes:po(t),tuples:t,stringTuples:r,path:n}}function ho(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=Se(e,i),a=ae(o),s=ut(o),c=bc(s,e.slice(i+a));if(c===0){t.push([o]),r.push([o]),i+=a;continue}let u=e.slice(i+a,i+a+c);if(i+=c+a,i>e.length)throw va("Invalid address Uint8Array: "+z(e,"base16"));t.push([o,u]);let f=co(o,u);if(r.push([o,f]),s.path===!0){n=f;break}}return{bytes:Uint8Array.from(e),string:xa(r),tuples:t,stringTuples:r,path:n}}function xa(e){let t=[];return e.map(r=>{let n=ut(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),lo(t.join("/"))}function po(e){return gt(e.map(t=>{let r=ut(t[0]),n=Uint8Array.from(De(r.code));return t.length>1&&t[1]!=null&&(n=gt([n,t[1]])),n}))}function bc(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=Se(t instanceof Uint8Array?t:Uint8Array.from(t));return r+ae(r)}}function lo(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function va(e){return new Error("Error parsing address: "+e)}var wc=Symbol.for("nodejs.util.inspect.custom"),yo=Symbol.for("@multiformats/js-multiaddr/multiaddr"),Ec=[ut("dns").code,ut("dns4").code,ut("dns6").code,ut("dnsaddr").code],X0=class e{bytes;#t;#e;#r;#n;[yo]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=ho(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=ma(t)}else if(wa(t))r=ho(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",a=ut("tcp"),s=ut("udp"),c=ut("ip4"),u=ut("ip6"),f=ut("dns6"),l=ut("ip6zone");for(let[d,h]of this.stringTuples())d===l.code&&(o=`%${h??""}`),Ec.includes(d)&&(r=a.name,i=443,n=`${h??""}${o}`,t=d===f.code?6:4),(d===a.code||d===s.code)&&(r=ut(d).name,i=parseInt(h??"")),(d===c.code||d===u.code)&&(r=ut(d).name,n=`${h??""}${o}`,t=d===u.code?6:4);if(t==null||r==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:r,port:i}}protos(){return this.#e.map(([t])=>Object.assign({},ut(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>ut(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(po(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===bn.p2p.code&&t.push([n,i]),n===bn["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?z(Lt.decode(`z${n}`),"base58btc"):z(re.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return dt(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=ba.get(r.name);if(n==null)throw new R(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(o=>new e(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[wc](){return`Multiaddr(${this.#t})`}};var ba=new Map;function wa(e){return!!e?.[yo]}function go(e){return new X0(e)}var mo=new Float32Array([-0]),xr=new Uint8Array(mo.buffer);function Ea(e,t,r){mo[0]=e,t[r]=xr[0],t[r+1]=xr[1],t[r+2]=xr[2],t[r+3]=xr[3]}function Sa(e,t){return xr[0]=e[t],xr[1]=e[t+1],xr[2]=e[t+2],xr[3]=e[t+3],mo[0]}var xo=new Float64Array([-0]),te=new Uint8Array(xo.buffer);function Ia(e,t,r){xo[0]=e,t[r]=te[0],t[r+1]=te[1],t[r+2]=te[2],t[r+3]=te[3],t[r+4]=te[4],t[r+5]=te[5],t[r+6]=te[6],t[r+7]=te[7]}function Aa(e,t){return te[0]=e[t],te[1]=e[t+1],te[2]=e[t+2],te[3]=e[t+3],te[4]=e[t+4],te[5]=e[t+5],te[6]=e[t+6],te[7]=e[t+7],xo[0]}var Sc=BigInt(Number.MAX_SAFE_INTEGER),Ic=BigInt(Number.MIN_SAFE_INTEGER),ce=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return Mr;if(t<Sc&&t>Ic)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,i=t-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>Ca&&(i=0n,++n>Ca&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return Mr;let r=t<0;r&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new e(n,i)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):Mr}},Mr=new ce(0,0);Mr.toBigInt=function(){return 0n};Mr.zzEncode=Mr.zzDecode=function(){return this};Mr.length=function(){return 1};var Ca=4294967296n;function Ba(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Ta(e,t,r){if(r-t<1)return"";let i,o=[],a=0,s;for(;t<r;)s=e[t++],s<128?o[a++]=s:s>191&&s<224?o[a++]=(s&31)<<6|e[t++]&63:s>239&&s<365?(s=((s&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,o[a++]=55296+(s>>10),o[a++]=56320+(s&1023)):o[a++]=(s&15)<<12|(e[t++]&63)<<6|e[t++]&63,a>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,o)),a=0);return i!=null?(a>0&&i.push(String.fromCharCode.apply(String,o.slice(0,a))),i.join("")):String.fromCharCode.apply(String,o.slice(0,a))}function vo(e,t,r){let n=r,i,o;for(let a=0;a<e.length;++a)i=e.charCodeAt(a),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((o=e.charCodeAt(a+1))&64512)===56320?(i=65536+((i&1023)<<10)+(o&1023),++a,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=i&63|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=i&63|128);return r-n}function Ie(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function J0(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var bo=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Ie(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Ie(this,4);return J0(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ie(this,4);return J0(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ie(this,4);let t=Sa(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Ie(this,4);let t=Aa(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Ie(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return Ta(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Ie(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Ie(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new ce(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Ie(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw Ie(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ie(this,8);let t=J0(this.buf,this.pos+=4),r=J0(this.buf,this.pos+=4);return new ce(t,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){return this.readLongVarint().toNumber(!0)}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function wo(e){return new bo(e instanceof Uint8Array?e:e.subarray())}function Oe(e,t){let r=wo(e);return t.decode(r)}function Eo(e){let t=e??8192,r=t>>>1,n,i=t;return function(a){if(a<1||a>r)return zt(a);i+a>t&&(n=zt(t),i=0);let s=n.subarray(i,i+=a);return i&7&&(i=(i|7)+1),s}}var Vr=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function So(){}var Ao=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Ac=Eo();function Cc(e){return globalThis.Buffer!=null?zt(e):Ac(e)}var o0=class{len;head;tail;states;constructor(){this.len=0,this.head=new Vr(So,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new Vr(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Co((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(n0,10,ce.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=ce.fromBigInt(t);return this._push(n0,r.length(),r)}uint64Number(t){let r=ce.fromNumber(t);return this._push(n0,r.length(),r)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=ce.fromBigInt(t).zzEncode();return this._push(n0,r.length(),r)}sint64Number(t){let r=ce.fromNumber(t).zzEncode();return this._push(n0,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Io,1,t?1:0)}fixed32(t){return this._push(i0,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=ce.fromBigInt(t);return this._push(i0,4,r.lo)._push(i0,4,r.hi)}fixed64Number(t){let r=ce.fromNumber(t);return this._push(i0,4,r.lo)._push(i0,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Ea,4,t)}double(t){return this._push(Ia,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Io,1,0):this.uint32(r)._push(Tc,r,t)}string(t){let r=Ba(t);return r!==0?this.uint32(r)._push(vo,r,t):this._push(Io,1,0)}fork(){return this.states=new Ao(this),this.head=this.tail=new Vr(So,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Vr(So,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=Cc(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Io(e,t,r){t[r]=e&255}function Bc(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var Co=class extends Vr{next;constructor(t,r){super(Bc,t,r),this.next=void 0}};function n0(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function i0(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function Tc(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(o0.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(_c,t,e),this},o0.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(Rc,t,e),this});function _c(e,t,r){t.set(e,r)}function Rc(e,t,r){e.length<40?vo(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(pt(e),r)}function Bo(){return new o0}function Ue(e,t){let r=Bo();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var wn;(function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"})(wn||(wn={}));function j0(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function En(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(o,a){let s=t(o);a.int32(s)},n=function(o){let a=o.int32();return t(a)};return j0("enum",wn.VARINT,r,n)}function Fe(e,t){return j0("message",wn.LENGTH_DELIMITED,e,t)}var s0;(function(e){let t;e.codec=()=>(t==null&&(t=Fe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&r.key.byteLength>0&&(n.uint32(10),n.bytes(r.key)),r.value!=null&&r.value.byteLength>0&&(n.uint32(18),n.bytes(r.value)),r.timeReceived!=null&&r.timeReceived!==""&&(n.uint32(42),n.string(r.timeReceived)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={key:new Uint8Array(0),value:new Uint8Array(0),timeReceived:""},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.key=r.bytes();break;case 2:i.value=r.bytes();break;case 5:i.timeReceived=r.string();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Ue(r,e.codec()),e.decode=r=>Oe(r,e.codec())})(s0||(s0={}));function Ra(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),i=String(e.getUTCHours()).padStart(2,"0"),o=String(e.getUTCMinutes()).padStart(2,"0"),a=String(e.getUTCSeconds()).padStart(2,"0"),s=e.getUTCMilliseconds(),c=String(s*1e3*1e3).padStart(9,"0");return`${t}-${r}-${n}T${i}:${o}:${a}.${c}Z`}function Pa(e){let t=new RegExp("(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d+)Z"),r=String(e).trim().match(t);if(r==null)throw new Error("Invalid format");let n=parseInt(r[1],10),i=parseInt(r[2],10)-1,o=parseInt(r[3],10),a=parseInt(r[4],10),s=parseInt(r[5],10),c=parseInt(r[6],10),u=parseInt(r[7].slice(0,-6),10);return new Date(Date.UTC(n,i,o,a,s,c,u))}var Vt=class e{key;value;timeReceived;constructor(t,r,n){if(!(t instanceof Uint8Array))throw new Error("key must be a Uint8Array");if(!(r instanceof Uint8Array))throw new Error("value must be a Uint8Array");this.key=t,this.value=r,this.timeReceived=n}serialize(){return s0.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:Ra(this.timeReceived)}}static deserialize(t){let r=s0.decode(t);return new e(r.key,r.value,new Date(r.timeReceived))}static fromDeserialized(t){let r=Pa(t.timeReceived);if(t.key==null)throw new Error("key missing from deserialized object");if(t.value==null)throw new Error("value missing from deserialized object");return new e(t.key,t.value,r)}};var La;(function(e){let t;e.codec=()=>(t==null&&(t=Fe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&(n.uint32(10),n.bytes(r.key)),r.value!=null&&(n.uint32(18),n.bytes(r.value)),r.author!=null&&(n.uint32(26),n.bytes(r.author)),r.signature!=null&&(n.uint32(34),n.bytes(r.signature)),r.timeReceived!=null&&(n.uint32(42),n.string(r.timeReceived)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.key=r.bytes();break;case 2:i.value=r.bytes();break;case 3:i.author=r.bytes();break;case 4:i.signature=r.bytes();break;case 5:i.timeReceived=r.string();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Ue(r,e.codec()),e.decode=r=>Oe(r,e.codec())})(La||(La={}));var vr;(function(e){let t;(function(s){s.PUT_VALUE="PUT_VALUE",s.GET_VALUE="GET_VALUE",s.ADD_PROVIDER="ADD_PROVIDER",s.GET_PROVIDERS="GET_PROVIDERS",s.FIND_NODE="FIND_NODE",s.PING="PING"})(t=e.MessageType||(e.MessageType={}));let r;(function(s){s[s.PUT_VALUE=0]="PUT_VALUE",s[s.GET_VALUE=1]="GET_VALUE",s[s.ADD_PROVIDER=2]="ADD_PROVIDER",s[s.GET_PROVIDERS=3]="GET_PROVIDERS",s[s.FIND_NODE=4]="FIND_NODE",s[s.PING=5]="PING"})(r||(r={})),function(s){s.codec=()=>En(r)}(t=e.MessageType||(e.MessageType={}));let n;(function(s){s.NOT_CONNECTED="NOT_CONNECTED",s.CONNECTED="CONNECTED",s.CAN_CONNECT="CAN_CONNECT",s.CANNOT_CONNECT="CANNOT_CONNECT"})(n=e.ConnectionType||(e.ConnectionType={}));let i;(function(s){s[s.NOT_CONNECTED=0]="NOT_CONNECTED",s[s.CONNECTED=1]="CONNECTED",s[s.CAN_CONNECT=2]="CAN_CONNECT",s[s.CANNOT_CONNECT=3]="CANNOT_CONNECT"})(i||(i={})),function(s){s.codec=()=>En(i)}(n=e.ConnectionType||(e.ConnectionType={}));let o;(function(s){let c;s.codec=()=>(c==null&&(c=Fe((u,f,l={})=>{if(l.lengthDelimited!==!1&&f.fork(),u.id!=null&&(f.uint32(10),f.bytes(u.id)),u.addrs!=null)for(let p of u.addrs)f.uint32(18),f.bytes(p);u.connection!=null&&(f.uint32(24),e.ConnectionType.codec().encode(u.connection,f)),l.lengthDelimited!==!1&&f.ldelim()},(u,f)=>{let l={addrs:[]},p=f==null?u.len:u.pos+f;for(;u.pos<p;){let d=u.uint32();switch(d>>>3){case 1:l.id=u.bytes();break;case 2:l.addrs.push(u.bytes());break;case 3:l.connection=e.ConnectionType.codec().decode(u);break;default:u.skipType(d&7);break}}return l})),c),s.encode=u=>Ue(u,s.codec()),s.decode=u=>Oe(u,s.codec())})(o=e.Peer||(e.Peer={}));let a;e.codec=()=>(a==null&&(a=Fe((s,c,u={})=>{if(u.lengthDelimited!==!1&&c.fork(),s.type!=null&&(c.uint32(8),e.MessageType.codec().encode(s.type,c)),s.clusterLevelRaw!=null&&(c.uint32(80),c.int32(s.clusterLevelRaw)),s.key!=null&&(c.uint32(18),c.bytes(s.key)),s.record!=null&&(c.uint32(26),c.bytes(s.record)),s.closerPeers!=null)for(let f of s.closerPeers)c.uint32(66),e.Peer.codec().encode(f,c);if(s.providerPeers!=null)for(let f of s.providerPeers)c.uint32(74),e.Peer.codec().encode(f,c);u.lengthDelimited!==!1&&c.ldelim()},(s,c)=>{let u={closerPeers:[],providerPeers:[]},f=c==null?s.len:s.pos+c;for(;s.pos<f;){let l=s.uint32();switch(l>>>3){case 1:u.type=e.MessageType.codec().decode(s);break;case 10:u.clusterLevelRaw=s.int32();break;case 2:u.key=s.bytes();break;case 3:u.record=s.bytes();break;case 8:u.closerPeers.push(e.Peer.codec().decode(s,s.uint32()));break;case 9:u.providerPeers.push(e.Peer.codec().decode(s,s.uint32()));break;default:s.skipType(l&7);break}}return u})),a),e.encode=s=>Ue(s,e.codec()),e.decode=s=>Oe(s,e.codec())})(vr||(vr={}));var Nt=vr.MessageType,Lc=vr.ConnectionType,Da=Object.keys(Nt),_t=class e{type;key;clusterLevelRaw;closerPeers;providerPeers;record;constructor(t,r,n){if(!(r instanceof Uint8Array))throw new Error("Key must be a Uint8Array");this.type=t,this.key=r,this.clusterLevelRaw=n,this.closerPeers=[],this.providerPeers=[],this.record=void 0}get clusterLevel(){let t=this.clusterLevelRaw-1;return t<0?0:t}set clusterLevel(t){this.clusterLevelRaw=t}serialize(){return vr.encode({key:this.key,type:this.type,clusterLevelRaw:this.clusterLevelRaw,closerPeers:this.closerPeers.map(Na),providerPeers:this.providerPeers.map(Na),record:this.record==null?void 0:this.record.serialize().subarray()})}static deserialize(t){let r=vr.decode(t),n=new e(r.type??vr.MessageType.PUT_VALUE,r.key??Uint8Array.from([]),r.clusterLevelRaw??0);return n.closerPeers=r.closerPeers.map(ka),n.providerPeers=r.providerPeers.map(ka),r.record?.length!=null&&(n.record=Vt.deserialize(r.record)),n}};function Na(e){return{id:e.id.toBytes(),addrs:(e.multiaddrs??[]).map(r=>r.bytes),connection:Lc.CONNECTED}}function ka(e){if(e.id==null)throw new Error("Invalid peer in message");return{id:Kr(e.id),multiaddrs:(e.addrs??[]).map(t=>go(t)),protocols:[]}}function To(e,t={}){let r={...e,name:"SEND_QUERY",type:0,messageName:e.type,messageType:Da.indexOf(e.type.toString())};return t.onProgress?.(new Pt("kad-dht:query:send-query",{detail:r})),r}function a0(e,t={}){let r={...e,name:"PEER_RESPONSE",type:1,messageName:e.messageType,closer:e.closer!=null?e.closer:[],providers:e.providers!=null?e.providers:[]};return t.onProgress?.(new Pt("kad-dht:query:peer-response",{detail:r})),r}function t1(e,t={}){let r={...e,name:"FINAL_PEER",type:2};return t.onProgress?.(new Pt("kad-dht:query:final-peer",{detail:r})),r}function ne(e,t={}){let r={...e,name:"QUERY_ERROR",type:3};return t.onProgress?.(new Pt("kad-dht:query:query-error",{detail:r})),r}function _o(e,t={}){let r={...e,name:"PROVIDER",type:4};return t.onProgress?.(new Pt("kad-dht:query:provider",{detail:r})),r}function c0(e,t={}){let r={...e,name:"VALUE",type:5};return t.onProgress?.(new Pt("kad-dht:query:value",{detail:r})),r}function Ro(e,t={}){let r={...e,name:"DIAL_PEER",type:7};return t.onProgress?.(new Pt("kad-dht:query:dial-peer",{detail:r})),r}function Oa(e,t,r){if(r.length===0){let a="No records given";throw new R(a,"ERR_NO_RECORDS_RECEIVED")}let i=z(t).split("/");if(i.length<3){let a="Record key does not have a selector function";throw new R(a,"ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")}let o=e[i[1].toString()];if(o==null){let a=`No selector function configured for key type "${i[1]}"`;throw new R(a,"ERR_UNRECOGNIZED_KEY_PREFIX")}return r.length===1?0:o(t,r)}function Nc(e,t){return 0}var Ua={pk:Nc};async function Sn(e,t){let r=t.key,i=z(r).split("/");if(i.length<3)return;let o=e[i[1].toString()];if(o==null){let a=`No validator available for key type "${i[1]}"`;throw new R(a,"ERR_INVALID_RECORD_KEY_TYPE")}await o(r,t.value)}var kc=async(e,t)=>{if(!(e instanceof Uint8Array))throw new R('"key" must be a Uint8Array',"ERR_INVALID_RECORD_KEY_NOT_BUFFER");if(e.byteLength<5)throw new R("invalid public key record","ERR_INVALID_RECORD_KEY_TOO_SHORT");if(z(e.subarray(0,4))!=="/pk/")throw new R("key was not prefixed with /pk/","ERR_INVALID_RECORD_KEY_BAD_PREFIX");let n=e.slice(4),i=await It.digest(t);if(!dt(n,i.bytes))throw new R("public key does not match passed in key","ERR_INVALID_RECORD_HASH_MISMATCH")},Fa={pk:kc};var Ka=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var Xe="/",Ma=new TextEncoder().encode(Xe),e1=Ma[0],In=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=pt(t);else if(t instanceof Uint8Array)this._buf=t;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==e1)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 e(t.join(Xe))}static random(){return new e(Ka().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new e(t):typeof t.uint8Array=="function"?new e(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Ma),this._buf[0]!==e1){let t=new Uint8Array(this._buf.byteLength+1);t.fill(e1,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===e1;)this._buf=this._buf.subarray(0,-1)}less(t){let r=this.list(),n=t.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let o=r[i],a=n[i];if(o<a)return!0;if(o>a)return!1}return r.length<n.length}reverse(){return e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(Xe).slice(1)}type(){return Dc(this.baseNamespace())}name(){return Oc(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(Xe)||(t+=Xe),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(Xe):new e(t.slice(0,-1).join(Xe))}child(t){return this.toString()===Xe?t:t.toString()===Xe?this:new e(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return e.withNamespaces([...this.namespaces(),...Uc(t.map(r=>r.namespaces()))])}};function Dc(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function Oc(e){let t=e.split(":");return t[t.length-1]}function Uc(e){return[].concat(...e)}var Fc=pt("/pk/");function An(e){return{...e,multiaddrs:e.multiaddrs.filter(t=>{let[[r,n]]=t.stringTuples();if(r===53||r===54||r===55)return n!=="localhost";if(r!==4&&r!==6||n==null)return!1;let i=Zn(n);return i==null?!0:!i})}}function Cn(e){return{...e,multiaddrs:e.multiaddrs.filter(t=>{let[[r,n]]=t.stringTuples();if(n==="localhost")return!0;if(r!==4&&r!==6||n==null)return!1;let i=Zn(n);return i??!1})}}async function br(e){return(await It.digest(e)).digest}async function Ae(e){return br(e.toBytes())}function Je(e){return new In(`${M2}/${z(e,"base32")}`,!1)}function Va(e){return gt([Fc,e.toBytes()])}function qa(e){return z(e.subarray(0,4))==="/pk/"}function za(e){return Kr(e.subarray(4))}function Po(e,t){let r=new Date;return new Vt(e,t,r).serialize()}function Ha(e,t=100){let r;return()=>{clearTimeout(r),r=setTimeout(()=>{e()},t)}}var r1=class{log;components;validators;selectors;peerRouting;queryManager;network;constructor(t,r){let{validators:n,selectors:i,peerRouting:o,queryManager:a,network:s,lan:c}=r;this.components=t,this.log=X(`libp2p:kad-dht:${c?"lan":"wan"}:content-fetching`),this.validators=n,this.selectors=i,this.peerRouting=o,this.queryManager=a,this.network=s}async putLocal(t,r){let n=Je(t);await this.components.datastore.put(n,r)}async getLocal(t){this.log("getLocal %b",t);let r=Je(t);this.log("fetching record for key %k",r);let n=await this.components.datastore.get(r);this.log("found %k in local datastore",r);let i=Vt.deserialize(n);return await Sn(this.validators,i),i}async*sendCorrectionRecord(t,r,n,i={}){this.log("sendCorrection for %b",t);let o=Po(t,n);for(let{value:a,from:s}of r){if(dt(a,n)){this.log("record was ok");continue}if(this.components.peerId.equals(s)){try{let f=Je(t);this.log(`Storing corrected record for key ${f.toString()}`),await this.components.datastore.put(f,o.subarray())}catch(f){this.log.error("Failed error correcting self",f)}continue}let c=!1,u=new _t(Nt.PUT_VALUE,t,0);u.record=Vt.deserialize(o);for await(let f of this.network.sendRequest(s,u,i))f.name==="PEER_RESPONSE"&&f.record!=null&&dt(f.record.value,Vt.deserialize(o).value)&&(c=!0),yield f;c||(yield ne({from:s,error:new R("value not put correctly","ERR_PUT_VALUE_INVALID")},i)),this.log.error("Failed error correcting entry")}}async*put(t,r,n={}){this.log("put key %b value %b",t,r);let i=Po(t,r),o=Je(t);this.log(`storing record for key ${o.toString()}`),await this.components.datastore.put(o,i.subarray()),yield*Ee(this.peerRouting.getClosestPeers(t,{signal:n.signal}),a=>Q0(a,s=>async()=>{if(s.name!=="FINAL_PEER")return[s];let c=[],u=new _t(Nt.PUT_VALUE,t,0);u.record=Vt.deserialize(i),this.log("send put to %p",s.peer.id);for await(let f of this.network.sendRequest(s.peer.id,u,n))c.push(f),f.name==="PEER_RESPONSE"&&(f.record!=null&&dt(f.record.value,Vt.deserialize(i).value)||c.push(ne({from:s.peer.id,error:new R("value not put correctly","ERR_PUT_VALUE_INVALID")},n)));return c}),a=>Xn(a,{ordered:!1,concurrency:3}),async function*(a){for await(let s of a)yield*s})}async*get(t,r={}){this.log("get %b",t);let n=[];for await(let s of this.getMany(t,r))s.name==="VALUE"&&n.push(s),yield s;if(n.length===0)return;let i=n.map(s=>s.value),o=0;try{o=Oa(this.selectors,t,i)}catch(s){if(s.code!=="ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")throw s}let a=i[o];if(this.log("GetValue %b %b",t,a),a==null)throw new R("best value was not found","ERR_NOT_FOUND");yield*this.sendCorrectionRecord(t,n,a,r),yield n[o]}async*getMany(t,r={}){this.log("getMany values for %b",t);try{let o=await this.getLocal(t);yield c0({value:o.value,from:this.components.peerId},r)}catch(o){this.log("error getting local value for %b",t,o)}let n=this,i=async function*({peer:o,signal:a}){for await(let s of n.peerRouting.getValueOrPeers(o,t,{signal:a}))yield s,s.name==="PEER_RESPONSE"&&s.record!=null&&(yield c0({from:o,value:s.record.value},r))};yield*this.queryManager.run(t,i,r)}};var n1=class{log;components;network;peerRouting;queryManager;routingTable;providers;constructor(t,r){let{network:n,peerRouting:i,queryManager:o,routingTable:a,providers:s,lan:c}=r;this.components=t,this.log=X(`libp2p:kad-dht:${c?"lan":"wan"}:content-routing`),this.network=n,this.peerRouting=i,this.queryManager=o,this.routingTable=a,this.providers=s}async*provide(t,r,n={}){this.log("provide %s",t),await this.providers.addProvider(t,this.components.peerId);let i=new _t(Nt.ADD_PROVIDER,t.multihash.bytes,0);i.providerPeers=[{id:this.components.peerId,multiaddrs:r,protocols:[]}];let o=0,a=s=>async()=>{if(s.name!=="FINAL_PEER")return[s];let c=[];this.log("putProvider %s to %p",t,s.peer.id);try{this.log("sending provider record for %s to %p",t,s.peer.id);for await(let u of this.network.sendMessage(s.peer.id,i,n))u.name==="PEER_RESPONSE"&&(this.log("sent provider record for %s to %p",t,s.peer.id),o++),c.push(u)}catch(u){this.log.error("error sending provide record to peer %p",s.peer.id,u),c.push(ne({from:s.peer.id,error:u},n))}return c};yield*Ee(this.peerRouting.getClosestPeers(t.multihash.bytes,n),s=>Q0(s,c=>a(c)),s=>Xn(s,{ordered:!1,concurrency:3}),async function*(s){for await(let c of s)yield*c}),this.log("sent provider records to %d peers",o)}async*findProviders(t,r){let n=this.routingTable.kBucketSize,i=t.multihash.bytes,o=this;this.log("findProviders %c",t);let a=await this.providers.getProviders(t);if(a.length>0){let u=[];for(let f of a.slice(0,n))try{let l=await this.components.peerStore.get(f);u.push({id:f,multiaddrs:l.addresses.map(({multiaddr:p})=>p),protocols:l.protocols})}catch(l){if(l.code!=="ERR_NOT_FOUND")throw l;this.log("no peer store entry for %p",f)}yield a0({from:this.components.peerId,messageType:Nt.GET_PROVIDERS,providers:u},r),yield _o({from:this.components.peerId,providers:u},r)}if(a.length>=n)return;let s=async function*({peer:u,signal:f}){let l=new _t(Nt.GET_PROVIDERS,i,0);yield*o.network.sendRequest(u,l,{...r,signal:f})},c=new Set(a.map(u=>u.toString()));for await(let u of this.queryManager.run(i,s,r))if(yield u,u.name==="PEER_RESPONSE"){this.log("Found %d provider entries for %c and %d closer peers",u.providers.length,t,u.closer.length);let f=[];for(let l of u.providers)c.has(l.id.toString())||(c.add(l.id.toString()),f.push(l));if(f.length>0&&(yield _o({from:u.from,providers:f},r)),c.size===n)return}}};var u0=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function $a(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function Ga(e,t,r){let n=r??{},i=$a(e);async function*o(){let a,s=()=>{a?.()};for(t.addEventListener("abort",s);;){let c;try{if(t.aborted){let{abortMessage:f,abortCode:l}=n;throw new u0(f,l)}let u=new Promise((f,l)=>{a=()=>{let{abortMessage:p,abortCode:d}=n;l(new u0(p,d))}});c=await Promise.race([u,i.next()]),a=null}catch(u){t.removeEventListener("abort",s);let f=u.type==="aborted"&&t.aborted;if(f&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let l=i.return();l instanceof Promise&&l.catch(p=>{n.onReturnError!=null&&n.onReturnError(p)})}catch(l){n.onReturnError!=null&&n.onReturnError(l)}if(f&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",s)}return o()}function Kc(e,t,r){return n=>e(Ga(n,t,r))}function No(e,t,r){return{sink:Kc(e.sink,t,{...r,onAbort:void 0}),source:Ga(e.source,t,r)}}function Mc(e){return e[Symbol.asyncIterator]!=null}function Vc(e){if(Mc(e))return(async()=>{for await(let t of e)return t})();for(let t of e)return t}var Qa=Vc;var Wa=Symbol.for("@achingbrain/uint8arraylist");function Ya(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function i1(e){return!!e?.[Wa]}var Tn=class e{constructor(...t){Object.defineProperty(this,Wa,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(i1(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(i1(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(t){let r=Ya(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Ya(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(i1(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return gt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:gt(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),o=new e;return o.length=i,o.bufs=n,o}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let a=this.bufs[o],s=i,c=s+a.byteLength;if(i=c,t>=c)continue;let u=t>=s&&t<c,f=r>s&&r<=c;if(u&&f){if(t===s&&r===c){n.push(a);break}let l=t-s;n.push(a.subarray(l,l+(r-t)));break}if(u){if(t===0){n.push(a);continue}n.push(a.subarray(t-s));continue}if(f){if(r===c){n.push(a);break}n.push(a.subarray(0,r-s));break}n.push(a)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!i1(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,a=new Int32Array(o);for(let l=0;l<o;l++)a[l]=-1;for(let l=0;l<i;l++)a[n[l]]=l;let s=a,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let l=r;l<=c;l+=f){f=0;for(let p=u;p>=0;p--){let d=this.get(l+p);if(n[p]!==d){f=Math.max(1,p-s[d]);break}}if(f===0)return l}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=zt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=Ze(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=Ze(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=Ze(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=zt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=Ze(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=Ze(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=Ze(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=Ze(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=Ze(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!dt(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new e;return n.bufs=t,r==null&&(r=t.reduce((i,o)=>i+o.byteLength,0)),n.length=r,n}};function o1(e){return e[Symbol.asyncIterator]!=null}var s1=e=>{let t=ae(e),r=zt(t);return De(e,r),s1.bytes=t,r};s1.bytes=0;function qr(e,t){t=t??{};let r=t.lengthEncoder??s1;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return o1(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}qr.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??s1;return new Tn(r(e.byteLength),e)};var _n=St(Ja(),1);var zc=8,Hc=1024*1024*4,zr;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(zr||(zr={}));var ko=e=>{let t=Se(e);return ko.bytes=ae(t),t};ko.bytes=0;function Hr(e,t){let r=new Tn,n=zr.LENGTH,i=-1,o=t?.lengthDecoder??ko,a=t?.maxLengthLength??zc,s=t?.maxDataLength??Hc;function*c(){for(;r.byteLength>0;){if(n===zr.LENGTH)try{if(i=o(r),i<0)throw(0,_n.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>s)throw(0,_n.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=o.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=zr.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>a)throw(0,_n.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===zr.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=zr.LENGTH}}}return o1(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,_n.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,_n.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Hr.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:a}=await e.next(r);if(o===!0)return;a!=null&&(yield a)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return Hr(n,{...t??{},onLength:o=>{r=o}})};var a1=class extends Xt{log;protocol;running;components;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=X(`libp2p:kad-dht:${i?"lan":"wan"}:network`),this.running=!1,this.protocol=n}async start(){this.running||(this.running=!0)}async stop(){this.running=!1}isStarted(){return this.running}async*sendRequest(t,r,n={}){if(!this.running)return;this.log("sending %s to %p",r.type,t),yield Ro({peer:t},n),yield To({to:t,type:r.type},n);let i;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n),s=await this._writeReadMessage(a,r.serialize(),n);yield a0({from:t,messageType:s.type,closer:s.closerPeers,providers:s.providerPeers,record:s.record},n)}catch(o){yield ne({from:t,error:o},n)}finally{i!=null&&await i.close()}}async*sendMessage(t,r,n={}){if(!this.running)return;this.log("sending %s to %p",r.type,t),yield Ro({peer:t},n),yield To({to:t,type:r.type},n);let i;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n);await this._writeMessage(a,r.serialize(),n),yield a0({from:t,messageType:r.type},n)}catch(o){yield ne({from:t,error:o},n)}finally{i!=null&&await i.close()}}async _writeMessage(t,r,n){n.signal!=null&&(t=No(t,n.signal)),await Ee([r],i=>qr(i),t,Yn)}async _writeReadMessage(t,r,n){n.signal!=null&&(t=No(t,n.signal));let i=await Ee([r],a=>qr(a),t,a=>Hr(a),async a=>{let s=await Qa(a);if(s!=null)return s;throw new R("No message received","ERR_NO_MESSAGE_RECEIVED")}),o=_t.deserialize(i);return o.closerPeers.forEach(a=>{this.dispatchEvent(new Pt("peer",{detail:a}))}),o.providerPeers.forEach(a=>{this.dispatchEvent(new Pt("peer",{detail:a}))}),o}};var Am=St(h1(),1),Jc=St(ft(),1);var Dt={get(e=globalThis){let t=e.crypto;if(t==null||t.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var p3={SHA1:20,SHA256:32,SHA512:64};var eu={SHA1:"SHA-1",SHA256:"SHA-256",SHA512:"SHA-512"},ru=async(e,t)=>{let r=await Dt.get().subtle.sign({name:"HMAC"},e,t);return new Uint8Array(r,0,r.byteLength)};async function y3(e,t){let r=eu[e],n=await Dt.get().subtle.importKey("raw",t,{name:"HMAC",hash:{name:r}},!1,["sign"]);return{async digest(i){return ru(n,i)},length:p3[e]}}var G1={};Ft(G1,{generateEphemeralKeyPair:()=>Q4,generateKeyPair:()=>n9,generateKeyPairFromSeed:()=>i9,importKey:()=>c9,keyStretcher:()=>Z4,keysPBM:()=>Vn,marshalPrivateKey:()=>a9,marshalPublicKey:()=>s9,supportedKeys:()=>Ge,unmarshalPrivateKey:()=>A5,unmarshalPublicKey:()=>o9});var wb=St(d0(),1),Eb=St(m4(),1);var $1=St(ft(),1);var Es={};Ft(Es,{Ed25519PrivateKey:()=>jr,Ed25519PublicKey:()=>v0,generateKeyPair:()=>Bl,generateKeyPairFromSeed:()=>ws,unmarshalEd25519PrivateKey:()=>Al,unmarshalEd25519PublicKey:()=>Cl});function x4(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function ns(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function v4(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");x4(e.outputLen),x4(e.blockLen)}function kn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function b4(e,t){ns(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var B1=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var w4=e=>e instanceof Uint8Array;var T1=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Te=(e,t)=>e<<32-t|e>>>t,w7=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!w7)throw new Error("Non little-endian hardware is not supported");function is(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function g0(e){if(typeof e=="string"&&(e=is(e)),!w4(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function _1(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!w4(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Dn=class{clone(){return this._cloneInto()}},ix={}.toString;function R1(e){let t=n=>e().update(g0(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function On(e=32){if(B1&&typeof B1.getRandomValues=="function")return B1.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function E7(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),a=Number(r>>i&o),s=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,a,n),e.setUint32(t+u,s,n)}var Un=class extends Dn{constructor(t,r,n,i){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=T1(this.buffer)}update(t){kn(this);let{view:r,buffer:n,blockLen:i}=this;t=g0(t);let o=t.length;for(let a=0;a<o;){let s=Math.min(i-this.pos,o-a);if(s===i){let c=T1(t);for(;i<=o-a;a+=i)this.process(c,a);continue}n.set(t.subarray(a,a+s),this.pos),this.pos+=s,a+=s,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){kn(this),b4(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:a}=this;r[a++]=128,this.buffer.subarray(a).fill(0),this.padOffset>i-a&&(this.process(n,0),a=0);for(let l=a;l<i;l++)r[l]=0;E7(n,i-8,BigInt(this.length*8),o),this.process(n,0);let s=T1(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)s.setUint32(4*l,f[l],o)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:o,destroyed:a,pos:s}=this;return t.length=i,t.pos=s,t.finished=o,t.destroyed=a,i%r&&t.buffer.set(n),t}};var P1=BigInt(4294967295),os=BigInt(32);function E4(e,t=!1){return t?{h:Number(e&P1),l:Number(e>>os&P1)}:{h:Number(e>>os&P1)|0,l:Number(e&P1)|0}}function S7(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:o,l:a}=E4(e[i],t);[r[i],n[i]]=[o,a]}return[r,n]}var I7=(e,t)=>BigInt(e>>>0)<<os|BigInt(t>>>0),A7=(e,t,r)=>e>>>r,C7=(e,t,r)=>e<<32-r|t>>>r,B7=(e,t,r)=>e>>>r|t<<32-r,T7=(e,t,r)=>e<<32-r|t>>>r,_7=(e,t,r)=>e<<64-r|t>>>r-32,R7=(e,t,r)=>e>>>r-32|t<<64-r,P7=(e,t)=>t,L7=(e,t)=>e,N7=(e,t,r)=>e<<r|t>>>32-r,k7=(e,t,r)=>t<<r|e>>>32-r,D7=(e,t,r)=>t<<r-32|e>>>64-r,O7=(e,t,r)=>e<<r-32|t>>>64-r;function U7(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var F7=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),K7=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,M7=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),V7=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,q7=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),z7=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0;var H7={fromBig:E4,split:S7,toBig:I7,shrSH:A7,shrSL:C7,rotrSH:B7,rotrSL:T7,rotrBH:_7,rotrBL:R7,rotr32H:P7,rotr32L:L7,rotlSH:N7,rotlSL:k7,rotlBH:D7,rotlBL:O7,add:U7,add3L:F7,add3H:K7,add4L:M7,add4H:V7,add5H:z7,add5L:q7},W=H7;var[$7,G7]=(()=>W.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))))(),Ar=new Uint32Array(80),Cr=new Uint32Array(80),ss=class extends Un{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:r,Bh:n,Bl:i,Ch:o,Cl:a,Dh:s,Dl:c,Eh:u,El:f,Fh:l,Fl:p,Gh:d,Gl:h,Hh:y,Hl:g}=this;return[t,r,n,i,o,a,s,c,u,f,l,p,d,h,y,g]}set(t,r,n,i,o,a,s,c,u,f,l,p,d,h,y,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=o|0,this.Cl=a|0,this.Dh=s|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=p|0,this.Gh=d|0,this.Gl=h|0,this.Hh=y|0,this.Hl=g|0}process(t,r){for(let v=0;v<16;v++,r+=4)Ar[v]=t.getUint32(r),Cr[v]=t.getUint32(r+=4);for(let v=16;v<80;v++){let C=Ar[v-15]|0,E=Cr[v-15]|0,S=W.rotrSH(C,E,1)^W.rotrSH(C,E,8)^W.shrSH(C,E,7),L=W.rotrSL(C,E,1)^W.rotrSL(C,E,8)^W.shrSL(C,E,7),N=Ar[v-2]|0,$=Cr[v-2]|0,G=W.rotrSH(N,$,19)^W.rotrBH(N,$,61)^W.shrSH(N,$,6),q=W.rotrSL(N,$,19)^W.rotrBL(N,$,61)^W.shrSL(N,$,6),j=W.add4L(L,q,Cr[v-7],Cr[v-16]),lt=W.add4H(j,S,G,Ar[v-7],Ar[v-16]);Ar[v]=lt|0,Cr[v]=j|0}let{Ah:n,Al:i,Bh:o,Bl:a,Ch:s,Cl:c,Dh:u,Dl:f,Eh:l,El:p,Fh:d,Fl:h,Gh:y,Gl:g,Hh:m,Hl:x}=this;for(let v=0;v<80;v++){let C=W.rotrSH(l,p,14)^W.rotrSH(l,p,18)^W.rotrBH(l,p,41),E=W.rotrSL(l,p,14)^W.rotrSL(l,p,18)^W.rotrBL(l,p,41),S=l&d^~l&y,L=p&h^~p&g,N=W.add5L(x,E,L,G7[v],Cr[v]),$=W.add5H(N,m,C,S,$7[v],Ar[v]),G=N|0,q=W.rotrSH(n,i,28)^W.rotrBH(n,i,34)^W.rotrBH(n,i,39),j=W.rotrSL(n,i,28)^W.rotrBL(n,i,34)^W.rotrBL(n,i,39),lt=n&o^n&s^o&s,Qt=i&a^i&c^a&c;m=y|0,x=g|0,y=d|0,g=h|0,d=l|0,h=p|0,{h:l,l:p}=W.add(u|0,f|0,$|0,G|0),u=s|0,f=c|0,s=o|0,c=a|0,o=n|0,a=i|0;let T=W.add3L(G,j,Qt);n=W.add3H(T,$,q,lt),i=T|0}({h:n,l:i}=W.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:a}=W.add(this.Bh|0,this.Bl|0,o|0,a|0),{h:s,l:c}=W.add(this.Ch|0,this.Cl|0,s|0,c|0),{h:u,l:f}=W.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=W.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:h}=W.add(this.Fh|0,this.Fl|0,d|0,h|0),{h:y,l:g}=W.add(this.Gh|0,this.Gl|0,y|0,g|0),{h:m,l:x}=W.add(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,i,o,a,s,c,u,f,l,p,d,h,y,g,m,x)}roundClean(){Ar.fill(0),Cr.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var as=R1(()=>new ss);var k1={};Ft(k1,{bitGet:()=>j7,bitLen:()=>J7,bitMask:()=>m0,bitSet:()=>tl,bytesToHex:()=>rr,bytesToNumberBE:()=>nr,bytesToNumberLE:()=>Br,concatBytes:()=>ir,createHmacDrbg:()=>fs,ensureBytes:()=>Rt,equalBytes:()=>Z7,hexToBytes:()=>Zr,hexToNumber:()=>us,numberToBytesBE:()=>Tr,numberToBytesLE:()=>Xr,numberToHexUnpadded:()=>A4,numberToVarBytesBE:()=>W7,utf8ToBytes:()=>X7,validateObject:()=>$e});var I4=BigInt(0),L1=BigInt(1),Q7=BigInt(2),N1=e=>e instanceof Uint8Array,Y7=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function rr(e){if(!N1(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=Y7[e[r]];return t}function A4(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function us(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function Zr(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,o=e.slice(i,i+2),a=Number.parseInt(o,16);if(Number.isNaN(a)||a<0)throw new Error("Invalid byte sequence");r[n]=a}return r}function nr(e){return us(rr(e))}function Br(e){if(!N1(e))throw new Error("Uint8Array expected");return us(rr(Uint8Array.from(e).reverse()))}function Tr(e,t){return Zr(e.toString(16).padStart(t*2,"0"))}function Xr(e,t){return Tr(e,t).reverse()}function W7(e){return Zr(A4(e))}function Rt(e,t,r){let n;if(typeof t=="string")try{n=Zr(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(N1(t))n=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${e} expected ${r} bytes, got ${i}`);return n}function ir(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!N1(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function Z7(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function X7(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function J7(e){let t;for(t=0;e>I4;e>>=L1,t+=1);return t}function j7(e,t){return e>>BigInt(t)&L1}var tl=(e,t,r)=>e|(r?L1:I4)<<BigInt(t),m0=e=>(Q7<<BigInt(e-1))-L1,cs=e=>new Uint8Array(e),S4=e=>Uint8Array.from(e);function fs(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=cs(e),i=cs(e),o=0,a=()=>{n.fill(1),i.fill(0),o=0},s=(...l)=>r(i,n,...l),c=(l=cs())=>{i=s(S4([0]),l),n=s(),l.length!==0&&(i=s(S4([1]),l),n=s())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,p=[];for(;l<t;){n=s();let d=n.slice();p.push(d),l+=n.length}return ir(...p)};return(l,p)=>{a(),c(l);let d;for(;!(d=p(u()));)c();return a(),d}}var el={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function $e(e,t,r={}){let n=(i,o,a)=>{let s=el[o];if(typeof s!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=e[i];if(!(a&&c===void 0)&&!s(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${o}`)};for(let[i,o]of Object.entries(t))n(i,o,!1);for(let[i,o]of Object.entries(r))n(i,o,!0);return e}var qt=BigInt(0),wt=BigInt(1),Jr=BigInt(2),rl=BigInt(3),ls=BigInt(4),C4=BigInt(5),B4=BigInt(8),nl=BigInt(9),il=BigInt(16);function ht(e,t){let r=e%t;return r>=qt?r:t+r}function ol(e,t,r){if(r<=qt||t<qt)throw new Error("Expected power/modulo > 0");if(r===wt)return qt;let n=wt;for(;t>qt;)t&wt&&(n=n*e%r),e=e*e%r,t>>=wt;return n}function Et(e,t,r){let n=e;for(;t-- >qt;)n*=n,n%=r;return n}function D1(e,t){if(e===qt||t<=qt)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=ht(e,t),n=t,i=qt,o=wt,a=wt,s=qt;for(;r!==qt;){let u=n/r,f=n%r,l=i-a*u,p=o-s*u;n=r,r=f,i=a,o=s,a=l,s=p}if(n!==wt)throw new Error("invert: does not exist");return ht(i,t)}function sl(e){let t=(e-wt)/Jr,r,n,i;for(r=e-wt,n=0;r%Jr===qt;r/=Jr,n++);for(i=Jr;i<e&&ol(i,t,e)!==e-wt;i++);if(n===1){let a=(e+wt)/ls;return function(c,u){let f=c.pow(u,a);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let o=(r+wt)/Jr;return function(s,c){if(s.pow(c,t)===s.neg(s.ONE))throw new Error("Cannot find square root");let u=n,f=s.pow(s.mul(s.ONE,i),r),l=s.pow(c,o),p=s.pow(c,r);for(;!s.eql(p,s.ONE);){if(s.eql(p,s.ZERO))return s.ZERO;let d=1;for(let y=s.sqr(p);d<u&&!s.eql(y,s.ONE);d++)y=s.sqr(y);let h=s.pow(f,wt<<BigInt(u-d-1));f=s.sqr(h),l=s.mul(l,h),p=s.mul(p,f),u=d}return l}}function al(e){if(e%ls===rl){let t=(e+wt)/ls;return function(n,i){let o=n.pow(i,t);if(!n.eql(n.sqr(o),i))throw new Error("Cannot find square root");return o}}if(e%B4===C4){let t=(e-C4)/B4;return function(n,i){let o=n.mul(i,Jr),a=n.pow(o,t),s=n.mul(i,a),c=n.mul(n.mul(s,Jr),a),u=n.mul(s,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return e%il,sl(e)}var T4=(e,t)=>(ht(e,t)&wt)===wt,cl=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function hs(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=cl.reduce((n,i)=>(n[i]="function",n),t);return $e(e,r)}function ul(e,t,r){if(r<qt)throw new Error("Expected power > 0");if(r===qt)return e.ONE;if(r===wt)return t;let n=e.ONE,i=t;for(;r>qt;)r&wt&&(n=e.mul(n,i)),i=e.sqr(i),r>>=wt;return n}function fl(e,t){let r=new Array(t.length),n=t.reduce((o,a,s)=>e.is0(a)?o:(r[s]=o,e.mul(o,a)),e.ONE),i=e.inv(n);return t.reduceRight((o,a,s)=>e.is0(a)?o:(r[s]=e.mul(o,r[s]),e.mul(o,a)),i),r}function ds(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function O1(e,t,r=!1,n={}){if(e<=qt)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=ds(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let a=al(e),s=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:m0(i),ZERO:qt,ONE:wt,create:c=>ht(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return qt<=c&&c<e},is0:c=>c===qt,isOdd:c=>(c&wt)===wt,neg:c=>ht(-c,e),eql:(c,u)=>c===u,sqr:c=>ht(c*c,e),add:(c,u)=>ht(c+u,e),sub:(c,u)=>ht(c-u,e),mul:(c,u)=>ht(c*u,e),pow:(c,u)=>ul(s,c,u),div:(c,u)=>ht(c*D1(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>D1(c,e),sqrt:n.sqrt||(c=>a(s,c)),invertBatch:c=>fl(s,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?Xr(c,o):Tr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return r?Br(c):nr(c)}});return Object.freeze(s)}function _4(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");let r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function R4(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function ps(e){let t=R4(e);return t+Math.ceil(t/2)}function P4(e,t,r=!1){let n=e.length,i=R4(t),o=ps(t);if(n<16||n<o||n>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let a=r?nr(e):Br(e),s=ht(a,t-wt)+wt;return r?Xr(s,i):Tr(s,i)}var hl=BigInt(0),ys=BigInt(1);function U1(e,t){let r=(i,o)=>{let a=o.negate();return i?a:o},n=i=>{let o=Math.ceil(t/i)+1,a=2**(i-1);return{windows:o,windowSize:a}};return{constTimeNegate:r,unsafeLadder(i,o){let a=e.ZERO,s=i;for(;o>hl;)o&ys&&(a=a.add(s)),s=s.double(),o>>=ys;return a},precomputeWindow(i,o){let{windows:a,windowSize:s}=n(o),c=[],u=i,f=u;for(let l=0;l<a;l++){f=u,c.push(f);for(let p=1;p<s;p++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(i,o,a){let{windows:s,windowSize:c}=n(i),u=e.ZERO,f=e.BASE,l=BigInt(2**i-1),p=2**i,d=BigInt(i);for(let h=0;h<s;h++){let y=h*c,g=Number(a&l);a>>=d,g>c&&(g-=p,a+=ys);let m=y,x=y+Math.abs(g)-1,v=h%2!==0,C=g<0;g===0?f=f.add(r(v,o[m])):u=u.add(r(C,o[x]))}return{p:u,f}},wNAFCached(i,o,a,s){let c=i._WINDOW_SIZE||1,u=o.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&o.set(i,s(u))),this.wNAF(c,u,a)}}}function x0(e){return hs(e.Fp),$e(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...ds(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var _e=BigInt(0),he=BigInt(1),F1=BigInt(2),dl=BigInt(8),pl={zip215:!0};function yl(e){let t=x0(e);return $e(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function K1(e){let t=yl(e),{Fp:r,n,prehash:i,hash:o,randomBytes:a,nByteLength:s,h:c}=t,u=F1<<BigInt(s*8)-he,f=r.create,l=t.uvRatio||((k,A)=>{try{return{isValid:!0,value:r.sqrt(k*r.inv(A))}}catch{return{isValid:!1,value:_e}}}),p=t.adjustScalarBytes||(k=>k),d=t.domain||((k,A,F)=>{if(A.length||F)throw new Error("Contexts/pre-hash are not supported");return k}),h=k=>typeof k=="bigint"&&_e<k,y=(k,A)=>h(k)&&h(A)&&k<A,g=k=>k===_e||y(k,u);function m(k,A){if(y(k,A))return k;throw new Error(`Expected valid scalar < ${A}, got ${typeof k} ${k}`)}function x(k){return k===_e?k:m(k,n)}let v=new Map;function C(k){if(!(k instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(A,F,M,H){if(this.ex=A,this.ey=F,this.ez=M,this.et=H,!g(A))throw new Error("x required");if(!g(F))throw new Error("y required");if(!g(M))throw new Error("z required");if(!g(H))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(A){if(A instanceof E)throw new Error("extended point not allowed");let{x:F,y:M}=A||{};if(!g(F)||!g(M))throw new Error("invalid affine point");return new E(F,M,he,f(F*M))}static normalizeZ(A){let F=r.invertBatch(A.map(M=>M.ez));return A.map((M,H)=>M.toAffine(F[H])).map(E.fromAffine)}_setWindowSize(A){this._WINDOW_SIZE=A,v.delete(this)}assertValidity(){let{a:A,d:F}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:M,ey:H,ez:Z,et:tt}=this,ct=f(M*M),et=f(H*H),ot=f(Z*Z),Ut=f(ot*ot),Ct=f(ct*A),Yt=f(ot*f(Ct+et)),Wt=f(Ut+f(F*f(ct*et)));if(Yt!==Wt)throw new Error("bad point: equation left != right (1)");let Mt=f(M*H),Zt=f(Z*tt);if(Mt!==Zt)throw new Error("bad point: equation left != right (2)")}equals(A){C(A);let{ex:F,ey:M,ez:H}=this,{ex:Z,ey:tt,ez:ct}=A,et=f(F*ct),ot=f(Z*H),Ut=f(M*ct),Ct=f(tt*H);return et===ot&&Ut===Ct}is0(){return this.equals(E.ZERO)}negate(){return new E(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:A}=t,{ex:F,ey:M,ez:H}=this,Z=f(F*F),tt=f(M*M),ct=f(F1*f(H*H)),et=f(A*Z),ot=F+M,Ut=f(f(ot*ot)-Z-tt),Ct=et+tt,Yt=Ct-ct,Wt=et-tt,Mt=f(Ut*Yt),Zt=f(Ct*Wt),Qe=f(Ut*Wt),kr=f(Yt*Ct);return new E(Mt,Zt,kr,Qe)}add(A){C(A);let{a:F,d:M}=t,{ex:H,ey:Z,ez:tt,et:ct}=this,{ex:et,ey:ot,ez:Ut,et:Ct}=A;if(F===BigInt(-1)){let n2=f((Z-H)*(ot+et)),i2=f((Z+H)*(ot-et)),Ii=f(i2-n2);if(Ii===_e)return this.double();let o2=f(tt*F1*Ct),s2=f(ct*F1*Ut),a2=s2+o2,c2=i2+n2,u2=s2-o2,r6=f(a2*Ii),n6=f(c2*u2),i6=f(a2*u2),o6=f(Ii*c2);return new E(r6,n6,o6,i6)}let Yt=f(H*et),Wt=f(Z*ot),Mt=f(ct*M*Ct),Zt=f(tt*Ut),Qe=f((H+Z)*(et+ot)-Yt-Wt),kr=Zt-Mt,Qn=Zt+Mt,r2=f(Wt-F*Yt),J5=f(Qe*kr),j5=f(Qn*r2),t6=f(Qe*r2),e6=f(kr*Qn);return new E(J5,j5,e6,t6)}subtract(A){return this.add(A.negate())}wNAF(A){return N.wNAFCached(this,v,A,E.normalizeZ)}multiply(A){let{p:F,f:M}=this.wNAF(m(A,n));return E.normalizeZ([F,M])[0]}multiplyUnsafe(A){let F=x(A);return F===_e?L:this.equals(L)||F===he?this:this.equals(S)?this.wNAF(F).p:N.unsafeLadder(this,F)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return N.unsafeLadder(this,n).is0()}toAffine(A){let{ex:F,ey:M,ez:H}=this,Z=this.is0();A==null&&(A=Z?dl:r.inv(H));let tt=f(F*A),ct=f(M*A),et=f(H*A);if(Z)return{x:_e,y:he};if(et!==he)throw new Error("invZ was invalid");return{x:tt,y:ct}}clearCofactor(){let{h:A}=t;return A===he?this:this.multiplyUnsafe(A)}static fromHex(A,F=!1){let{d:M,a:H}=t,Z=r.BYTES;A=Rt("pointHex",A,Z);let tt=A.slice(),ct=A[Z-1];tt[Z-1]=ct&-129;let et=Br(tt);et===_e||(F?m(et,u):m(et,r.ORDER));let ot=f(et*et),Ut=f(ot-he),Ct=f(M*ot-H),{isValid:Yt,value:Wt}=l(Ut,Ct);if(!Yt)throw new Error("Point.fromHex: invalid y coordinate");let Mt=(Wt&he)===he,Zt=(ct&128)!==0;if(!F&&Wt===_e&&Zt)throw new Error("Point.fromHex: x=0 and x_0=1");return Zt!==Mt&&(Wt=f(-Wt)),E.fromAffine({x:Wt,y:et})}static fromPrivateKey(A){return q(A).point}toRawBytes(){let{x:A,y:F}=this.toAffine(),M=Xr(F,r.BYTES);return M[M.length-1]|=A&he?128:0,M}toHex(){return rr(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,he,f(t.Gx*t.Gy)),E.ZERO=new E(_e,he,he,_e);let{BASE:S,ZERO:L}=E,N=U1(E,s*8);function $(k){return ht(k,n)}function G(k){return $(Br(k))}function q(k){let A=s;k=Rt("private key",k,A);let F=Rt("hashed private key",o(k),2*A),M=p(F.slice(0,A)),H=F.slice(A,2*A),Z=G(M),tt=S.multiply(Z),ct=tt.toRawBytes();return{head:M,prefix:H,scalar:Z,point:tt,pointBytes:ct}}function j(k){return q(k).pointBytes}function lt(k=new Uint8Array,...A){let F=ir(...A);return G(o(d(F,Rt("context",k),!!i)))}function Qt(k,A,F={}){k=Rt("message",k),i&&(k=i(k));let{prefix:M,scalar:H,pointBytes:Z}=q(A),tt=lt(F.context,M,k),ct=S.multiply(tt).toRawBytes(),et=lt(F.context,ct,Z,k),ot=$(tt+et*H);x(ot);let Ut=ir(ct,Xr(ot,r.BYTES));return Rt("result",Ut,s*2)}let T=pl;function D(k,A,F,M=T){let{context:H,zip215:Z}=M,tt=r.BYTES;k=Rt("signature",k,2*tt),A=Rt("message",A),i&&(A=i(A));let ct=Br(k.slice(tt,2*tt)),et,ot,Ut;try{et=E.fromHex(F,Z),ot=E.fromHex(k.slice(0,tt),Z),Ut=S.multiplyUnsafe(ct)}catch{return!1}if(!Z&&et.isSmallOrder())return!1;let Ct=lt(H,ot.toRawBytes(),et.toRawBytes(),A);return ot.add(et.multiplyUnsafe(Ct)).subtract(Ut).clearCofactor().equals(E.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:j,sign:Qt,verify:D,ExtendedPoint:E,utils:{getExtendedPublicKey:q,randomPrivateKey:()=>a(r.BYTES),precompute(k=8,A=E.BASE){return A._setWindowSize(k),A.multiply(BigInt(3)),A}}}}var ms=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),L4=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Cx=BigInt(0),gl=BigInt(1),gs=BigInt(2),ml=BigInt(5),N4=BigInt(10),xl=BigInt(20),vl=BigInt(40),k4=BigInt(80);function bl(e){let t=ms,n=e*e%t*e%t,i=Et(n,gs,t)*n%t,o=Et(i,gl,t)*e%t,a=Et(o,ml,t)*o%t,s=Et(a,N4,t)*a%t,c=Et(s,xl,t)*s%t,u=Et(c,vl,t)*c%t,f=Et(u,k4,t)*u%t,l=Et(f,k4,t)*u%t,p=Et(l,N4,t)*a%t;return{pow_p_5_8:Et(p,gs,t)*e%t,b2:n}}function wl(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function El(e,t){let r=ms,n=ht(t*t*t,r),i=ht(n*n*t,r),o=bl(e*i).pow_p_5_8,a=ht(e*n*o,r),s=ht(t*a*a,r),c=a,u=ht(a*L4,r),f=s===e,l=s===ht(-e,r),p=s===ht(-e*L4,r);return f&&(a=c),(l||p)&&(a=u),T4(a,r)&&(a=ht(-a,r)),{isValid:f||l,value:a}}var or=O1(ms,void 0,!0),xs={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:or,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:as,randomBytes:On,adjustScalarBytes:wl,uvRatio:El},Fn=K1(xs);function D4(e,t,r){if(t.length>255)throw new Error("Context is too big");return _1(is("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var Bx=K1({...xs,domain:D4}),Tx=K1({...xs,domain:D4,prehash:as});var Sl=(or.ORDER+BigInt(3))/BigInt(8),_x=or.pow(gs,Sl),Rx=or.sqrt(or.neg(or.ONE)),Px=(or.ORDER-BigInt(5))/BigInt(8),Lx=BigInt(486662);var Nx=_4(or,or.neg(BigInt(486664)));var kx=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Dx=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),Ox=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Ux=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var Fx=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Kn=32,sr=64,M1=32;async function O4(){let e=Fn.utils.randomPrivateKey(),t=Fn.getPublicKey(e);return{privateKey:M4(e,t),publicKey:t}}async function U4(e){if(e.length!==M1)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=e,r=Fn.getPublicKey(t);return{privateKey:M4(t,r),publicKey:r}}async function F4(e,t){let r=e.subarray(0,M1);return Fn.sign(t,r)}async function K4(e,t,r){return Fn.verify(t,r,e)}function M4(e,t){let r=new Uint8Array(sr);for(let n=0;n<M1;n++)r[n]=e[n],r[M1+n]=t[n];return r}var vs={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function V1(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",o=e?.saltLength??16,a=e?.iterations??32767,s=Dt.get();r*=8;async function c(l,p){let d=s.getRandomValues(new Uint8Array(o)),h=s.getRandomValues(new Uint8Array(n)),y={name:t,iv:h};typeof p=="string"&&(p=pt(p));let g;if(p.length===0){g=await s.subtle.importKey("jwk",vs,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},v=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);g=await s.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}catch{g=await s.subtle.importKey("jwk",vs,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},v=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);g=await s.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}let m=await s.subtle.encrypt(y,g,l);return gt([d,y.iv,new Uint8Array(m)])}async function u(l,p){let d=l.subarray(0,o),h=l.subarray(o,o+n),y=l.subarray(o+n),g={name:t,iv:h};typeof p=="string"&&(p=pt(p));let m;if(p.length===0)try{let v={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},C=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await s.subtle.deriveKey(v,C,{name:t,length:r},!0,["decrypt"])}catch{m=await s.subtle.importKey("jwk",vs,{name:"AES-GCM"},!0,["decrypt"])}else{let v={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},C=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await s.subtle.deriveKey(v,C,{name:t,length:r},!0,["decrypt"])}let x=await s.subtle.decrypt(g,m,y);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Mn(e,t){let n=await V1().encrypt(e,t);return Or.encode(n)}var Vn={};Ft(Vn,{KeyType:()=>xt,PrivateKey:()=>Pe,PublicKey:()=>Re});var xt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(xt||(xt={}));var bs;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(bs||(bs={}));(function(e){e.codec=()=>En(bs)})(xt||(xt={}));var Re;(function(e){let t;e.codec=()=>(t==null&&(t=Fe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),xt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.Type=xt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Ue(r,e.codec()),e.decode=r=>Oe(r,e.codec())})(Re||(Re={}));var Pe;(function(e){let t;e.codec=()=>(t==null&&(t=Fe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),xt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.Type=xt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Ue(r,e.codec()),e.decode=r=>Oe(r,e.codec())})(Pe||(Pe={}));var v0=class{_key;constructor(t){this._key=qn(t,Kn)}async verify(t,r){return K4(this._key,r,t)}marshal(){return this._key}get bytes(){return Re.encode({Type:xt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}},jr=class{_key;_publicKey;constructor(t,r){this._key=qn(t,sr),this._publicKey=qn(r,Kn)}async sign(t){return F4(this._key,t)}get public(){return new v0(this._publicKey)}marshal(){return this._key}get bytes(){return Pe.encode({Type:xt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}async id(){let t=gr.digest(this.public.bytes);return Lt.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Mn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Al(e){if(e.length>sr){e=qn(e,sr+Kn);let n=e.subarray(0,sr),i=e.subarray(sr,e.length);return new jr(n,i)}e=qn(e,sr);let t=e.subarray(0,sr),r=e.subarray(Kn);return new jr(t,r)}function Cl(e){return e=qn(e,Kn),new v0(e)}async function Bl(){let{privateKey:e,publicKey:t}=await O4();return new jr(e,t)}async function ws(e){let{privateKey:t,publicKey:r}=await U4(e);return new jr(t,r)}function qn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new R(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var jx=St(kt(),1),tv=St(S1(),1),q4=St(ft(),1);function Le(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=gt([new Uint8Array(t-r.length),r])}return z(r,"base64url")}function de(e){let t=q1(e);return new q4.default.jsbn.BigInteger(z(t,"base16"),16)}function q1(e,t){let r=pt(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=gt([new Uint8Array(t-r.length),r])}return r}var z4={"P-256":256,"P-384":384,"P-521":521},Tl=Object.keys(z4),Ss=Tl.join(" / ");async function H4(e){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new R(`Unknown curve: ${e}. Must be ${Ss}`,"ERR_INVALID_CURVE");let t=await Dt.get().subtle.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"]),r=async(o,a)=>{let s;a!=null?s=await Dt.get().subtle.importKey("jwk",Rl(e,a),{name:"ECDH",namedCurve:e},!1,["deriveBits"]):s=t.privateKey;let c=await Dt.get().subtle.importKey("jwk",G4(e,o),{name:"ECDH",namedCurve:e},!1,[]),u=await Dt.get().subtle.deriveBits({name:"ECDH",namedCurve:e,public:c},s,z4[e]);return new Uint8Array(u,0,u.byteLength)},n=await Dt.get().subtle.exportKey("jwk",t.publicKey);return{key:_l(n),genSharedKey:r}}var $4={"P-256":32,"P-384":48,"P-521":66};function _l(e){if(e.crv==null||e.x==null||e.y==null)throw new R("JWK was missing components","ERR_INVALID_PARAMETERS");if(e.crv!=="P-256"&&e.crv!=="P-384"&&e.crv!=="P-521")throw new R(`Unknown curve: ${e.crv}. Must be ${Ss}`,"ERR_INVALID_CURVE");let t=$4[e.crv];return gt([Uint8Array.from([4]),q1(e.x,t),q1(e.y,t)],1+t*2)}function G4(e,t){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new R(`Unknown curve: ${e}. Must be ${Ss}`,"ERR_INVALID_CURVE");let r=$4[e];if(!dt(t.subarray(0,1),Uint8Array.from([4])))throw new R("Cannot unmarshal public key - invalid key format","ERR_INVALID_KEY_FORMAT");return{kty:"EC",crv:e,x:z(t.subarray(1,r+1),"base64url"),y:z(t.subarray(1+r),"base64url"),ext:!0}}var Rl=(e,t)=>({...G4(e,t.public),d:z(t.private,"base64url")});var Q4=H4;async function Y4(e,t){let r=Or.decode(e);return V1().decrypt(r,t)}var W4={"AES-128":{ivSize:16,keySize:16},"AES-256":{ivSize:16,keySize:32},Blowfish:{ivSize:8,keySize:32}};async function Z4(e,t,r){let n=W4[e];if(n==null){let x=Object.keys(W4).join(" / ");throw new R(`unknown cipher type '${e}'. Must be ${x}`,"ERR_INVALID_CIPHER_TYPE")}if(t==null)throw new R("missing hash type","ERR_MISSING_HASH_TYPE");let i=n.keySize,o=n.ivSize,a=20,s=pt("key expansion"),c=2*(o+i+a),u=await y3(t,r),f=await u.digest(s),l=[],p=0;for(;p<c;){let x=await u.digest(gt([f,s])),v=x.length;p+v>c&&(v=c-p),l.push(x),p+=v,f=await u.digest(f)}let d=c/2,h=gt(l),y=h.subarray(0,d),g=h.subarray(d,c),m=x=>({iv:x.subarray(0,o),cipherKey:x.subarray(o,o+i),macKey:x.subarray(o+i)});return{k1:m(y),k2:m(g)}}var Ts={};Ft(Ts,{MAX_KEY_SIZE:()=>S0,RsaPrivateKey:()=>zn,RsaPublicKey:()=>E0,fromJwk:()=>Ml,generateKeyPair:()=>Vl,unmarshalRsaPrivateKey:()=>Fl,unmarshalRsaPublicKey:()=>Kl});var w0=St(ft(),1);var qv=St(e5(),1);function en(e){if(isNaN(e)||e<=0)throw new R("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return On(e)}var Iv=St(C1(),1),Cs=St(ft(),1);function r5(e,t){return t.map(r=>de(e[r]))}function n5(e){return Cs.default.pki.setRsaPrivateKey(...r5(e,["n","e","d","p","q","dp","dq","qi"]))}function i5(e){return Cs.default.pki.setRsaPublicKey(...r5(e,["n","e"]))}var rn={};Ft(rn,{jwkToPkcs1:()=>Nl,jwkToPkix:()=>Dl,pkcs1ToJwk:()=>Ll,pkixToJwk:()=>kl});var Bv=St(d0(),1),Tv=St(C1(),1);var ar=St(ft(),1);function Ll(e){let t=ar.default.asn1.fromDer(z(e,"ascii")),r=ar.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Le(r.n),e:Le(r.e),d:Le(r.d),p:Le(r.p),q:Le(r.q),dp:Le(r.dP),dq:Le(r.dQ),qi:Le(r.qInv),alg:"RS256"}}function Nl(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new R("JWK was missing components","ERR_INVALID_PARAMETERS");let t=ar.default.pki.privateKeyToAsn1({n:de(e.n),e:de(e.e),d:de(e.d),p:de(e.p),q:de(e.q),dP:de(e.dp),dQ:de(e.dq),qInv:de(e.qi)});return pt(ar.default.asn1.toDer(t).getBytes(),"ascii")}function kl(e){let t=ar.default.asn1.fromDer(z(e,"ascii")),r=ar.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Le(r.n),e:Le(r.e)}}function Dl(e){if(e.n==null||e.e==null)throw new R("JWK was missing components","ERR_INVALID_PARAMETERS");let t=ar.default.pki.publicKeyToAsn1({n:de(e.n),e:de(e.e)});return pt(ar.default.asn1.toDer(t).getBytes(),"ascii")}async function o5(e){let t=await Dt.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await c5(t);return{privateKey:r[0],publicKey:r[1]}}async function Bs(e){let r=[await Dt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Ol(e)],n=await c5({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function s5(e,t){let r=await Dt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Dt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function a5(e,t,r){let n=await Dt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Dt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function c5(e){if(e.privateKey==null||e.publicKey==null)throw new R("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Dt.get().subtle.exportKey("jwk",e.privateKey),Dt.get().subtle.exportKey("jwk",e.publicKey)])}async function Ol(e){return Dt.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function u5(e,t,r,n){let i=t?i5(e):n5(e),o=z(Uint8Array.from(r),"ascii"),a=n(o,i);return pt(a,"ascii")}function f5(e,t){return u5(e,!0,t,(r,n)=>n.encrypt(r))}function l5(e,t){return u5(e,!1,t,(r,n)=>n.decrypt(r))}function z1(e){if(e.kty!=="RSA")throw new R("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new R("invalid key modulus","ERR_INVALID_KEY_MODULUS");return pt(e.n,"base64url").length*8}var S0=8192,E0=class{_key;constructor(t){this._key=t}async verify(t,r){return a5(this._key,r,t)}marshal(){return rn.jwkToPkix(this._key)}get bytes(){return Re.encode({Type:xt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return f5(this._key,t)}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}},zn=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return en(16)}async sign(t){return s5(this._key,t)}get public(){if(this._publicKey==null)throw new R("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new E0(this._publicKey)}decrypt(t){return l5(this._key,t)}marshal(){return rn.jwkToPkcs1(this._key)}get bytes(){return Pe.encode({Type:xt.RSA,Data:this.marshal()}).subarray()}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new w0.default.util.ByteBuffer(this.marshal()),i=w0.default.asn1.fromDer(n),o=w0.default.pki.privateKeyFromAsn1(i),a={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return w0.default.pki.encryptRsaPrivateKey(o,t,a)}else{if(r==="libp2p-key")return Mn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function Fl(e){let t=rn.pkcs1ToJwk(e);if(z1(t)>S0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await Bs(t);return new zn(r.privateKey,r.publicKey)}function Kl(e){let t=rn.pkixToJwk(e);if(z1(t)>S0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new E0(t)}async function Ml(e){if(z1(e)>S0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Bs(e);return new zn(t.privateKey,t.publicKey)}async function Vl(e){if(e>S0)throw new R("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await o5(e);return new zn(t.privateKey,t.publicKey)}var ks={};Ft(ks,{Secp256k1PrivateKey:()=>A0,Secp256k1PublicKey:()=>I0,generateKeyPair:()=>r9,unmarshalSecp256k1PrivateKey:()=>t9,unmarshalSecp256k1PublicKey:()=>e9});var ql=(e,t,r)=>e&t^~e&r,zl=(e,t,r)=>e&t^e&r^t&r,Hl=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),_r=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Rr=new Uint32Array(64),_s=class extends Un{constructor(){super(64,32,8,!1),this.A=_r[0]|0,this.B=_r[1]|0,this.C=_r[2]|0,this.D=_r[3]|0,this.E=_r[4]|0,this.F=_r[5]|0,this.G=_r[6]|0,this.H=_r[7]|0}get(){let{A:t,B:r,C:n,D:i,E:o,F:a,G:s,H:c}=this;return[t,r,n,i,o,a,s,c]}set(t,r,n,i,o,a,s,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=a|0,this.G=s|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)Rr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let p=Rr[l-15],d=Rr[l-2],h=Te(p,7)^Te(p,18)^p>>>3,y=Te(d,17)^Te(d,19)^d>>>10;Rr[l]=y+Rr[l-7]+h+Rr[l-16]|0}let{A:n,B:i,C:o,D:a,E:s,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let p=Te(s,6)^Te(s,11)^Te(s,25),d=f+p+ql(s,c,u)+Hl[l]+Rr[l]|0,y=(Te(n,2)^Te(n,13)^Te(n,22))+zl(n,i,o)|0;f=u,u=c,c=s,s=a+d|0,a=o,o=i,i=n,n=d+y|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,a=a+this.D|0,s=s+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,a,s,c,u,f)}roundClean(){Rr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var h5=R1(()=>new _s);function $l(e){let t=x0(e);$e(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a:i}=t;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Gl,hexToBytes:Ql}=k1,nn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=nn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:Gl(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=nn,r=typeof e=="string"?Ql(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:o}=nn._parseInt(r.subarray(2)),{d:a,l:s}=nn._parseInt(o);if(s.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:a}},hexFromSig(e){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},n=t(r(e.s)),i=t(r(e.r)),o=n.length/2,a=i.length/2,s=r(o),c=r(a);return`30${r(a+o+4)}02${c}${i}02${s}${n}`}},cr=BigInt(0),xe=BigInt(1),Xv=BigInt(2),d5=BigInt(3),Jv=BigInt(4);function Yl(e){let t=$l(e),{Fp:r}=t,n=t.toBytes||((h,y,g)=>{let m=y.toAffine();return ir(Uint8Array.from([4]),r.toBytes(m.x),r.toBytes(m.y))}),i=t.fromBytes||(h=>{let y=h.subarray(1),g=r.fromBytes(y.subarray(0,r.BYTES)),m=r.fromBytes(y.subarray(r.BYTES,2*r.BYTES));return{x:g,y:m}});function o(h){let{a:y,b:g}=t,m=r.sqr(h),x=r.mul(m,h);return r.add(r.add(x,r.mul(h,y)),g)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function a(h){return typeof h=="bigint"&&cr<h&&h<t.n}function s(h){if(!a(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:y,nByteLength:g,wrapPrivateKey:m,n:x}=t;if(y&&typeof h!="bigint"){if(h instanceof Uint8Array&&(h=rr(h)),typeof h!="string"||!y.includes(h.length))throw new Error("Invalid key");h=h.padStart(g*2,"0")}let v;try{v=typeof h=="bigint"?h:nr(Rt("private key",h,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof h}`)}return m&&(v=ht(v,x)),s(v),v}let u=new Map;function f(h){if(!(h instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(y,g,m){if(this.px=y,this.py=g,this.pz=m,y==null||!r.isValid(y))throw new Error("x required");if(g==null||!r.isValid(g))throw new Error("y required");if(m==null||!r.isValid(m))throw new Error("z required")}static fromAffine(y){let{x:g,y:m}=y||{};if(!y||!r.isValid(g)||!r.isValid(m))throw new Error("invalid affine point");if(y instanceof l)throw new Error("projective point not allowed");let x=v=>r.eql(v,r.ZERO);return x(g)&&x(m)?l.ZERO:new l(g,m,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(y){let g=r.invertBatch(y.map(m=>m.pz));return y.map((m,x)=>m.toAffine(g[x])).map(l.fromAffine)}static fromHex(y){let g=l.fromAffine(i(Rt("pointHex",y)));return g.assertValidity(),g}static fromPrivateKey(y){return l.BASE.multiply(c(y))}_setWindowSize(y){this._WINDOW_SIZE=y,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:y,y:g}=this.toAffine();if(!r.isValid(y)||!r.isValid(g))throw new Error("bad point: x or y not FE");let m=r.sqr(g),x=o(y);if(!r.eql(m,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y}=this.toAffine();if(r.isOdd)return!r.isOdd(y);throw new Error("Field doesn't support isOdd")}equals(y){f(y);let{px:g,py:m,pz:x}=this,{px:v,py:C,pz:E}=y,S=r.eql(r.mul(g,E),r.mul(v,x)),L=r.eql(r.mul(m,E),r.mul(C,x));return S&&L}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){let{a:y,b:g}=t,m=r.mul(g,d5),{px:x,py:v,pz:C}=this,E=r.ZERO,S=r.ZERO,L=r.ZERO,N=r.mul(x,x),$=r.mul(v,v),G=r.mul(C,C),q=r.mul(x,v);return q=r.add(q,q),L=r.mul(x,C),L=r.add(L,L),E=r.mul(y,L),S=r.mul(m,G),S=r.add(E,S),E=r.sub($,S),S=r.add($,S),S=r.mul(E,S),E=r.mul(q,E),L=r.mul(m,L),G=r.mul(y,G),q=r.sub(N,G),q=r.mul(y,q),q=r.add(q,L),L=r.add(N,N),N=r.add(L,N),N=r.add(N,G),N=r.mul(N,q),S=r.add(S,N),G=r.mul(v,C),G=r.add(G,G),N=r.mul(G,q),E=r.sub(E,N),L=r.mul(G,$),L=r.add(L,L),L=r.add(L,L),new l(E,S,L)}add(y){f(y);let{px:g,py:m,pz:x}=this,{px:v,py:C,pz:E}=y,S=r.ZERO,L=r.ZERO,N=r.ZERO,$=t.a,G=r.mul(t.b,d5),q=r.mul(g,v),j=r.mul(m,C),lt=r.mul(x,E),Qt=r.add(g,m),T=r.add(v,C);Qt=r.mul(Qt,T),T=r.add(q,j),Qt=r.sub(Qt,T),T=r.add(g,x);let D=r.add(v,E);return T=r.mul(T,D),D=r.add(q,lt),T=r.sub(T,D),D=r.add(m,x),S=r.add(C,E),D=r.mul(D,S),S=r.add(j,lt),D=r.sub(D,S),N=r.mul($,T),S=r.mul(G,lt),N=r.add(S,N),S=r.sub(j,N),N=r.add(j,N),L=r.mul(S,N),j=r.add(q,q),j=r.add(j,q),lt=r.mul($,lt),T=r.mul(G,T),j=r.add(j,lt),lt=r.sub(q,lt),lt=r.mul($,lt),T=r.add(T,lt),q=r.mul(j,T),L=r.add(L,q),q=r.mul(D,T),S=r.mul(Qt,S),S=r.sub(S,q),q=r.mul(Qt,j),N=r.mul(D,N),N=r.add(N,q),new l(S,L,N)}subtract(y){return this.add(y.negate())}is0(){return this.equals(l.ZERO)}wNAF(y){return d.wNAFCached(this,u,y,g=>{let m=r.invertBatch(g.map(x=>x.pz));return g.map((x,v)=>x.toAffine(m[v])).map(l.fromAffine)})}multiplyUnsafe(y){let g=l.ZERO;if(y===cr)return g;if(s(y),y===xe)return this;let{endo:m}=t;if(!m)return d.unsafeLadder(this,y);let{k1neg:x,k1:v,k2neg:C,k2:E}=m.splitScalar(y),S=g,L=g,N=this;for(;v>cr||E>cr;)v&xe&&(S=S.add(N)),E&xe&&(L=L.add(N)),N=N.double(),v>>=xe,E>>=xe;return x&&(S=S.negate()),C&&(L=L.negate()),L=new l(r.mul(L.px,m.beta),L.py,L.pz),S.add(L)}multiply(y){s(y);let g=y,m,x,{endo:v}=t;if(v){let{k1neg:C,k1:E,k2neg:S,k2:L}=v.splitScalar(g),{p:N,f:$}=this.wNAF(E),{p:G,f:q}=this.wNAF(L);N=d.constTimeNegate(C,N),G=d.constTimeNegate(S,G),G=new l(r.mul(G.px,v.beta),G.py,G.pz),m=N.add(G),x=$.add(q)}else{let{p:C,f:E}=this.wNAF(g);m=C,x=E}return l.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(y,g,m){let x=l.BASE,v=(E,S)=>S===cr||S===xe||!E.equals(x)?E.multiplyUnsafe(S):E.multiply(S),C=v(this,g).add(v(y,m));return C.is0()?void 0:C}toAffine(y){let{px:g,py:m,pz:x}=this,v=this.is0();y==null&&(y=v?r.ONE:r.inv(x));let C=r.mul(g,y),E=r.mul(m,y),S=r.mul(x,y);if(v)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:C,y:E}}isTorsionFree(){let{h:y,isTorsionFree:g}=t;if(y===xe)return!0;if(g)return g(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:y,clearCofactor:g}=t;return y===xe?this:g?g(l,this):this.multiplyUnsafe(t.h)}toRawBytes(y=!0){return this.assertValidity(),n(l,this,y)}toHex(y=!0){return rr(this.toRawBytes(y))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);let p=t.nBitLength,d=U1(l,t.endo?Math.ceil(p/2):p);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function Wl(e){let t=x0(e);return $e(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function p5(e){let t=Wl(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function a(T){return cr<T&&T<r.ORDER}function s(T){return ht(T,n)}function c(T){return D1(T,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:p}=Yl({...t,toBytes(T,D,P){let k=D.toAffine(),A=r.toBytes(k.x),F=ir;return P?F(Uint8Array.from([D.hasEvenY()?2:3]),A):F(Uint8Array.from([4]),A,r.toBytes(k.y))},fromBytes(T){let D=T.length,P=T[0],k=T.subarray(1);if(D===i&&(P===2||P===3)){let A=nr(k);if(!a(A))throw new Error("Point is not on curve");let F=l(A),M=r.sqrt(F),H=(M&xe)===xe;return(P&1)===1!==H&&(M=r.neg(M)),{x:A,y:M}}else if(D===o&&P===4){let A=r.fromBytes(k.subarray(0,r.BYTES)),F=r.fromBytes(k.subarray(r.BYTES,2*r.BYTES));return{x:A,y:F}}else throw new Error(`Point of length ${D} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}}),d=T=>rr(Tr(T,t.nByteLength));function h(T){let D=n>>xe;return T>D}function y(T){return h(T)?s(-T):T}let g=(T,D,P)=>nr(T.slice(D,P));class m{constructor(D,P,k){this.r=D,this.s=P,this.recovery=k,this.assertValidity()}static fromCompact(D){let P=t.nByteLength;return D=Rt("compactSignature",D,P*2),new m(g(D,0,P),g(D,P,2*P))}static fromDER(D){let{r:P,s:k}=nn.toSig(Rt("DER",D));return new m(P,k)}assertValidity(){if(!p(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!p(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(D){return new m(this.r,this.s,D)}recoverPublicKey(D){let{r:P,s:k,recovery:A}=this,F=L(Rt("msgHash",D));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");let M=A===2||A===3?P+t.n:P;if(M>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=A&1?"03":"02",Z=u.fromHex(H+d(M)),tt=c(M),ct=s(-F*tt),et=s(k*tt),ot=u.BASE.multiplyAndAddUnsafe(Z,ct,et);if(!ot)throw new Error("point at infinify");return ot.assertValidity(),ot}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,s(-this.s),this.recovery):this}toDERRawBytes(){return Zr(this.toDERHex())}toDERHex(){return nn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Zr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let x={isValidPrivateKey(T){try{return f(T),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let T=ps(t.n);return P4(t.randomBytes(T),t.n)},precompute(T=8,D=u.BASE){return D._setWindowSize(T),D.multiply(BigInt(3)),D}};function v(T,D=!0){return u.fromPrivateKey(T).toRawBytes(D)}function C(T){let D=T instanceof Uint8Array,P=typeof T=="string",k=(D||P)&&T.length;return D?k===i||k===o:P?k===2*i||k===2*o:T instanceof u}function E(T,D,P=!0){if(C(T))throw new Error("first arg must be private key");if(!C(D))throw new Error("second arg must be public key");return u.fromHex(D).multiply(f(T)).toRawBytes(P)}let S=t.bits2int||function(T){let D=nr(T),P=T.length*8-t.nBitLength;return P>0?D>>BigInt(P):D},L=t.bits2int_modN||function(T){return s(S(T))},N=m0(t.nBitLength);function $(T){if(typeof T!="bigint")throw new Error("bigint expected");if(!(cr<=T&&T<N))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Tr(T,t.nByteLength)}function G(T,D,P=q){if(["recovered","canonical"].some(Ct=>Ct in P))throw new Error("sign() legacy options not supported");let{hash:k,randomBytes:A}=t,{lowS:F,prehash:M,extraEntropy:H}=P;F==null&&(F=!0),T=Rt("msgHash",T),M&&(T=Rt("prehashed msgHash",k(T)));let Z=L(T),tt=f(D),ct=[$(tt),$(Z)];if(H!=null){let Ct=H===!0?A(r.BYTES):H;ct.push(Rt("extraEntropy",Ct))}let et=ir(...ct),ot=Z;function Ut(Ct){let Yt=S(Ct);if(!p(Yt))return;let Wt=c(Yt),Mt=u.BASE.multiply(Yt).toAffine(),Zt=s(Mt.x);if(Zt===cr)return;let Qe=s(Wt*s(ot+Zt*tt));if(Qe===cr)return;let kr=(Mt.x===Zt?0:2)|Number(Mt.y&xe),Qn=Qe;return F&&h(Qe)&&(Qn=y(Qe),kr^=1),new m(Zt,Qn,kr)}return{seed:et,k2sig:Ut}}let q={lowS:t.lowS,prehash:!1},j={lowS:t.lowS,prehash:!1};function lt(T,D,P=q){let{seed:k,k2sig:A}=G(T,D,P),F=t;return fs(F.hash.outputLen,F.nByteLength,F.hmac)(k,A)}u.BASE._setWindowSize(8);function Qt(T,D,P,k=j){let A=T;if(D=Rt("msgHash",D),P=Rt("publicKey",P),"strict"in k)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:M}=k,H,Z;try{if(typeof A=="string"||A instanceof Uint8Array)try{H=m.fromDER(A)}catch(Mt){if(!(Mt instanceof nn.Err))throw Mt;H=m.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:Mt,s:Zt}=A;H=new m(Mt,Zt)}else throw new Error("PARSE");Z=u.fromHex(P)}catch(Mt){if(Mt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&H.hasHighS())return!1;M&&(D=t.hash(D));let{r:tt,s:ct}=H,et=L(D),ot=c(ct),Ut=s(et*ot),Ct=s(tt*ot),Yt=u.BASE.multiplyAndAddUnsafe(Z,Ut,Ct)?.toAffine();return Yt?s(Yt.x)===tt:!1}return{CURVE:t,getPublicKey:v,getSharedSecret:E,sign:lt,verify:Qt,ProjectivePoint:u,Signature:m,utils:x}}var H1=class extends Dn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,v4(t);let n=g0(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,o=new Uint8Array(i);o.set(n.length>i?t.create().update(n).digest():n);for(let a=0;a<o.length;a++)o[a]^=54;this.iHash.update(o),this.oHash=t.create();for(let a=0;a<o.length;a++)o[a]^=106;this.oHash.update(o),o.fill(0)}update(t){return kn(this),this.iHash.update(t),this}digestInto(t){kn(this),ns(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:o,blockLen:a,outputLen:s}=this;return t=t,t.finished=i,t.destroyed=o,t.blockLen=a,t.outputLen=s,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Rs=(e,t,r)=>new H1(e,t).update(r).digest();Rs.create=(e,t)=>new H1(e,t);function Zl(e){return{hash:e,hmac:(t,...r)=>Rs(e,t,_1(...r)),randomBytes:On}}function y5(e,t){let r=n=>p5({...e,...Zl(n)});return Object.freeze({...r(t),create:r})}var x5=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),g5=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Xl=BigInt(1),Ps=BigInt(2),m5=(e,t)=>(e+t/Ps)/t;function Jl(e){let t=x5,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),a=BigInt(23),s=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=Et(f,r,t)*f%t,p=Et(l,r,t)*f%t,d=Et(p,Ps,t)*u%t,h=Et(d,i,t)*d%t,y=Et(h,o,t)*h%t,g=Et(y,s,t)*y%t,m=Et(g,c,t)*g%t,x=Et(m,s,t)*y%t,v=Et(x,r,t)*f%t,C=Et(v,a,t)*h%t,E=Et(C,n,t)*u%t,S=Et(E,Ps,t);if(!Ls.eql(Ls.sqr(S),e))throw new Error("Cannot find square root");return S}var Ls=O1(x5,void 0,void 0,{sqrt:Jl}),ur=y5({a:BigInt(0),b:BigInt(7),Fp:Ls,n:g5,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=g5,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Xl*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,a=BigInt("0x100000000000000000000000000000000"),s=m5(o*e,t),c=m5(-n*e,t),u=ht(e-s*r-c*i,t),f=ht(-s*n-c*o,t),l=u>a,p=f>a;if(l&&(u=t-u),p&&(f=t-f),u>a||f>a)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:p,k2:f}}}},h5),fb=BigInt(0);var lb=ur.ProjectivePoint;function v5(){return ur.utils.randomPrivateKey()}async function b5(e,t){let{digest:r}=await It.digest(t);try{return ur.sign(r,e).toDERRawBytes()}catch(n){throw new R(String(n),"ERR_INVALID_INPUT")}}async function w5(e,t,r){try{let{digest:n}=await It.digest(r);return ur.verify(t,n,e)}catch(n){throw new R(String(n),"ERR_INVALID_INPUT")}}function E5(e){return ur.ProjectivePoint.fromHex(e).toRawBytes(!0)}function S5(e){try{ur.getPublicKey(e,!0)}catch(t){throw new R(String(t),"ERR_INVALID_PRIVATE_KEY")}}function Ns(e){try{ur.ProjectivePoint.fromHex(e)}catch(t){throw new R(String(t),"ERR_INVALID_PUBLIC_KEY")}}function I5(e){try{return ur.getPublicKey(e,!0)}catch(t){throw new R(String(t),"ERR_INVALID_PRIVATE_KEY")}}var I0=class{_key;constructor(t){Ns(t),this._key=t}async verify(t,r){return w5(this._key,r,t)}marshal(){return E5(this._key)}get bytes(){return Re.encode({Type:xt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}},A0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??I5(t),S5(this._key),Ns(this._publicKey)}async sign(t){return b5(this._key,t)}get public(){return new I0(this._publicKey)}marshal(){return this._key}get bytes(){return Pe.encode({Type:xt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return dt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await It.digest(this.bytes);return t}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Mn(this.bytes,t);throw new R(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function t9(e){return new A0(e)}function e9(e){return new I0(e)}async function r9(){let e=v5();return new A0(e)}var Ge={rsa:Ts,ed25519:Es,secp256k1:ks};function Ds(e){let t=Object.keys(Ge).join(" / ");return new R(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Os(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return Ge[e];throw Ds(e)}async function n9(e,t){return Os(e).generateKeyPair(t??2048)}async function i9(e,t,r){if(e.toLowerCase()!=="ed25519")throw new R("Seed key derivation is unimplemented for RSA or secp256k1","ERR_UNSUPPORTED_KEY_DERIVATION_TYPE");return ws(t)}function o9(e){let t=Re.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case xt.RSA:return Ge.rsa.unmarshalRsaPublicKey(r);case xt.Ed25519:return Ge.ed25519.unmarshalEd25519PublicKey(r);case xt.Secp256k1:return Ge.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw Ds(t.Type??"unknown")}}function s9(e,t){return t=(t??"rsa").toLowerCase(),Os(t),e.bytes}async function A5(e){let t=Pe.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case xt.RSA:return Ge.rsa.unmarshalRsaPrivateKey(r);case xt.Ed25519:return Ge.ed25519.unmarshalEd25519PrivateKey(r);case xt.Secp256k1:return Ge.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw Ds(t.Type??"RSA")}}function a9(e,t){return t=(t??"rsa").toLowerCase(),Os(t),e.bytes}async function c9(e,t){try{let i=await Y4(e,t);return await A5(i)}catch{}let r=$1.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new R("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=$1.default.asn1.toDer($1.default.pki.privateKeyToAsn1(r));return n=pt(n.getBytes(),"ascii"),Ge.rsa.unmarshalRsaPrivateKey(n)}var u9=St(Qo(),1),f9=St(kt(),1);function Q1(e,t){for(let r=0;r<e.byteLength;r++){if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return e.byteLength>t.byteLength?1:e.byteLength<t.byteLength?-1:0}function fr(e,t){if(e.length!==t.length)throw new Error("Inputs should have the same length");let r=zt(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return We(r)}var Y1=class{originDhtKey;capacity;peerDistances;constructor(t,r){this.originDhtKey=t,this.capacity=r,this.peerDistances=[]}get length(){return this.peerDistances.length}get peers(){return this.peerDistances.map(t=>t.peerId)}async add(t){if(this.peerDistances.find(i=>i.peerId.equals(t))!=null)return;let r=await Ae(t),n={peerId:t,distance:fr(this.originDhtKey,r)};this.peerDistances.push(n),this.peerDistances.sort((i,o)=>Q1(i.distance,o.distance)),this.peerDistances=this.peerDistances.slice(0,this.capacity)}async anyCloser(t){if(t.length===0)return!1;if(this.length===0)return!0;let r=await Promise.all(t.map(Ae)),n=this.peerDistances[this.peerDistances.length-1].distance;for(let i of r){let o=fr(this.originDhtKey,i);if(Q1(o,n)<0)return!0}return!1}};var W1=class{components;log;routingTable;network;validators;queryManager;constructor(t,r){let{routingTable:n,network:i,validators:o,queryManager:a,lan:s}=r;this.components=t,this.routingTable=n,this.network=i,this.validators=o,this.queryManager=a,this.log=X(`libp2p:kad-dht:${s?"lan":"wan"}:peer-routing`)}async findPeerLocal(t){let r,n=await this.routingTable.find(t);if(n!=null){this.log("findPeerLocal found %p in routing table",t);try{r=await this.components.peerStore.get(n)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}}if(r==null)try{r=await this.components.peerStore.get(t)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}if(r!=null)return this.log("findPeerLocal found %p in peer store",t),{id:r.id,multiaddrs:r.addresses.map(i=>i.multiaddr),protocols:[]}}async*_getValueSingle(t,r,n={}){let i=new _t(Nt.GET_VALUE,r,0);yield*this.network.sendRequest(t,i,n)}async*getPublicKeyFromNode(t,r={}){let n=Va(t);for await(let i of this._getValueSingle(t,n,r))if(yield i,i.name==="PEER_RESPONSE"&&i.record!=null){let o=await oa(G1.marshalPublicKey({bytes:i.record.value}));if(!o.equals(t))throw new R("public key does not match id","ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID");if(o.publicKey==null)throw new R("public key missing","ERR_PUBLIC_KEY_MISSING");yield c0({from:t,value:o.publicKey},r)}throw new R(`Node not responding with its public key: ${t.toString()}`,"ERR_INVALID_RECORD")}async*findPeer(t,r={}){this.log("findPeer %p",t);let n=await this.findPeerLocal(t);if(n!=null){this.log("found local"),yield t1({from:this.components.peerId,peer:n},r);return}let i=this,o=async function*({peer:s,signal:c}){let u=new _t(Nt.FIND_NODE,t.toBytes(),0);for await(let f of i.network.sendRequest(s,u,{...r,signal:c}))if(yield f,f.name==="PEER_RESPONSE"){let l=f.closer.find(p=>p.id.equals(t));l!=null&&(yield t1({from:f.from,peer:l},r))}},a=!1;for await(let s of this.queryManager.run(t.toBytes(),o,r))s.name==="FINAL_PEER"&&(a=!0),yield s;a||(yield ne({from:this.components.peerId,error:new R("Not found","ERR_NOT_FOUND")},r))}async*getClosestPeers(t,r={}){this.log("getClosestPeers to %b",t);let n=await br(t),i=this.routingTable.closestPeers(n),o=this,a=new Y1(n,this.routingTable.kBucketSize);await Promise.all(i.map(async c=>{await a.add(c)}));let s=async function*({peer:c,signal:u}){o.log("closerPeersSingle %s from %p",z(t,"base32"),c);let f=new _t(Nt.FIND_NODE,t,0);yield*o.network.sendRequest(c,f,{...r,signal:u})};for await(let c of this.queryManager.run(t,s,r))yield c,c.name==="PEER_RESPONSE"&&await Promise.all(c.closer.map(async u=>{await a.add(u.id)}));this.log("found %d peers close to %b",a.length,t);for(let c of a.peers)try{let u=await this.components.peerStore.get(c);yield t1({from:this.components.peerId,peer:{id:c,multiaddrs:u.addresses.map(({multiaddr:f})=>f),protocols:u.protocols}},r)}catch(u){if(u.code!=="ERR_NOT_FOUND")throw u}}async*getValueOrPeers(t,r,n={}){for await(let i of this._getValueSingle(t,r,n)){if(i.name==="PEER_RESPONSE"&&i.record!=null)try{await this._verifyRecordOnline(i.record)}catch{let a="invalid record received, discarded";this.log(a),yield ne({from:i.from,error:new R(a,"ERR_INVALID_RECORD")},n);continue}yield i}}async _verifyRecordOnline(t){if(t.timeReceived==null)throw new R("invalid record received","ERR_INVALID_RECORD");await Sn(this.validators,new Vt(t.key,t.value,t.timeReceived))}async getCloserPeersOffline(t,r){let n=await br(t),i=this.routingTable.closestPeers(n),o=[];for(let a of i)if(!a.equals(r))try{let s=await this.components.peerStore.get(a);o.push({id:a,multiaddrs:s.addresses.map(({multiaddr:c})=>c),protocols:s.protocols})}catch(s){if(s.code!=="ERR_NOT_FOUND")throw s}return o.length>0?this.log("getCloserPeersOffline found %d peer(s) closer to %b than %p",o.length,t,r):this.log("getCloserPeersOffline could not find peer closer to %b than %p",t,r),o}};var K5=St(B5(),1);var Fs=St(_5(),1);var B0=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Ks=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},R5=e=>globalThis.DOMException===void 0?new Ks(e):new DOMException(e),P5=e=>{let t=e.reason===void 0?R5("This operation was aborted."):e.reason;return t instanceof Error?t:R5(t)};function Ms(e,t,r,n){let i,o=new Promise((a,s)=>{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){a(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&s(P5(c)),c.addEventListener("abort",()=>{s(P5(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{a(r())}catch(f){s(f)}return}let c=typeof r=="string"?r:`Promise timed out after ${t} milliseconds`,u=r instanceof Error?r:new B0(c);typeof e.cancel=="function"&&e.cancel(),s(u)},t),(async()=>{try{a(await e)}catch(c){s(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return o.clear=()=>{clearTimeout(i),i=void 0},o}function Vs(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),a=n+o;r(e[a],t)<=0?(n=++a,i-=o+1):i=o}return n}var on=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},lr,qs=class{constructor(){lr.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&on(this,lr,"f")[this.size-1].priority>=r.priority){on(this,lr,"f").push(n);return}let i=Vs(on(this,lr,"f"),n,(o,a)=>a.priority-o.priority);on(this,lr,"f").splice(i,0,n)}dequeue(){let t=on(this,lr,"f").shift();return t?.run}filter(t){return on(this,lr,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return on(this,lr,"f").length}};lr=new WeakMap;var L5=qs;var At=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},K=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Ot,_0,R0,Lr,ri,P0,X1,Ne,T0,pe,J1,ye,L0,Pr,j1,N5,k5,U5,D5,O5,ti,zs,Hs,ni,F5,ei,ii=class extends Error{},$s=class extends Fs.default{constructor(t){var r,n,i,o;if(super(),Ot.add(this),_0.set(this,void 0),R0.set(this,void 0),Lr.set(this,0),ri.set(this,void 0),P0.set(this,void 0),X1.set(this,0),Ne.set(this,void 0),T0.set(this,void 0),pe.set(this,void 0),J1.set(this,void 0),ye.set(this,0),L0.set(this,void 0),Pr.set(this,void 0),j1.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:L5,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(o=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&o!==void 0?o:""}\` (${typeof t.interval})`);At(this,_0,t.carryoverConcurrencyCount,"f"),At(this,R0,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),At(this,ri,t.intervalCap,"f"),At(this,P0,t.interval,"f"),At(this,pe,new t.queueClass,"f"),At(this,J1,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,At(this,j1,t.throwOnTimeout===!0,"f"),At(this,Pr,t.autoStart===!1,"f")}get concurrency(){return K(this,L0,"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})`);At(this,L0,t,"f"),K(this,Ot,"m",ni).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:K(this,j1,"f"),...r},new Promise((n,i)=>{K(this,pe,"f").enqueue(async()=>{var o,a,s;At(this,ye,(a=K(this,ye,"f"),a++,a),"f"),At(this,Lr,(s=K(this,Lr,"f"),s++,s),"f");try{if(!((o=r.signal)===null||o===void 0)&&o.aborted)throw new ii("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=Ms(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,K(this,Ot,"m",F5).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof B0&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{K(this,Ot,"m",U5).call(this)}},r),this.emit("add"),K(this,Ot,"m",ti).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return K(this,Pr,"f")?(At(this,Pr,!1,"f"),K(this,Ot,"m",ni).call(this),this):this}pause(){At(this,Pr,!0,"f")}clear(){At(this,pe,new(K(this,J1,"f")),"f")}async onEmpty(){K(this,pe,"f").size!==0&&await K(this,Ot,"m",ei).call(this,"empty")}async onSizeLessThan(t){K(this,pe,"f").size<t||await K(this,Ot,"m",ei).call(this,"next",()=>K(this,pe,"f").size<t)}async onIdle(){K(this,ye,"f")===0&&K(this,pe,"f").size===0||await K(this,Ot,"m",ei).call(this,"idle")}get size(){return K(this,pe,"f").size}sizeBy(t){return K(this,pe,"f").filter(t).length}get pending(){return K(this,ye,"f")}get isPaused(){return K(this,Pr,"f")}};_0=new WeakMap,R0=new WeakMap,Lr=new WeakMap,ri=new WeakMap,P0=new WeakMap,X1=new WeakMap,Ne=new WeakMap,T0=new WeakMap,pe=new WeakMap,J1=new WeakMap,ye=new WeakMap,L0=new WeakMap,Pr=new WeakMap,j1=new WeakMap,Ot=new WeakSet,N5=function(){return K(this,R0,"f")||K(this,Lr,"f")<K(this,ri,"f")},k5=function(){return K(this,ye,"f")<K(this,L0,"f")},U5=function(){var t;At(this,ye,(t=K(this,ye,"f"),t--,t),"f"),K(this,Ot,"m",ti).call(this),this.emit("next")},D5=function(){K(this,Ot,"m",Hs).call(this),K(this,Ot,"m",zs).call(this),At(this,T0,void 0,"f")},O5=function(){let t=Date.now();if(K(this,Ne,"f")===void 0){let r=K(this,X1,"f")-t;if(r<0)At(this,Lr,K(this,_0,"f")?K(this,ye,"f"):0,"f");else return K(this,T0,"f")===void 0&&At(this,T0,setTimeout(()=>{K(this,Ot,"m",D5).call(this)},r),"f"),!0}return!1},ti=function(){if(K(this,pe,"f").size===0)return K(this,Ne,"f")&&clearInterval(K(this,Ne,"f")),At(this,Ne,void 0,"f"),this.emit("empty"),K(this,ye,"f")===0&&this.emit("idle"),!1;if(!K(this,Pr,"f")){let t=!K(this,Ot,"a",O5);if(K(this,Ot,"a",N5)&&K(this,Ot,"a",k5)){let r=K(this,pe,"f").dequeue();return r?(this.emit("active"),r(),t&&K(this,Ot,"m",zs).call(this),!0):!1}}return!1},zs=function(){K(this,R0,"f")||K(this,Ne,"f")!==void 0||(At(this,Ne,setInterval(()=>{K(this,Ot,"m",Hs).call(this)},K(this,P0,"f")),"f"),At(this,X1,Date.now()+K(this,P0,"f"),"f"))},Hs=function(){K(this,Lr,"f")===0&&K(this,ye,"f")===0&&K(this,Ne,"f")&&(clearInterval(K(this,Ne,"f")),At(this,Ne,void 0,"f")),At(this,Lr,K(this,_0,"f")?K(this,ye,"f"):0,"f"),K(this,Ot,"m",ni).call(this)},ni=function(){for(;K(this,Ot,"m",ti).call(this););},F5=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new ii("The task was aborted."))},{once:!0})})},ei=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var Hn=$s;var hr=X("libp2p:kad-dht:providers"),oi=class{components;cache;cleanupInterval;provideValidity;syncQueue;started;cleaner;constructor(t,r={}){let{cacheSize:n,cleanupInterval:i,provideValidity:o}=r;this.components=t,this.cleanupInterval=i??36e5,this.provideValidity=o??864e5,this.cache=(0,K5.default)(n??256),this.syncQueue=new Hn({concurrency:1}),this.started=!1}isStarted(){return this.started}async start(){this.started||(this.started=!0,this.cleaner=setInterval(()=>{this._cleanup().catch(t=>{hr.error(t)})},this.cleanupInterval))}async stop(){this.started=!1,this.cleaner!=null&&(clearInterval(this.cleaner),this.cleaner=void 0)}async _cleanup(){await this.syncQueue.add(async()=>{let t=Date.now(),r=0,n=0,i=new Map,o=this.components.datastore.batch(),a=this.components.datastore.query({prefix:Ui});for await(let s of a)try{let{cid:c,peerId:u}=M5(s.key),f=V5(s.value).getTime(),l=Date.now(),p=l-f,d=p>this.provideValidity;if(hr("comparing: %d - %d = %d > %d %s",l,f,p,this.provideValidity,d?"(expired)":""),d){n++,o.delete(s.key);let h=i.get(c)??new Set;h.add(u),i.set(c,h)}r++}catch(c){hr.error(c.message)}i.size>0?(hr("deleting %d / %d entries",n,r),await o.commit()):hr("nothing to delete");for(let[s,c]of i){let u=N0(s),f=this.cache.get(u);if(f!=null){for(let l of c)f.delete(l);f.size===0?this.cache.remove(u):this.cache.set(u,f)}}hr("Cleanup successful (%dms)",Date.now()-t)})}async _getProvidersMap(t){let r=N0(t),n=this.cache.get(r);return n==null&&(n=await m9(this.components.datastore,t),this.cache.set(r,n)),n}async addProvider(t,r){await this.syncQueue.add(async()=>{hr("%p provides %s",r,t);let n=await this._getProvidersMap(t);hr("loaded %s provs",n.size);let i=new Date;n.set(r.toString(),i);let o=N0(t);this.cache.set(o,n),await g9(this.components.datastore,t,r,i)})}async getProviders(t){return this.syncQueue.add(async()=>(hr("get providers for %s",t),[...(await this._getProvidersMap(t)).keys()].map(n=>Tt(n))),{throwOnTimeout:!0})}};function N0(e){let t=typeof e=="string"?e:z(e.multihash.bytes,"base32");return`${Ui}/${t}`}async function g9(e,t,r,n){let i=[N0(t),"/",r.toString()].join(""),o=new In(i),a=De(n.getTime());await e.put(o,a)}function M5(e){let t=e.toString().split("/");if(t.length!==5)throw new Error(`incorrectly formatted provider entry key in datastore: ${e.toString()}`);return{cid:t[3],peerId:t[4]}}async function m9(e,t){let r=new Map,n=e.query({prefix:N0(t)});for await(let i of n){let{peerId:o}=M5(i.key);r.set(o,V5(i.value))}return r}function V5(e){return new Date(Se(e))}function dr(e,t){let r={[Symbol.iterator]:()=>r,next:()=>{let n=e.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return r}var Gs=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return dr(this.map.entries(),t=>[Tt(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,Tt(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,r){this.map.set(t.toString(),r)}keys(){return dr(this.map.keys(),t=>Tt(t))}values(){return this.map.values()}get size(){return this.map.size}};var Nr=class e{set;constructor(t){if(this.set=new Set,t!=null)for(let r of t)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return dr(this.set.entries(),t=>{let r=Tt(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=Tt(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return dr(this.set.values(),t=>Tt(t))}intersection(t){let r=new e;for(let n of t)this.has(n)&&r.add(n);return r}difference(t){let r=new e;for(let n of this)t.has(n)||r.add(n);return r}union(t){let r=new e;for(let n of t)r.add(n);for(let n of this)r.add(n);return r}};var Qs=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return dr(this.list.entries(),t=>Tt(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return dr(this.list.entries(),t=>[t[0],Tt(t[1])])}every(t){return this.list.every((r,n)=>t(Tt(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let o=Tt(n);t(o,i,this)&&r.push(o)}),r}find(t){let r=this.list.find((n,i)=>t(Tt(n),i,this));if(r!=null)return Tt(r)}findIndex(t){return this.list.findIndex((r,n)=>t(Tt(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(Tt(r),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return Tt(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return Tt(t)}unshift(...t){let r=this.list.length;for(let n=t.length-1;n>-1;n--)r=this.list.unshift(t[n].toString());return r}get length(){return this.list.length}};function $n(e){let t=new globalThis.AbortController;function r(){t.abort();for(let o of e)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}for(let o of e){if(o?.aborted===!0){r();break}o?.addEventListener!=null&&o.addEventListener("abort",r)}function n(){for(let o of e)o?.removeEventListener!=null&&o.removeEventListener("abort",r)}let i=t.signal;return i.clear=n,i}var x9=BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");async function*q5(e){let{key:t,startingPeer:r,ourPeerId:n,signal:i,query:o,alpha:a,pathIndex:s,numPaths:c,cleanUp:u,queryFuncTimeout:f,log:l,peersSeen:p}=e,d=new Hn({concurrency:a}),h=await br(t);function y(g,m){if(g==null)return;p.add(g);let x=BigInt("0x"+z(fr(m,h),"base16"));d.add(async()=>{let v=[i];f!=null&&v.push(AbortSignal.timeout(f));let C=$n(v);try{for await(let E of o({key:t,peer:g,signal:C,pathIndex:s,numPaths:c})){if(C.aborted)return;if(E.name==="PEER_RESPONSE")for(let S of E.closer){if(p.has(S.id)){l("already seen %p in query",S.id);continue}if(n.equals(S.id)){l("not querying ourselves");continue}let L=await Ae(S.id);if(BigInt("0x"+z(fr(L,h),"base16"))>x){l("skipping %p as they are not closer to %b than %p",S.id,t,g);continue}l("querying closer peer %p",S.id),y(S.id,L)}d.emit("completed",E)}}catch(E){if(!i.aborted)return ne({from:g,error:E},e)}finally{C.clear()}},{priority:x9-x}).catch(v=>{l.error(v)})}y(r,await Ae(r)),yield*v9(d,i,u,l)}async function*v9(e,t,r,n){let i=Jt(),o=!0,a=[],s=()=>{o&&(n("clean up queue, results %d, queue size %d, pending tasks %d",a.length,e.size,e.pending),o=!1,e.clear(),a.splice(0,a.length))};for(e.on("completed",c=>{a.push(c),i.resolve()}),e.on("error",c=>{n("queue error",c),s(),i.reject(c)}),e.on("idle",()=>{n("queue idle"),o=!1,i.resolve()}),t.addEventListener("abort",()=>{n("abort queue");let c=o;s(),c&&i.reject(new R("Query aborted","ERR_QUERY_ABORTED"))}),r.addEventListener("cleanup",()=>{s(),i.resolve()});o;)for(await i.promise,i=Jt();a.length>0;){let c=a.shift();c!=null&&(yield c)}yield*a}var ai=class{components;lan;disjointPaths;alpha;shutDownController;running;queries;metrics;routingTable;initialQuerySelfHasRun;constructor(t,r){let{lan:n=!1,disjointPaths:i=20,alpha:o=3}=r;this.components=t,this.disjointPaths=i??20,this.running=!1,this.alpha=o??3,this.lan=n,this.queries=0,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun,this.routingTable=r.routingTable,this.shutDownController=new AbortController,sn(1/0,this.shutDownController.signal)}isStarted(){return this.running}async start(){this.running=!0,this.components.metrics!=null&&this.metrics==null&&(this.metrics={runningQueries:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_running_queries`),queryTime:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_query_time_seconds`)})}async stop(){this.running=!1,this.shutDownController.abort()}async*run(t,r,n={}){if(!this.running)throw new Error("QueryManager not started");let i=this.metrics?.queryTime.timer();n.signal==null&&(n.signal=AbortSignal.timeout(3e4),sn(1/0,n.signal));let o=$n([this.shutDownController.signal,n.signal]);sn(1/0,o);let a=X(`libp2p:kad-dht:${this.lan?"lan":"wan"}:query:`+z(t,"base58btc")),s=Date.now(),c=new Xt;try{n.isSelfQuery!==!0&&this.initialQuerySelfHasRun!=null&&(a("waiting for initial query-self query before continuing"),await Promise.race([new Promise((h,y)=>{o.addEventListener("abort",()=>{y(new F0("Query was aborted before self-query ran"))})}),this.initialQuerySelfHasRun.promise]),this.initialQuerySelfHasRun=void 0),a("query:start"),this.queries++,this.metrics?.runningQueries.update(this.queries);let u=await br(t),f=this.routingTable.closestPeers(u),l=f.slice(0,Math.min(this.disjointPaths,f.length));if(f.length===0){a.error("Running query with no peers");return}let p=new Nr,d=l.map((h,y)=>q5({key:t,startingPeer:h,ourPeerId:this.components.peerId,signal:o,query:r,pathIndex:y,numPaths:l.length,alpha:this.alpha,cleanUp:c,queryFuncTimeout:n.queryFuncTimeout,log:a,peersSeen:p,onProgress:n.onProgress}));for await(let h of be(...d))yield h,h.name==="QUERY_ERROR"&&a("error",h.error)}catch(u){if(!(!this.running&&u.code==="ERR_QUERY_ABORTED"))throw u}finally{o.clear(),this.queries--,this.metrics?.runningQueries.update(this.queries),i?.(),c.dispatchEvent(new Pt("cleanup")),a("query:done in %dms",Date.now()-s)}}};function w9(e){return e[Symbol.asyncIterator]!=null}function E9(e){if(w9(e))return(async()=>{let t=0;for await(let r of e)t++;return t})();{let t=0;for(let r of e)t++;return t}}var ci=E9;function S9(e){return e[Symbol.asyncIterator]!=null}function I9(e,t){return S9(e)?async function*(){let r=0;if(!(t<1)){for await(let n of e)if(yield n,r++,r===t)return}}():function*(){let r=0;if(!(t<1)){for(let n of e)if(yield n,r++,r===t)return}}()}var z5=I9;var ui=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Ys=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},H5=e=>globalThis.DOMException===void 0?new Ys(e):new DOMException(e),$5=e=>{let t=e.reason===void 0?H5("This operation was aborted."):e.reason;return t instanceof Error?t:H5(t)};function Ws(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,a,c=new Promise((u,f)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(t.signal){let{signal:p}=t;p.aborted&&f($5(p)),p.addEventListener("abort",()=>{f($5(p))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new ui;a=o.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(p){f(p)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?u():i instanceof Error?f(i):(l.message=i??`Promise timed out after ${r} milliseconds`,f(l))},r),(async()=>{try{u(await e)}catch(p){f(p)}})()}).finally(()=>{c.clear()});return c.clear=()=>{o.clearTimeout.call(void 0,a),a=void 0},c}var A9=e=>{let t=e.on||e.addListener||e.addEventListener,r=e.off||e.removeListener||e.removeEventListener;if(!t||!r)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(e),removeListener:r.bind(e)}};function C9(e,t,r){let n,i=new Promise((o,a)=>{if(r={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...r},!(r.count>=0&&(r.count===Number.POSITIVE_INFINITY||Number.isInteger(r.count))))throw new TypeError("The `count` option should be at least 0 or more");r.signal?.throwIfAborted();let s=[t].flat(),c=[],{addListener:u,removeListener:f}=A9(e),l=(...d)=>{let h=r.multiArgs?d:d[0];r.filter&&!r.filter(h)||(c.push(h),r.count===c.length&&(n(),o(c)))},p=d=>{n(),a(d)};n=()=>{for(let d of s)f(d,l);for(let d of r.rejectionEvents)f(d,p)};for(let d of s)u(d,l);for(let d of r.rejectionEvents)u(d,p);r.signal&&r.signal.addEventListener("abort",()=>{p(r.signal.reason)},{once:!0}),r.resolveImmediately&&o(c)});if(i.cancel=n,typeof r.timeout=="number"){let o=Ws(i,{milliseconds:r.timeout});return o.cancel=n,o}return i}function G5(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=C9(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var fi=class{log;components;peerRouting;routingTable;count;interval;initialInterval;queryTimeout;started;timeoutId;controller;initialQuerySelfHasRun;querySelfPromise;constructor(t,r){let{peerRouting:n,lan:i,count:o,interval:a,queryTimeout:s,routingTable:c}=r;this.components=t,this.log=X(`libp2p:kad-dht:${i?"lan":"wan"}:query-self`),this.started=!1,this.peerRouting=n,this.routingTable=c,this.count=o??20,this.interval=a??3e5,this.initialInterval=r.initialInterval??1e3,this.queryTimeout=s??5e3,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun}isStarted(){return this.started}start(){this.started||(this.started=!0,clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.querySelf().catch(t=>{this.log.error("error running self-query",t)})},this.initialInterval))}stop(){this.started=!1,this.timeoutId!=null&&clearTimeout(this.timeoutId),this.controller!=null&&this.controller.abort()}async querySelf(){if(!this.started){this.log("skip self-query because we are not started");return}if(this.querySelfPromise!=null)return this.log("joining existing self query"),this.querySelfPromise.promise;if(this.querySelfPromise=Jt(),this.started){this.controller=new AbortController;let t=$n([this.controller.signal,AbortSignal.timeout(this.queryTimeout)]);sn(1/0,t);try{this.routingTable.size===0&&(this.log("routing table was empty, waiting for some peers before running query"),await G5(this.routingTable,"peer:add",{signal:t})),this.log("run self-query, look for %d peers timing out after %dms",this.count,this.queryTimeout);let r=Date.now(),n=await Ee(this.peerRouting.getClosestPeers(this.components.peerId.toBytes(),{signal:t,isSelfQuery:!0}),i=>z5(i,this.count),async i=>ci(i));this.log("self-query found %d peers in %dms",n,Date.now()-r)}catch(r){this.log.error("self-query error",r)}finally{t.clear(),this.initialQuerySelfHasRun!=null&&(this.initialQuerySelfHasRun.resolve(),this.initialQuerySelfHasRun=void 0)}}this.querySelfPromise.resolve(),this.querySelfPromise=void 0,this.started&&(this.timeoutId=setTimeout(()=>{this.querySelf().catch(t=>{this.log.error("error running self-query",t)})},this.interval))}};function Q5(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0,n=e.length;r<n;++r)if(e[r]!==t[r])return!1;return!0}function Zs(){return{contacts:[],dontSplit:!1,left:null,right:null}}function k0(e,t){if(!(t instanceof Uint8Array))throw new TypeError(e+" is not a Uint8Array")}var li=class e extends Xt{localNodeId;root;numberOfNodesPerKBucket;numberOfNodesToPing;distance;arbiter;constructor(t){super(),this.localNodeId=t.localNodeId,this.numberOfNodesPerKBucket=t.numberOfNodesPerKBucket??20,this.numberOfNodesToPing=t.numberOfNodesToPing??3,this.distance=t.distance??e.distance,this.arbiter=t.arbiter??e.arbiter,k0("option.localNodeId as parameter 1",this.localNodeId),this.root=Zs()}static arbiter(t,r){return(t.vectorClock??0)>(r.vectorClock??0)?t:r}static distance(t,r){let n=0,i=0,o=Math.min(t.length,r.length),a=Math.max(t.length,r.length);for(;i<o;++i)n=n*256+(t[i]^r[i]);for(;i<a;++i)n=n*256+255;return n}add(t){k0("contact.id",t?.id);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t.id,r++);let i=this._indexOf(n,t.id);return i>=0?(this._update(n,i,t),this):n.contacts.length<this.numberOfNodesPerKBucket?(n.contacts.push(t),this.safeDispatchEvent("added",{detail:t}),this):n.dontSplit?(this.safeDispatchEvent("ping",{detail:{oldContacts:n.contacts.slice(0,this.numberOfNodesToPing),newContact:t}}),this):(this._split(n,r),this.add(t))}closest(t,r=1/0){if(k0("id",t),!Number.isInteger(r)&&r!==1/0||r<=0)throw new TypeError("n is not positive number");let n=[];for(let i=[this.root],o=0;i.length>0&&n.length<r;){let a=i.pop();if(a!=null)if(a.contacts===null){let s=this._determineNode(a,t,o++);i.push(a.left===s?a.right:a.left),i.push(s)}else n=n.concat(a.contacts)}return n.map(i=>({distance:this.distance(i.id,t),contact:i})).sort((i,o)=>i.distance-o.distance).slice(0,r).map(i=>i.contact)}count(){let t=0;for(let r=[this.root];r.length>0;){let n=r.pop();n!=null&&(n.contacts===null?r.push(n.right,n.left):t+=n.contacts.length)}return t}_determineNode(t,r,n){let i=n>>3,o=n%8;return r.length<=i&&o!==0?t.left:r[i]&1<<7-o?t.right:t.left}get(t){k0("id",t);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t,r++);let i=this._indexOf(n,t);return i>=0?n.contacts[i]:void 0}_indexOf(t,r){for(let n=0;n<t.contacts.length;++n)if(Q5(t.contacts[n].id,r))return n;return-1}remove(t){k0("the id as parameter 1",t);let r=0,n=this.root;for(;n.contacts===null;)n=this._determineNode(n,t,r++);let i=this._indexOf(n,t);if(i>=0){let o=n.contacts.splice(i,1)[0];this.safeDispatchEvent("removed",{detail:o})}return this}_split(t,r){t.left=Zs(),t.right=Zs();for(let o of t.contacts)this._determineNode(t,o.id,r).contacts.push(o);t.contacts=null;let n=this._determineNode(t,this.localNodeId,r),i=t.left===n?t.right:t.left;i.dontSplit=!0}toArray(){let t=[];for(let r=[this.root];r.length>0;){let n=r.pop();n!=null&&(n.contacts===null?r.push(n.right,n.left):t=t.concat(n.contacts))}return t}*toIterable(){for(let t=[this.root];t.length>0;){let r=t.pop();r!=null&&(r.contacts===null?t.push(r.right,r.left):yield*r.contacts)}}_update(t,r,n){if(!Q5(t.contacts[r].id,n.id))throw new Error("wrong index for _update");let i=t.contacts[r],o=this.arbiter(i,n);o===i&&i!==n||(t.contacts.splice(r,1),t.contacts.push(o),this.safeDispatchEvent("updated",{detail:{incumbent:i,selection:o}}))}};var R9="kad-close",P9=50,Y5=20,L9=1e4,N9=10,hi=class extends Xt{kBucketSize;kb;pingQueue;log;components;lan;pingTimeout;pingConcurrency;running;protocol;tagName;tagValue;metrics;constructor(t,r){super();let{kBucketSize:n,pingTimeout:i,lan:o,pingConcurrency:a,protocol:s,tagName:c,tagValue:u}=r;this.components=t,this.log=X(`libp2p:kad-dht:${o?"lan":"wan"}:routing-table`),this.kBucketSize=n??Y5,this.pingTimeout=i??L9,this.pingConcurrency=a??N9,this.lan=o,this.running=!1,this.protocol=s,this.tagName=c??R9,this.tagValue=u??P9;let f=()=>{this.metrics?.pingQueueSize.update(this.pingQueue.size),this.metrics?.pingRunning.update(this.pingQueue.pending)};this.pingQueue=new Hn({concurrency:this.pingConcurrency}),this.pingQueue.addListener("add",f),this.pingQueue.addListener("next",f),this._onPing=this._onPing.bind(this)}isStarted(){return this.running}async start(){this.running=!0,this.components.metrics!=null&&(this.metrics={routingTableSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_routing_table_size`),pingQueueSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_queue_size`),pingRunning:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_running`)});let t=new li({localNodeId:await Ae(this.components.peerId),numberOfNodesPerKBucket:this.kBucketSize,numberOfNodesToPing:1});this.kb=t,t.addEventListener("ping",this._onPing),this._tagPeers(t)}async stop(){this.running=!1,this.pingQueue.clear(),this.kb=void 0}_tagPeers(t){let r=new Nr,n=Ha(()=>{let i=new Nr(t.closest(t.localNodeId,Y5).map(s=>s.peer)),o=i.difference(r),a=r.difference(i);Promise.resolve().then(async()=>{for(let s of o)await this.components.peerStore.merge(s,{tags:{[this.tagName]:{value:this.tagValue}}});for(let s of a)await this.components.peerStore.merge(s,{tags:{[this.tagName]:void 0}})}).catch(s=>{this.log.error("Could not update peer tags",s)}),r=i});t.addEventListener("added",i=>{n(),this.safeDispatchEvent("peer:add",{detail:i.detail.peer})}),t.addEventListener("removed",i=>{n(),this.safeDispatchEvent("peer:remove",{detail:i.detail.peer})})}_onPing(t){let{oldContacts:r,newContact:n}=t.detail;this.pingQueue.add(async()=>{if(!this.running)return;let i=0;try{await Promise.all(r.map(async o=>{try{let a={signal:AbortSignal.timeout(this.pingTimeout)};this.log("pinging old contact %p",o.peer),await(await(await this.components.connectionManager.openConnection(o.peer,a)).newStream(this.protocol,a)).close(),i++}catch(a){this.running&&this.kb!=null&&(this.log.error("could not ping peer %p",o.peer,a),this.log("evicting old contact after ping failed %p",o.peer),this.kb.remove(o.id))}finally{this.metrics?.routingTableSize.update(this.size)}})),this.running&&i<r.length&&this.kb!=null&&(this.log("adding new contact %p",n.peer),this.kb.add(n))}catch(o){this.log.error("could not process k-bucket ping event",o)}}).catch(i=>{this.log.error("could not process k-bucket ping event",i)})}get size(){return this.kb==null?0:this.kb.count()}async find(t){let r=await Ae(t),n=this.closestPeer(r);if(n!=null&&t.equals(n))return n}closestPeer(t){let r=this.closestPeers(t,1);if(r.length>0)return r[0]}closestPeers(t,r=this.kBucketSize){return this.kb==null?[]:this.kb.closest(t,r).map(i=>i.peer)}async add(t){if(this.kb==null)throw new Error("RoutingTable is not started");let r=await Ae(t);this.kb.add({id:r,peer:t}),this.log("added %p with kad id %b",t,r),this.metrics?.routingTableSize.update(this.size)}async remove(t){if(this.kb==null)throw new Error("RoutingTable is not started");let r=await Ae(t);this.kb.remove(r),this.metrics?.routingTableSize.update(this.size)}};var W5=[77591,22417,43971,28421,740,29829,71467,228973,196661,78537,27689,36431,44415,14362,19456,106025,96308,2882,49509,21149,87173,131409,75844,23676,121838,30291,17492,2953,7564,110620,129477,127283,53113,72417,165166,109690,21200,102125,24049,71504,90342,25307,72039,26812,26715,32264,133800,71161,88956,171987,51779,24425,16671,30251,186294,247761,14202,2121,8465,35024,4876,85917,169730,3638,256836,96184,943,18678,6583,52907,35807,112254,214097,18796,11595,9243,23554,887,268203,382004,24590,111335,11625,16619,29039,102425,69006,97976,92362,32552,63717,41433,128974,137630,59943,10019,13986,35430,33665,108037,43799,43280,38195,29078,58629,18265,14425,46832,235538,40830,77881,110717,58937,3463,325358,51300,47623,117252,19007,10170,20540,91237,294813,4951,79841,56232,36270,128547,69209,66275,100156,32063,73531,34439,80937,28892,44466,88595,216307,32583,49620,16605,82127,45807,21630,78726,20235,40163,111007,96926,5567,72083,21665,58844,39419,179767,48328,42662,51550,5251,37811,49608,81056,50854,55513,20922,18891,197409,164656,32593,71449,220474,58919,85682,67854,13758,35066,3565,61905,214793,119572,141419,21504,10302,27354,67003,46131,32668,15165,64871,34450,17821,2757,11452,34189,5160,12257,85523,560,53385,65887,119549,135620,312353,115979,122356,10867,193231,124537,54783,90675,120791,4715,142253,50943,17271,43358,25331,4917,120566,34580,12878,33786,160528,32523,4869,301307,104817,81491,23276,8832,97911,31265,52065,7998,49622,9715,43998,34091,84587,20664,69041,29419,53205,10838,58288,116145,6185,5154,141795,35924,21307,144738,43730,12085,8279,10002,119,133779,199668,72938,31768,39176,67875,38453,9700,44144,4121,116048,41733,12868,82669,92308,128,34262,11332,7712,90764,36141,13553,71312,77470,117314,96549,49135,23602,54468,28605,6327,62308,17171,67531,21319,14105,894,107722,46157,8503,51069,100472,45138,15246,14577,35609,191464,1757,13364,161349,32067,91705,81144,52339,5408,91066,21983,14157,100545,4372,26630,129112,1423,29676,213626,4397,88436,99190,6877,49958,26122,114348,60661,29818,293118,50042,179738,16400,163423,89627,31040,43973,36638,45952,5153,1894,109322,1898,134021,12402,112077,68309,190269,69866,31938,107383,11522,105232,11248,14868,39852,71707,186525,16530,38162,106212,11700,5130,16608,26998,59586,108399,230033,43683,48135,82179,2073,5015,196684,189293,16378,23452,8301,35640,11632,214551,29240,57644,33137,91949,55157,52384,117313,5090,17717,89668,49363,82238,241035,66216,29066,184088,97206,62820,26595,4241,135635,173672,8202,459,71355,146294,29587,3008,135385,141203,14803,6634,45094,69362,50925,546,51884,62011,83296,234584,44515,56050,89476,87751,19373,12691,149923,19794,13833,35846,87557,58339,2884,19145,25647,12224,11024,77338,64608,122297,53025,7205,36189,36294,170779,21750,7739,173883,75192,35664,224240,113121,30181,26267,27036,117827,92015,106516,55628,203549,67949,60462,60844,35911,20457,1820,920,19773,8738,73173,181993,38521,98254,76257,46008,92796,5384,26868,151566,22124,2411,15919,186872,180021,28099,152961,78811,80237,62352,102653,74259,184890,16792,123702,224945,29940,19512,75283,14059,112691,92811,233329,20411,138569,53341,109802,50600,134528,66747,5529,166531,31578,64732,67189,1596,126357,967,167999,206598,109752,119431,207825,78791,91938,10301,27311,24233,252343,28831,32812,66002,112267,90895,8786,8095,16824,22866,21813,60507,174833,19549,130985,117051,52110,6938,81923,123864,38061,919,18680,53534,46739,112893,161529,85429,26761,11900,81121,91968,15390,217947,56524,1713,6654,37089,85630,138866,61850,16491,75577,16884,98296,73523,6140,44645,6062,36366,29844,57946,37932,42472,5266,20834,19309,33753,127182,134259,35810,41805,45878,312001,14881,47757,49251,120050,44252,3708,25856,107864,120347,1228,36550,41682,34496,47025,8393,173365,246526,12894,161607,35670,90785,126572,2095,124731,157033,58694,554,12786,9642,4817,16136,47864,174698,66992,4639,69284,10625,40710,27763,51738,30404,264105,137904,109882,52487,42824,57514,2740,10479,146799,107390,16586,88038,174951,9410,16185,44158,5568,40658,46108,12763,97385,26175,108859,664,230732,67470,46663,14395,50750,141320,93140,15361,47997,55784,6791,307840,118569,107326,18056,58281,260415,54691,8790,73332,45633,7511,45674,143373,14031,11799,94491,35646,96544,14560,26049,32983,25791,83814,42094,231370,63955,139212,2359,169908,3108,183486,105867,28197,32941,124968,26402,88267,149768,23053,3078,19091,52924,25383,19209,111548,97361,3959,24880,235061,9099,24921,161254,151405,20508,7159,34381,20133,11434,74036,19974,34769,36585,1076,22454,17354,38727,235160,111547,96454,117448,156940,91330,37299,7310,26915,117060,51369,22620,61861,322264,106850,111694,15091,2624,40345,300446,177064,1707,27389,54792,327783,132669,183543,59003,17744,20603,151134,106923,53084,71803,279424,319816,11579,21946,16728,38274,72711,5085,83391,88646,40159,25027,34680,10752,12988,54126,30365,18338,100445,230674,44874,84974,143877,123253,139372,28082,91477,144002,13096,219729,46016,50029,42377,14601,6660,58244,58978,23918,88206,113611,64452,17541,41032,10942,12021,49189,10978,40175,37156,10947,71709,106894,112538,57007,137486,150608,152719,40615,7746,279716,13101,19524,28708,40578,72320,1096,182051,94527,51275,22833,45164,81917,77519,48508,5421,140302,37845,149830,5587,27579,5357,428725,248187,6326,206760,39814,32585,89923,44341,288753,284443,96368,31201,94189,119504,20359,52073,103216,179,27934,32801,96035,34111,34309,101326,18198,20704,210266,37643,27880,141873,106e3,19414,56614,167714,66483,107885,86602,4379,20796,75467,4987,5017,118857,26003,34308,114428,29198,6686,29697,73632,3739,69795,16798,41504,7207,30722,21436,36735,28067,28545,3239,11221,36031,41889,100010,19247,317673,29495,174554,6424,129725,53845,94986,7955,59676,2604,191497,19735,102214,62954,23844,11872,179525,261436,34492,428,78404,142035,16747,17246,27578,37021,33672,57944,26056,135760,2369,61674,122066,31327,19374,157065,40553,130982,69619,71290,38855,72100,92903,95940,51422,165999,65713,57873,50726,7288,20272,2081,42326,22624,81120,57914,79352,19447,1684,72302,11774,302559,161481,96396,13692,414988,3721,79066,56627,46883,21150,11747,12184,5856,113458,176117,84416,52079,27933,3354,59765,141359,2212,216309,2555,23458,196722,142463,45701,44548,28798,19418,215,29916,9396,10574,114226,84475,13520,18694,34056,4524,90302,62930,13539,19407,77209,7728,38088,9535,2263,23875,183945,17750,26274,67172,10585,28042,22199,7478,51331,66030,26774,192929,31434,25850,50197,52926,178158,4679,181256,70184,229600,9959,105594,72158,73974,2726,35085,78087,23284,35568,51713,155676,5401,27254,11966,17569,223253,71993,103357,111477,55722,30504,26034,46774,35392,36285,214814,41143,163465,1051,16094,81044,6636,76489,179102,20712,39178,35683,125177,54219,30617,52994,25324,50123,2543,87529,58995,10688,125199,12388,60158,125481,131646,7642,133350,65874,3438,97277,101450,10075,56344,116821,50778,60547,98016,106135,13859,14255,16300,77373,173521,8285,45932,37426,4054,114295,55947,7703,39114,52,51119,128135,19714,60715,9554,50492,88180,2823,118271,52993,122625,97919,23859,37895,25040,33614,32102,20431,3577,9275,15686,43031,157741,110358,1884,40291,125391,13736,5008,64881,87336,77381,70711,43032,49155,118587,70494,4318,10168,30126,12580,10524,280104,104001,145413,2862,84140,6603,106005,13566,12780,11251,42830,571,179910,82443,13146,469,42714,32591,265217,424024,92553,54721,134100,6007,15242,114681,59030,16718,85465,200214,85982,55174,165013,23493,56964,82529,109150,32706,27568,82442,5350,14976,13165,44890,60021,21343,33978,17264,4655,22328,27819,75730,16567,55483,14510,17926,45827,150609,3704,7385,272531,161543,76904,122163,52405,2039,19165,41623,14423,228354,3369,176360,85491,7122,35789,303724,4465,13628,2233,55311,118771,20713,10006,221519,45115,71021,35650,29775,7337,10864,20665,21142,1746,15080,1624,32449,10905,105743,229797,7701,3940,22997,178467,57208,389057,39683,59403,63344,63125,54847,69691,18336,56448,3362,37202,18282,29648,138224,35867,10495,5911,28814,26653,31514,176702,26550,45621,11734,4525,40543,73944,121080,27858,155561,14887,44670,30742,8796,107455,113472,56369,75581,183777,240095,133699,153299,8768,160464,26058,49078,103971,21875,71486,44888,17156,9678,89541,123019,102337,3972,83930,21245,87852,109660,287918,183019,686,10100,39177,283941,11274,24736,26793,26214,25995,77011,141580,4070,23742,46285,46632,30700,26669,19056,35951,115575,174034,56097,35463,87425,24575,44245,38701,82317,85922,281616,100333,147697,61503,7730,84330,8530,59917,61597,17173,9092,32658,90288,193136,39023,20381,56654,31132,7779,1919,1375,117128,30819,11169,40938,23935,115201,101155,151034,4835,11231,74550,89388,59951,91704,107312,167882,115062,12732,72738,88703,464019,158267,57995,60496,737,14371,123867,4174,243339,159946,7568,16025,134556,110916,38103,191,80226,88794,29688,27230,10454,76308,57647,77409,113483,66864,14745,19808,12023,46583,84805,16015,17102,2231,20611,3547,95740,250131,34559,108894,8498,15853,159169,148920,20942,2813,93160,45188,210613,45531,52587,149062,39782,28194,57849,60965,84954,89766,84453,100927,16501,27658,165311,103841,54192,207341,19558,20084,319622,5672,205467,98462,61849,36279,13609,147177,24726,165015,209489,59591,31157,6551,117580,75060,141146,277310,21072,22023,106474,63041,137443,122965,68371,5383,42146,98961,113467,30863,23794,4843,99630,30392,82679,13699,241612,33601,93146,24319,18643,32155,95669,40440,15333,34089,67799,142144,58245,38633,114531,117400,77861,188726,5507,2568,8853,10987,107222,2663,2421,11530,13345,30075,41785,118661,104786,17459,12490,16281,71936,193555,17431,5944,71758,26485,77317,20803,367167,158,7362,93430,11735,172445,46002,11532,54482,930,62911,2235,23004,179236,4764,101859,208113,22477,55163,95579,14098,67320,162556,90709,156949,3826,57492,4025,34092,87442,104565,6718,186015,28214,14209,10039,107186,233912,58877,81637,55265,39828,6194,145813,50831,105849,4974,88319,122296,10272,197216,95714,51540,72418,23324,91555,8743,140452,250249,51666,34124,7229,38592,129641,78169,174242,22464,149964,51450,14034,10026,95376,26190,120062,14401,8700,265,31386,143573,7203,229889,61567,4227,140981,2466,72052,10787,10062,30958,6099,38471,30103,23202,208101,70847,467,58934,32271,32984,36637,24107,30771,17109,73353,13650,2098,157040,67366,66904,106018,265380,107238,18535,44025,32681,144983,62505,91295,56120,3082,77508,10322,63023,36700,81885,224127,16721,45023,239261,111272,13852,7866,149243,204199,32309,22084,42029,38316,126644,104973,14406,43454,67322,61310,15789,40285,24026,181047,6301,70927,23319,115823,27248,66693,115875,278566,63007,146844,56841,59007,87368,180001,22370,42114,80605,12022,10374,308,25079,14689,12618,63368,7936,264973,212291,136713,95999,105801,18965,32075,48700,52230,35119,96912,32992,8586,16606,101333,101812,14969,39930,759,193090,27387,42914,12937,5058,62646,64528,38624,25743,37502,3716,4435,30352,178687,26461,132611,42002,138442,35833,59582,16345,8048,60319,49349,309,47800,49739,90482,26405,34470,63786,32479,85028,39866,47846,11649,23934,29466,2816,42864,31828,7410,74885,49632,47629,111801,90749,19536,18767,105764,59606,21223,10746,76298,22220,39408,7190,79654,64856,11602,82156,272765,17079,70089,245473,51813,184407,384678,1576,122249,5064,27481,6188,25790,74361,27541,318284,45430,31488,620,93579,45723,192118,22670,51913,4162,70244,35966,26397,16199,50899,209613,121702,287507,2993,36101,132229,67345,33062,76295,118628,78705,52316,34375,107083,107454,44863,127561,33964,3073,154010,190914,55967,39074,6272,31047,5550,41123,26154,98638,47110,19998,148091,50229,31329,59900,195442,19106,61347,73497,70015,682,45850,25776,38022,148951,6288,37411,232526,109277,27286,32342,9262,5220,16651,23175,46740,129438,78614,121925,66914,88710,127952,5563,21500,34521,10739,14863,191006,62956,17359,16749,67027,56284,69134,43301,35039,58883,54466,60823,404451,75743,59856,86979,7923,34273,83785,32142,7693,268986,197428,282681,17049,22346,22990,92245,107180,3357,37104,96724,49153,7683,31197,43267,82231,164276,23696,20848,188364,22309,24821,158707,1018,22514,70922,27792,45589,59709,10765,736,35218,63479,51987,24275,63588,55361,92929,81964,4658,20122,12330,44058,13065,311456,72224,8337,211229,38979,22590,138478,52757,32595,133600,8838,31549,94412,43391,90056,1585,94802,127271,6223,31889,137038,132910,2165,57616,230152,6080,10748,36737,74579,134062,50525,180532,119270,34556,76155,82394,52595,29258,31435,87820,67996,26943,183878,38007,2410,13526,180297,69856,3503,187396,167700,7838,16701,9199,56267,3661,37407,65994,23767,5708,62508,221700,67088,86978,46776,84434,32088,5612,9149,88244,21685,95151,46750,189612,2979,506311,2594,3628,40074,105039,78243,28523,6651,38058,71999,30992,12764,68261,108991,6165,26450,61961,13400,22426,7490,60890,109623,2070,12958,50355,67979,257096,7213,42578,52121,35716,65461,7516,124758,39268,302,64712,14977,1467,219452,2840,34229,11121,21602,19270,63574,8024,1532,17331,79839,78885,52029,180767,57957,6069,91265,61380,55767,8927,32881,287603,22149,35029,68876,6428,199567,46926,13412,104132,21434,366616,45060,110046,81924,128910,45886,52821,130416,29416,77342,21762,67329,121432,79924,11724,38625,81006,102033,28338,13326,3250,82056,82526,38212,21112,12382,111495,3263,7414,86274,93490,40844,30224,45212,24019,48411,71367,24941,76729,57776,3769,38114,202019,197745,31953,237533,33270,201580,255648,100798,44741,32241,98468,106931,10085,15090,170358,33154,66787,18819,69760,25061,234005,82660,6295,131975,16874,9076,4094,25005,17740,40908,19533,220019,44330,99792,50040,19619,13950,55228,24423,31253,95308,103177,184795,28590,82285,5059,3210,75525,49894,70007,56178,10580,36051,139681,21617,98736,3555,106306,164189,37352,63915,47824,24883,145530,61904,28444,11483,19837,145446,30420,112972,85939,11835,191233,2262,20705,58630,1753,148334,1197,144714,6887,11223,107667,60879,77914,4151,57417,81594,96681,169430,1784,20444,95138,254041,27038,596,7117,72808,13759,3353,126776,21074,55322,27081,36942,39547,139830,179275,4453,713,8722,71399,19204,25785,22794,23923,104114,11291,25458,102309,88396,75288,230440,206396,104551,58447,130857,37247,94734,31548,176529,226077,65159,20104,10096,66881,94191,237909,27109,37404,1520,27421,25220,113003,23423,24884,50585,6286,231877,150800,11789,3226,90004,60642,5053,202400,61442,132531,175329,57138,30116,103847,9973,75367,16452,32360,59119,21246,10191,164804,23305,61051,37348,154530,13214,5468,50403,66754,130976,50559,80515,14436,155492,84017,5472,43107,41240,2890,90431,70188,382,76234,48040,50211,281038,237007,32115,142178,1536,22761,96429,1811,31243,1679,49143,55209,17402,235054,61494,7462,77030,34925,87609,78002,9499,9027,73289,201078,101379,63544,27666,5469,10642,30029,49816,132979,95620,58086,351930,116300,2110,2043,30845,6154,11279,16727,4122,2277,27281,4971,3650,39060,61970,65951,39674,75686,38151,11370,130809,177895,32665,63725,122267,7857,39618,118483,44792,157755,178624,136994,24260,41308,22471,12404,21707,12486,30473,52781,50246,20247,39065,909,56825,103158,128603,31542,1089,41935,32744,12428,37963,84420,33134,72921,208449,42622,168151,127335,147107,46699,38216,12591,94342,85814,31423,24944,2605,87542,67473,192551,4496,56321,91819,17630,6300,256183,114569,202090,33209,35289,34897,24967,40520,43470,5344,10199,34810,14283,10381,10017,62923,49924,23233,64539,13051,35686,19698,11570,135555,120868,44924,87065,52318,52335,47586,140906,245885,109834,78668,9065,46990,25258,72022,61243,40838,4545,146387,10537,11557,17470,36930,68104,46711,24264,79401,81043,18225,120488,24746,84338,81652,28266,13776,21878,46973,1047,230465,73357,95777,24973,210160,62210,58404,110633,169651,6937,41870,9909,26822,191062,76553,27519,96256,239070,2478,205678,67955,58532,20601,50120,19148,78501,195724,110740,8249,109665,27446,30568,57631,31425,49752,32820,65504,50079,3663,102256,219898,23849,211315,14645,4359,91767,9528,12449,49366,7941,49763,107848,8930,27086,50686,9744,10447,81935,39513,46514,1670,29229,6172,22312,137280,97759,9806,14445,22976,56458,73391,34983,93760,174219,52573,33149,59747,2429,136277,75123,165263,91040,7446,57632,48633,97140,246081,84766,151684,79918,93268,120346,54059,54875,77858,32996,103590,45276,11968,19600,25849,17159,132907,42828,16817,4913,99462,103303,27395,5737,74184,20749,21160,14377,77062,131403,158735,10999,27799,77785,9320,34366,51593,61070,33746,47048,29268,36675,30262,53297,9832,82e3,20188,122292,39917,7331,18160,68301,185935,134830,15031,4935,10004,165845,185534,46923,30109,44134,122631,18874,22903,112790,26561,18549,348902,82871,140345,255565,135390,63556,103747,145055,179600,145662,296111,61661,211987,23952,52342,126343,48450,32919,44277,82185,9591,62139,205363,376969,394874,108461,18040,120885,14798,39863,16571,16794,58271,81025,55206,14640,118656,6361,44092,85970,6262,153863,108244,180200,72264,79947,38044,10050,5735,61221,80712,5471,115689,11391,11661,184257,20010,60116,30320,19327,134598,45455,27542,18004,125092,452272,1549,91523,46567,180063,156026,2608,11174,58848,37788,65907,80194,30490,5786,40775,119519,106241,11323,156297,8425,61495,2617,29675,2425,59886,112582,49142,59618,4863,50597,86710,50650,168632,27693,85641,83643,18993,25768,84284,28090,93592,36627,312804,43381,9887,9402,100931,97165,3311,173330,66805,28935,4963,184460,3201,78102,19126,21607,37496,24938,22615,16153,32862,134792,153318,61120,6067,2812,12826,12792,23825,37559,64662,202250,102694,155488,85881,149193,46233,65383,15521,106982,11358,176786,25752,39717,34208,24510,32464,77742,39371,72028,138229,60688,71386,102834,132477,2208,11548,63670,271279,28351,30338,38620,32491,99845,143885,152266,13252,2825,178663,108097,1775,78201,14897,113573,163346,62292,171129,22183,96598,38733,64971,166776,117445,9968,146393,44677,74867,20908,97328,12761,25656,26785,9148,112344,26115,99176,110121,22437,49547,6180,79320,5835,31392,43328,33377,75870,119860,69497,80273,7325,155219,43167,111173,28347,20222,3763,71752,55041,47252,14618,28088,15012,97805,194698,54636,2036,41349,6173,96604,61530,51859,43782,13361,24334,22668,24792,7070,23441,16789,3209,36211,208475,26242,32880,122181,182407,21444,31060,88459,29929,77907,12716,10934,97005,20599,31690,8403,58445,30303,22700,10336,86731,103115,337709,72556,46788,112566,47684,67089,53548,36874,56487,41387,125985,26893,40071,106683,73712,18787,40105,72992,67246,137276,50802,36790,70328,138827,22466,39263,183295,29858,50975,9322,57397,10654,24364,30383,55799,41600,23584,127295,296610,129078,143558,244131,86397,36049,1085,80677,3820,108139,5476,34767,24683,7758,13060,7239,131671,250593,59556,103392,29810,4188,252323,39404,116877,7651,43600,40338,13554,157253,39196,25978,144387,61211,234,50104,6129,10449,93777,9240,356378,274148,4439,72970,3724,147770,78680,62570,115877,40027,40547,36817,224392,64609,34795,165027,67440,2477,37206,23431,50754,164797,46018,94995,170982,27051,7957,22767,3674,27900,56419,18930,60701,41302,2692,84749,339721,61996,111094,80221,50129,1045,8153,62945,19202,8250,37208,37418,32560,79477,41106,88569,33963,36693,5892,30570,1581,66471,49647,11922,160717,29442,5643,114865,82962,95982,132098,22633,22838,94726,54556,28566,205039,162340,33216,16849,35847,221339,94851,26533,71469,1805,3804,12935,45483,71020,36310,65381,192960,34240,35165,59773,1248,46954,155332,96864,4246,388800,16129,57133,74592,44807,442014,38203,42574,80818,91592,26377,36424,65760,977,77387,22628,147610,28018,30561,98454,6969,119628,63648,18170,36854,26601,64018,22027,37279,51395,152934,21153,9430,58760,194742,5330,55115,34158,28917,174111,13171,122326,1526,43896,66094,25325,4234,148354,11450,275,18999,112191,44365,22723,68409,8733,57746,96565,75007,14196,108844,29475,88599,177563,100792,106156,86323,93726,14248,135341,194131,40126,47099,14779,8272,39597,95983,171398,65882,28052,10393,47213,40689,22120,72212,106829,34964,109146,753,648,21660,30047,17527,181025,5619,145357,4085,216883,9359,186951,24779,53931,24545,36197,223296,62628,168101,4243,107313,30321,26642,13049,51059,31027,107912,807,73550,26551,84369,122422,165872,49754,74213,234264,33151,52014,33100,87183,22365,52500,40013,23302,5652,72723,21404,26107,48434,587,94049,168493,96418,32871,70860,31709,25128,443,71597,166253,15670,70994,26341,133675,28280,75491,54756,47955,56028,26182,11952,113272,472197,64640,110753,17919,337,50642,22576,142,87371,53391,93210,126694,15285,19642,85667,14148,1506,42092,52962,33243,11970,20734,135843,57044,58880,13002,219134,22876,64754,232519,4257,43120,321573,24799,64526,124728,52579,81472,70831,276848,17403,74359,23021,182101,74597,23744,148267,12055,7976,5349,11772,67540,167347,65318,18720,127832,108238,22828,90233,9987,259080,118185,73209,79270,13775,90100,137742,90799,70569,15699,19961,9087,67475,57872,39731,8810,134897,131868,146849,19898,3334,2281,167061,91073,60356,467742,74712,188,53179,137679,92769,29241,9537,132595,80119,1041,88962,5976,40171,44911,102859,139059,104558,98987,47761,19272,71472,113864,175377,73338,10857,23402,23758,1591,139864,5644,4076,118760,16427,134198,18853,20291,100849,37423,22038,36677,19071,195521,57445,11069,31869,55718,66882,148490,44,41296,75242,49704,166810,9906,20943,122258,49112,105667,15969,10344,6408,187694,21399,72742,58970,14867,14376,81889,41856,23225,15042,56993,16074,131389,74276,72407,53875,383108,53597,37363,68993,44854,122548,430927,198279,38430,80409,12245,2981,628,2818,17760,37437,238229,7968,46892,2200,3730,34190,65983,37959,112291,87850,70827,6522,20750,73913,111621,41652,19587,2780,58668,25916,85259,18200,168962,95781,42445,102050,7776,57662,103313,47742,96358,41964,66174,100396,29069,204735,19679,27978,7479,40264,22534,61183,36081,107436,58223,14680,23002,101311,24716,124108,12908,5646,31750,40380,14215,232799,102772,14122,96775,61398,50917,12096,149880,67833,598749,124194,155871,49216,790,14677,65319,56917,7440,145744,95701,12206,49405,129269,76199,45732,9767,11058,9047,210885,11051,7392,26307,2130,8132,147526,20802,232698,115660,50060,59789,57344,107623,80343,112676,23291,9866,160971,34032,118291,15719,59730,164911,28975,2659,58046,78480,21854,66209,53863,109085,116045,29021,46481,107552,22130,18764,70254,31272,11300,52460,43933,84738,20721,53869,190840,79673,105300,7561,321817,66924,13940,33281,101046,183181,32176,71878,5678,62924,79535,56646,40303,19559,27703,93042,73368,42187,3670,37376,46440,7023,36816,109628,20680,5940,276440,275233,170848,112093,136996,14984,20226,111441,77693,112960,48577,39370,55707,50314,123404,26570,54281,61372,123391,4857,35928,246740,132507,106646,44241,7196,92258,9825,37688,51197,303141,5590,15476,132986,10955,85782,34486,26696,7991,28813,18858,39546,11703,11365,38185,5716,93555,11925,40121,60002,6985,10976,171384,3887,43394,13337,56346,6381,252336,39573,75042,53711,1028,31781,44295,95925,131713,7214,68125,43571,70954,213234,1628,8760,13391,65485,17320,56038,1710,25248,60803,57399,19839,3870,326,281556,50945,72400,21460,316244,75619,56246,98775,481,13513,55765,50427,7388,123519,32929,57908,27124,61316,101097,57467,30228,48792,10788,20402,37318,50526,155730,34456,158065,145305,17832,43733,64052,4506,35072,205355,177028,184004,187081,68616,35938,83703,10367,36892,93186,260137,51934,89970,4985,23445,26755,21558,7948,78741,23376,124405,85594,68596,57536,49351,12619,56593,132668,99924,109728,71844,71935,196018,65464,17617,14987,89701,143773,33997,8687,22701,33258,2914,4436,72108,85610,9671,49067,2327,82988,1361,1672,44033,35777,30269,24057,10605,82236,616,15793,13919,47249,112086,116698,9484,80207,90574,33304,68624,93127,56101,42210,160929,4827,38995,38095,4701,125119,5027,33680,9236,231236,14135,87837,23318,70261,78893,30151,81482,14332,1084,74256,27532,46644,79185,3148,62615,6981,55672,31668,36825,1849,14536,37446,14738,23779,43058,162749,72199,1168,21346,5592,85932,85302,9668,18351,57135,150360,2080,228015,77953,34670,119302,151751,31009,106725,84265,45214,59289,74178,113071,263206,111009,4021,44449,188119,192629,123592,392506,292847,114487,12831,205858,9852,20780,79648,75767,357014,97721,18166,21005,67950,33226,204009,16536,2987,11335,66717,144910,47950,17262,55060,15063,2934,51038,26775,178497,66008,3427,49433,128592,20036,157553,63861,3089,23015,51210,28696,35933,49942,71135,231518,99620,17248,21835,176536,20676,16944,38700,165831,233253,295625,36723,13023,52745,10907,19423,67972,125868,95473,82875,1183,108455,52685,33417,64095,21433,52438,33191,127809,44505,211823,7810,2752,95548,162031,7185,91196,47563,61721,33359,17897,23682,42806,178101,22874,49707,199897,75419,82456,8618,11171,79712,116847,18783,44190,46564,5346,59046,95032,7893,14916,3214,26800,24172,121453,34362,10250,17408,18888,4840,68696,22831,13162,36005,32512,14800,62357,41723,45046,27247,37486,5372,2564,34261,298500,66509,133920,89138,31305,117697,19097,108304,81386,84106,23802,46411,63304,946,51417,41777,41041,19501,115864,60743,294354,37955,94165,18116,1156,17937,20645,57114,90804,58042,48643,92288,9861,2557,88546,61333,101008,12853,5148,87856,4152,144503,73841,18718,9789,147565,10846,42085,12789,30223,8993,56352,67203,2448,28215,6052,23540,126319,75933,36689,80235,23231,23561,21383,38800,77548,102798,21234,31468,158608,46188,63960,191679,8051,67014,11185,170078,42186,28827,34777,41930,212079,12421,34750,24111,110344,73918,45171,70826,141949,40063,23979,24254,37309,26724,27179,24718,83648,54938,14591,17425,29525,102675,48975,48654,12316,8929,60640,41709,50168,63264,89812,50716,48632,38755,138583,160123,55579,71829,24230,233277,46322,39650,166388,34718,24108,98252,7031,106695,62498,18258,35062,217827,78731,34824,33354,19520,60852,2432,60224,8587,2836,62955,702,20227,42285,40560,95592,62486,11094,53035,143291,18842,46177,77994,1770,9657,107422,172915,32655,128716,25886,25164,156740,119928,165875,85817,11007,89110,33956,12652,65156,180266,8494,36889,19958,20955,96,1264,118288,135769,44754,86671,5632,19026,168220,289120,33569,93821,66144,70635,7687,5642,2714,55445,56636,71545,184182,93133,7332,37389,12643,52315,22729,11014,158742,17050,152889,50178,34601,41945,52136,9948,26914,63548,95721,115951,40759,8960,158258,38938,49232,48325,42234,81523,253019,66128,40978,20048,238048,38760,62928,122560,118532,43687,137472,163689,26680,9878,17448,51035,16211,60834,36749,29178,14241,59868,150086,2305,26477,42422,34342,165341,83279,33894,14257,29928,12743,13957,125571,89134,66712,10952,16507,147839,30146,7249,16565,45399,39874,114565,215780,31990,230881,171477,102,196546,44538,10880,84948,281705,86651,10617,31395,2342,453658,43569,60561,132901,21845,17727,58556,258242,22262,58728,4008,77997,11806,37431,30599,81375,109137,185787,114085,217292,97453,169085,30593,60212,11544,102056,65580,2384,91655,4855,95725,7295,157994,16228,20669,53276,141590,105246,17334,25440,76067,17967,39321,38911,11362,28559,63807,21627,26468,85816,40120,1025,15234,58319,69516,66512,124548,75845,78873,22137,46681,51242,85683,32909,76747,35555,43396,101465,1765,73094,1077,2962,39028,66777,57831,42048,15828,13962,36041,63657,52412,5242,58846,2141,5506,219012,134451,3936,182230,17558,17153,152237,22621,49377,170216,35257,68233,65374,6510,11126,212151,7184,2480,22517,3437,33073,30156,16557,3768,55067,86829,91e3,12350,148650,66017,79424,70885,49066,28250,21369,51213,34533,11510,3258,18176,18465,84413,6315,36411,163765,4346,356,107618,598,13727,285026,162695,8749,14583,7132,63521,184253,32378,25991,5604,30961,53675,4874,84693,5086,34811,26978,56564,7904,33519,51221,113942,69253,6664,125563,22055,220680,102008,742,51930,19494,176108,44424,35123,13025,75685,11759,74335,22250,181453,131147,16984,132115,154311,11991,76452,52609,85351,196,30969,9198,74919,2529,56838,71779,29187,116304,3504,62330,41190,86153,28393,254926,104228,105189,13264,84359,3574,12415,8534,57147,10175,188174,59504,60932,66318,16407,107921,17638,99103,49278,28403,39786,145865,8462,3558,43406,142271,29139,21989,36552,93955,72365,7176,13556,106185,37957,321774,17782,129017,51154,27938,24952,1935,39366,2791,33489,41582,56078,24558,9311,5449,218786,27808,190429,68013,36020,86003,29735,3404,87348,119357,115714,2324,86796,81973,40992,43376,93621,28784,16808,36367,2517,2909,191926,24978,55303,53308,205724,60068,3098,21375,64784,23949,26579,63121,12319,80145,39967,97861,6757,70143,67642,37082,34698,69140,122883,46151,62187,80934,429,19437,135071,137885,222647,13331,154065,327,61778,74257,40116,37493,14855,85079,237641,42342,102164,199965,71204,4662,29368,5042,113914,122214,8955,13149,102503,43173,5659,163787,69003,307084,63392,171080,21390,81918,86666,36622,24126,28887,5736,28054,207170,163428,79891,346467,95363,38980,111806,80828,9200,19288,294896,114468,87405,111715,141705,7015,72754,68463,48738,243147,33397,101210,37051,98801,82847,20397,4940,185559,18716,54718,83491,11725,40803,1128,12128,23060,5174,7745,67007,46701,1571,27807,180186,256996,18975,16837,7877,212758,250379,15440,87954,57755,24719,124057,83461,258,50864,8874,29038,71289,31627,15429,9005,4061,113851,107716,82819,13651,79656,117851,17539,111446,12938,39724,190787,4352,15402,21070,62708,8539,23777,73853,13552,38810,86117,16285,56400,1718,75342,142863,29033,378,110113,180321,32586,23606,26393,160984,207987,23783,8406,16904,24596,47274,11693,46539,60524,78595,48423,31718,20170,9009,146268,15183,191060,172765,1349,138436,37365,10970,40509,225817,20021,70394,152138,21541,66559,66544,89352,2725,17258,91345,7313,3815,115868,8660,40362,4071,103524,39388,118275,21950,6549,38226,32754,209574,29201,43495,18028,20296,40597,18370,47520,202450,24134,2219,8195,69545,38041,136934,46374,19041,159811,84865,58620,846,98749,13569,30714,97246,32186,4479,27355,92973,35214,151491,75963,37631,1561,27200,238083,23182,60756,12291,25766,39355,102333,87362,65741,59906,19538,201575,48772,102938,24438,292580,39964,66366,9004,61379,50548,37622,38732,28379,68180,76622,17488,69849,5963,7219,48143,43413,55358,540,58691,29506,19245,52193,48621,5518,13048,118625,44755,191081,42061,89197,2259,60665,66994,71210,51232,3585,142096,55024,7892,8345,58653,463307,65658,64319,137941,136323,53499,12746,43492,6978,95163,29925,60175,5128,7352,41463,184756,121146,20473,18426,4598,5309,54580,14277,121151,10691,56711,43880,63409,76682,11830,172218,264898,32632,66536,81062,31649,25788,92774,60222,11100,63159,9432,224657,25240,53613,152,138620,163829,2397,85345,12501,37507,64932,38575,43522,65789,80198,78796,35226,3851,108891,73311,3060,28391,93671,39663,46142,30982,66041,37281,68157,26553,71872,81142,211527,39747,118119,22695,2859,11066,20232,168911,7933,197005,17066,111071,44434,133994,120798,12766,227798,45756,132852,29917,36076,55352,65281,129800,41958,18944,84678,18580,168093,132621,39997,54092,27740,32354,3770,114118,103242,43918,15899,18574,145944,3190,123469,219903,24169,100571,62403,16776,92779,14535,17168,16475,14304,37231,1712,28218,242754,61688,28980,1318,51359,222657,99200,67989,31772,23932,35351,201251,49041,27306,19128,40135,3986,77333,19649,120683,151927,21081,7076,78375,77501,101599,8011,89585,96715,58179,5378,102138,106793,26051,217276,4197,16297,27014,46721,13322,22806,5278,29629,70632,9647,71519,58818,40603,128530,8903,36770,56900,31483,26935,43845,34265,34920,87658,6114,84767,64250,47318,50720,19264,162514,33357,13117,6705,46696,75032,71054,87004,42035,69138,11903,99854,102328,19611,34525,69312,6431,49842,101600,133178,108751,41829,89939,225664,48916,99556,9195,130387,5960,36857,116724,53518,94002,39077,53996,6945,22261,64291,8314,152785,57588,16522,9091,5048,87671,35441,39509,1945,12423,158923,178413,37549,14095,1475,73188,62878,4819,24012,68534,42606,4010,120809,57497,59564,101758,103718,32701,80116,12345,95834,46918,21468,53213,15665,31200,3867,5140,96013,250744,21016,10069,13968,35449,180829,27683,39704,59956,22893,3115,26293,32785,75934,62445,141162,62720,2018,83638,19949,114012,95006,3330,99829,130935,309272,9565,55874,121727,37017,23586,319858,40970,27602,8625,112329,61060,100088,118525,25922,16232,1907,60671,51583,44553,80993,5262,94679,8676,940,20736,11823,3020,16476,12340,152600,97416,3703,25744,66826,16245,16876,46446,84798,74227,176020,45192,61955,75496,23946,23626,40372,26036,6149,11822,30582,16541,41914,82385,232823,40921,80773,14930,3631,7517,39619,4348,36180,126106,138939,62611,1477,113512,47321,25052,14546,118881,29060,23589,128322,36795,18401,137921,104699,267929,36194,172791,18113,4766,188215,30083,332586,94089,5805,77909,22194,68234,154976,43220,40660,70001,184893,138095,11128,103010,22663,5108,212615,8485,5565,49222,54614,26530,42639,16319,55062,152662,105595,21114,22216,10294,68158,10436,86950,7206,62115,3977,3657,59874,456,118617,18156,106663,112229,80992,17442,8217,55551,5133,34344,251927,51153,39364,201321,7816,66803,23057,156724,145664,14276,95705,979,2796,6875,13429,212525,50602,26276,28284,3424,19465,52397,46963,31420,51399,206476,92317,48851,637,100820,83349,10317,60227,21972,6908,282439,32857,224767,95629,83882,42106,87338,69757,29840,68709,37665,45244,114577,49188,175943,54009,186746,106158,70168,3358,234002,50555,9221,129338,9562,20118,32923,78479,118280,65752,4977,10474,102174,60947,129006,10570,83451,8598,8078,159367,123785,80438,16742,5905,5281,181513,42402,6977,163136,93179,42191,14968,50421,112401,105440,33456,57347,121611,4221,94954,36517,24046,27796,6255,33394,72990,135408,116627,1233,57874,25654,95419,68156,401399,313338,55208,45573,93124,119251,47200,38196,11909,130667,45391,73904,64964,167846,4137,115606,52036,62214,7969,160925,7187,1132,134835,40309,73195,64494,80472,444841,61111,26500,45323,40743,53625,52797,22659,15631,29739,36706,28841,39147,102836,26794,10536,14845,87305,45874,12241,127587,83833,57183,79722,30844,41304,84655,20825,92500,3722,25655,27811,10157,81634,31362,34088,92487,70123,22190,185100,72658,139035,192523,88241,2078,230490,44528,85638,100198,22088,29982,291233,241062,13865,4445,137791,37835,107218,31726,19718,38234,72528,23046,19177,66695,5109,17251,28077,5617,21554,47839,72425,133825,1486,73065,181275,141508,21768,62971,63082,2512,34200,9904,120309,6392,91243,68416,268253,41199,116757,138551,185526,41246,28986,4093,19057,17295,4148,245766,122360,35356,112075,20301,75441,10998,7977,19769,62922,937,63547,100196,26427,157820,20983,236696,22935,8140,90315,156004,47204,140973,7726,45097,52725,22636,23436,257282,105247,522,88389,216031,202204,46812,211666,19693,68828,81691,45925,11256,30292,372,5236,167826,88328,232776,151611,5360,82104,18841,80393,25465,18285,20320,72377,31730,33160,45803,38715,27705,37379,24163,18360,103586,4015,32305,269494,91252,20080,36567,54650,7797,57073,12650,31164,42209,6375,261663,105528,81661,106002,2800,5375,17247,43151,4442,15727,194619,100855,144898,62320,78465,39929,16454,1967,28311,61363,17219,9395,8745,121445,76939,80385,162380,22009,54191,44248,16299,122830,48151,74429,78291,64755,14238,44966,2511,17712,67954,93583,829,105899,49935,84750,11591,33185,85447,42717,27409,208542,28965,62052,52525,5597,25694,65594,16343,63224,276188,12475,9331,127507,38522,57287,24128,133161,79723,105548,133695,48917,27558,43278,46520,13778,141954,110785,83366,17715,46317,105763,66298,147013,41086,94180,16478,220447,44611,730,19722,78975,117889,125643,26254,16574,18480,65006,15806,38549,246418,46052,36056,8440,34984,30170,3163,59800,4458,115442,4283,41970,33507,104078,1653,22,121158,276486,3655,6338,24048,133421,23641,2161,24422,36006,8086,10675,181474,12307,29514,59143,14729,52509,87128,122470,19446,80852,33314,24573,119864,14237,9652,57779,6612,51851,15284,98871,90581,124466,156831,21190,22015,71380,161906,87247,69201,18392,17908,108470,72962,40719,14338,17911,95260,43339,20610,78916,20710,72451,11315,31448,17263,58853,178878,48111,116002,45497,80506,82605,85880,36300,121755,25215,36118,301929,88728,405223,276136,553,34704,212438,49970,78329,922,20711,25036,257130,38295,145369,18128,15385,30829,55656,48345,8012,3561,28004,122041,192900,58338,112508,41085,29976,87040,47117,23905,4336,92061,138880,97407,42083,172121,6256,25192,172671,5,93568,1420,12677,31605,56743,40620,6015,78415,231077,31298,80026,13902,19048,24924,170586,32955,176119,87859,36731,6773,27711,24658,26475,115216,133207,93250,95820,88522,8317,5714,124047,55219,86860,19677,23961,22928,162209,8904,225992,359835,56084,96201,29392,96558,86071,93643,55114,13347,8183,95129,82012,2017,123336,34219,115554,157159,47747,101684,41008,18735,193781,104151,226906,7552,179874,124113,31159,21162,44010,14771,51268,166128,31382,73124,77438,92830,205709,12113,1292,38937,13114,1334,2118,15597,69581,14449,21934,76618,48728,67038,14967,51495,24243,87736,147249,26720,11119,46063,43749,5843,44147,152629,133428,65703,14269,45604,57982,28672,55616,45957,8438,95433,37698,220862,132034,39456,61870,4161,26501,73560,56418,9845,4654,20916,10456,88920,119358,9015,65931,96507,48029,38534,21676,109081,43078,34943,25089,6131,28766,23665,5477,10255,16695,67,45778,42443,42770,29534,23733,100513,62617,42630,48746,14191,43753,50295,26007,8792,57243,43119,54725,164253,58250,112304,131796,25165,4651,3188,24831,47748,3705,19540,13211,102095,5593,18699,23666,32005,117571,33541,60584,74573,86311,99443,25172,27222,168938,7143,11853,53560,18834,19960,86522,28217,53266,117700,72989,34323,18721,66450,34346,74056,47217,202002,46269,9429,68582,75458,37823,82843,96652,32549,145144,27958,19820,158086,31955,201406,135379,31207,192545,12950,51704,9094,248263,76147,64028,110009,79407,89345,99284,223492,47966,26848,15359,201137,2861,110507,71231,72297,31851,118777,71039,151051,240855,16333,50766,14727,7939,4149,80908,418780,88378,59276,1327,7284,38576,79814,65820,42199,84860,49574,62596,12396,70598,40117,8648,7994,16836,7630,14047,359699,106878,525,29037,28064,13380,11675,50669,74216,103539,180314,27449,56299,172344,19274,7301,246099,32043,19422,36506,129317,6806,30140,4614,46639,66926,932,86600,6322,27847,233103,10541,39025,34887,3517,12972,26220,2031,66561,115015,48658,47596,12714,33845,3893,16165,35237,89983,14769,11962,147224,47018,29977,27979,5552,82338,86023,131368,1218,24853,237840,132193,15455,40873,3668,65351,53388,15229,59889,272245,47934,11858,34347,18038,90853,86981,300602,19343,114181,29362,84921,6095,106059,79472,38015,1206,48741,6208,8e4,21916,17423,6002,108083,24479,34931,56661,9511,26995,100694,163853,35997,81254,58321,18919,171890,86877,91341,74503,70477,53412,7027,59281,39892,131302,5864,15947,61301,67466,162369,47956,27874,35624,282324,21270,111847,102548,41482,30955,116737,28264,8592,55458,22301,75090,29821,30697,51709,3041,19208,8038,24634,30467,87509,126428,19389,18814,152686,20701,83474,45832,80891,105808,11378,153223,120770,98186,150633,49838,9141,12755,30962,5260,74490,21256,31678,65062,33326,289838,187831,20595,89768,2805,58535,10844,70085,12090,2451,138068,98544,24461,4511,6754,41684,28203,3383,65355,82833,30161,83924,234361,128424,28921,222594,33975,125491,34069,11508,67464,144226,41850,98703,34371,7901,21254,38398,65651,23549,53883,213340,123269,12028,71764,177701,28758,2623,68395,11549,15232,68603,9660,63116,36079,57093,31198,20475,48467,89984,35619,186847,107469,31389,43631,73867,41949,68841,114250,1605,30564,63403,17588,27680,99533,12641,70325,50428,73426,78379,11855,91651,72081,91720,60198,15743,12065,83398,140046,6761,46598,45900,5068,886,62448,148968,37347,19405,9680,15819,43496,63370,75667,163700,37639,3633,22774,34341,183131,134335,37200,23915,7054,14194,12970,26438,13350,285521,25594,8219,104410,91039,168804,138480,149734,15907,33818,61132,60082,4622,110187,56736,13551,73571,3945,73463,65498,17758,263266,17593,2710,27585,54469,38200,45367,63754,28881,3473,12791,98287,31895,65787,4463,94536,24951,36332,59901,28803,52130,86403,7668,181822,74831,18977,9850,177206,145485,109798,7292,31421,26280,77211,58511,12507,127004,11113,147,8729,56208,43066,79926,129937,31345,83947,39915,46146,98763,42566,1337,13192,18323,105163,80570,117753,16555,72883,11077,159438,40764,70933,83329,26066,12276,72059,21655,173836,126713,69454,153482,91585,70644,102558,110483,6764,127864,190133,3961,101798,20945,71138,82402,90884,69669,44753,923,16939,59700,164258,25969,27082,31399,43846,6306,246093,51342,6153,151581,202801,182731,56475,162188,89426,141356,14355,121815,27536,28023,65257,77523,106668,127314,24947,12790,38796,169698,23555,10725,44573,183083,42088,62716,43265,105958,32050,44067,50118,1668,3874,6243,318411,16599,1691,94999,52378,28671,216728,123258,2059,34969,69225,5913,136280,171443,141515,91662,22175,135282,80020,92270,1663,4808,4482,3495,34691,5226,109830,108512,17342,107488,11606,123190,100247,29666,146527,113014,15794,30894,13224,39585,243192,22351,9903,7836,47699,11078,25468,122291,48821,26780,122679,75521,81450,630,4895,92900,55074,74293,17441,3563,111657,103102,51613,12318,52370,36191,68245,34269,40445,41354,122901,168604,182500,62012,42557,11259,24428,115113,86345,12362,3909,78430,86852,134602,20459,47853,93879,22577,7659,3688,38555,13349,17381,56715,91639,12493,10895,92438,3142,37057,28928,2004,36427,32268,34222,209974,10432,67436,41989,173518,107930,27079,62729,30908,55558,5828,45031,14902,53546,8204,144263,60255,14520,88212,86582,109589,69356,8064,47449,8505,66558,16886,4844,52817,111260,215129,12941,91118,650,20770,6273,73089,40618,62790,2873,35002,14023,97208,19386,102646,36993,143736,135457,35385,113601,17893,32627,84439,100619,56016,6581,57264,172160,45452,111710,203627,70131,24100,322787,1996,35665,70078,22358,90922,83658,4097,63200,58499,14542,99153,52159,6615,12414,63415,31986,16823,1579,65405,137809,8841,16898,48082,259,33014,42375,12260,179850,73667,91389,98882,29532,17311,326251,41092,5928,20742,44964,48019,43505,9317,49265,6643,192712,48424,163487,19861,20113,70848,31928,105333,23685,78563,14638,54755,7158,24142,44018,20774,125255,20331,24280,10163,1285,2336,39851,4299,117269,46714,63816,87779,159624,11731,9971,990,137317,108831,50994,74554,162680,23640,131597,146962,170620,34829,91205,21184,1913,63616,18427,93136,156592,17519,67565,115882,138220,78622,88535,18115,2711,33554,109492,54298,971,24914,25863,36363,45715,27099,194995,14299,178181,111488,72395,322385,157719,130787,11897,81843,83999,11369,49280,118604,40922,61332,110343,53407,75639,40582,300440,54722,25637,13694,48248,48278,194521,56203,52779,48783,72627,10953,376,16733,280238,26351,230789,15132,25168,137270,3588,63704,73376,94031,74284,19443,159557,9697,39901,13351,119050,15406,146455,3460,29556,75195,37673,102524,92329,47289,98413,15311,100684,56345,7116,95480,11590,7200,167,23610,58426,17730,136656,27944,53151,2701,8824,103124,3017,90744,113588,53216,79736,65940,26931,498,29568,80540,143543,21292,1740,59268,16561,180816,42323,50174,40890,52866,10703,57169,4700,17191,4424,93511,49698,166650,26972,48631,165169,82879,69326,202970,4007,2376,231325,139592,22119,62851,37504,68816,58345,67398,186643,43331,277416,53749,15746,23102,17432,4793,151138,48822,54265,48203,198688,14305,54287,2291,18018,113378,123260,7180,97549,87027,120085,2920,76080,8190,102005,5641,64580,14955,59802,54028,58884,19367,81779,412567,85957,97053,103637,78871,29364,27637,141728,4767,30686,112738,130146,42745,12730,105040,14844,232,210944,36581,152317,135543,29744,3129,55647,58149,46319,27265,17499,28005,59948,7170,34138,5702,293047,110892,408,91760,218674,18469,46095,81403,14389,4610,35672,73060,11006,74848,104820,118143,190357,20043,105358,141735,5115,27093,45924,123073,52599,29433,9616,238350,78610,24851,58858,26769,31969,24613,18294,4982,32735,39639,143563,112073,202205,12567,4873,88601,44897,81503,101648,81362,34662,85277,17574,48173,21435,221188,40215,39576,80786,26544,64668,81841,10731,37733,247986,149188,127703,495,18382,54388,72446,43071,30974,198723,89608,41360,190,33045,8386,31658,19992,237838,119015,137622,50890,100913,6460,116233,267230,26621,104129,65114,14190,41542,14888,85962,23342,23041,26453,43725,71809,45186,4770,46452,53894,56616,221286,18973,9038,109299,55365,19366,26863,18808,60909,69353,41738,83463,12100,68561,72860,3980,13796,49340,12332,31311,27418,4255,53430,18976,45523,510,14224,30477,26581,4530,3651,101663,139840,22709,150861,31996,63923,120623,262522,3076,10528,2929,14672,130238,18087,9816,121894,100308,25085,55111,14565,18952,53293,2042,369988,23674,61789,133529,28783,108293,35477,47119,36448,71049,40015,33055,78598,198442,1833,159937,40654,77444,189245,113153,8621,18599,38553,35223,166072,2375,11659,21786,89523,6032,12116,63046,159398,18454,3678,32521,47626,11411,103527,38896,42946,15696,26370,10185,8413,37080,165583,4331,63555,14907,72220,50056,6623,62236,36565,49783,10049,17503,100581,55951,146244,24724,9626,17969,25524,109300,173965,99994,101056,46459,43647,53737,277968,8347,123521,74858,33829,44762,77574,877,81377,222525,123532,30602,43881,53145,2973,16284,81940,61281,127044,63620,9875,14756,114829,19032,9202,52759,119141,23928,120551,19607,3599,33401,76821,73233,117430,39968,36539,7071,5446,121735,194059,15206,45283,6706,15603,65615,1207,165723,92275,34773,104447,8396,32353,205240,164323,13600,60555,79205,25532,22907,33410,57480,107111,69630,32137,47832,70913,33161,20321,2371,117348,10714,86246,1625,11763,17900,268,78457,99175,97940,101092,86660,32221,14041,128504,125080,53744,124263,31017,13897,403,31859,21964,5633,111630,5547,77329,17961,18241,84995,25984,12983,67491,62168,47262,5241,297,51191,7351,8967,147212,82060,16821,782,11033,82431,62957,5026,43459,77963,203477,53528,6247,191852,87774,74164,215654,13467,1522,219964,28589,244104,16242,117821,67725,72570,156792,17186,15979,26990,44128,193014,35276,57125,16212,166451,68017,6905,77608,16364,53777,75921,76426,37975,26203,269296,64099,84122,12077,38533,830,4407,20139,963,43028,38902,42911,37503,83343,85045,16979,1165,60835,137387,58380,86990,110066,134540,56331,193845,81238,17922,163093,38744,110641,12502,56404,34862,26865,125964,12965,111648,25547,7771,27196,136980,9555,29551,107158,57885,18831,37705,35505,101742,13970,102109,62548,124657,23328,11124,89592,146376,248050,6241,22033,18337,80685,29898,11908,216623,67721,106162,146610,21377,15085,91552,42041,62560,122532,125336,102365,121537,142559,29693,223919,11515,110495,18776,22494,5895,185059,103592,229351,51220,100102,37027,257855,29359,54123,36066,106493,12244,79258,32002,432,56205,94836,90182,6726,14762,29391,48938,26864,38083,60364,3310,60192,14766,205567,57504,110760,22649,24666,46333,21517,3430,13135,28873,27052,158809,11597,20529,6695,23138,22960,37137,45574,6545,305877,43423,26153,24769,59844,14501,10430,134352,56169,13213,103432,49523,35181,13435,12408,129475,64620,230854,77390,51990,15653,83248,33466,44571,117828,51481,2187,10559,68019,18021,54895,48247,18354,33737,4554,108595,37288,39767,116707,9175,3726,108877,21616,83684,49862,1938,8543,276466,20134,108498,48770,102254,31914,131520,185291,100559,51890,209,19526,76471,50544,71814,99351,8172,198526,28816,20419,9109,98389,136777,76479,75596,30635,165417,48216,120220,25955,211071,39314,24308,32164,2559,146280,43403,9233,17947,90585,1786,86920,125662,2457,64741,32152,32918,122882,78538,44001,31723,56426,23375,103172,88177,145697,52506,49319,68016,31664,41488,18486,110400,7030,28241,986,109199,19900,42147,56864,65287,49183,7858,24e3,30453,840,16673,25907,68916,89927,6309,158335,36407,199737,130464,13137,59603,201778,195292,21015,42466,179062,172561,89492,11075,180407,31868,72493,20998,60217,9865,19530,39274,130266,54539,21623,12535,13505,40641,73375,4087,85633,2153,3117,70680,55788,92096,47509,98493,37490,271936,151475,3032,16171,96642,34106,78425,125761,19591,3366,19316,54508,24183,50786,194248,91528,33253,34622,108355,41741,705,3814,3883,108929,13203,67831,10142,59754,68208,29128,84820,56880,38794,24972,48571,40821,40476,18137,164254,24064,236309,79181,11282,395,39169,2013,51587,28551,9645,701,109513,115899,113566,12762,62045,58322,103726,41343,40866,244102,143816,2490,70346,40973,52618,15412,30720,104315,38917,42027,93676,17513,107418,20706,123890,13399,97727,24044,87962,65606,44250,98044,65276,74790,101473,19350,91570,1326,87790,172042,7577,100813,86896,85891,41512,108130,27794,14875,71431,12835,156250,58135,3759,22476,42176,115873,34686,56523,73643,108505,51491,20838,12721,32863,45700,29496,13700,34294,55360,29206,155942,123812,7706,163234,203,132720,49358,144431,8130,175788,35818,3270,76832,25710,54095,97274,28779,94621,74396,19092,128242,58067,20885,14670,93255,15107,63291,23654,126900,129421,59294,262659,9798,3251,67344,28600,44629,50672,29072,26999,31526,23183,49175,165843,175455,17282,175411,32022,45989,30298,90690,78118,83156,23749,35636,31317,7069,80381,94561,133756,14960,97404,6138,41065,78041,32843,16601,34123,9559,146529,123377,96395,54441,42012,84257,123541,10745,22139,106459,11720,150883,172651,154996,110538,4728,53447,25704,2009,71152,119354,21166,66604,1429,216162,8637,122250,63520,27180,29172,36124,276428,107787,77184,4680,14952,104903,24418,14793,51561,52931,8371,26342,48526,7118,92066,67280,40653,8847,34597,105438,14198,50163,61188,146286,50315,41205,170829,161496,585,197359,95056,1687,365794,91349,48507,5804,49263,5146,104902,96365,117343,132222,46084,96919,16875,8073,262381,79982,52663,13928,16056,153908,15145,109256,132308,18763,24904,167644,13618,40750,18686,147124,114709,150038,52849,2938,12568,48617,8778,5459,44202,44591,74914,17183,248689,13878,7822,80060,23116,194037,18487,2067,7798,43077,33678,244028,31320,74273,2794,19466,8218,36280,183997,48124,19416,29656,19280,98734,7715,18311,30701,133602,150307,126956,7378,2933,79903,13178,12593,86571,26604,92446,13574,44205,65699,427599,21118,8245,14407,27877,47936,33542,7916,26460,117762,21596,37818,2249,127359,209394,60044,47677,308089,36791,154971,31417,6998,150042,174360,12255,43009,29335,48739,3912,101398,53340,2580,146939,151295,45360,125275,15273,45383,27456,48761,23314,8750,60801,85823,104759,27894,123685,66968,39480,26917,55290,83305,2696,98390,57569,145853,340733,4919,20024,52268,30884,7413,203685,70989,112855,4129,50536,349518,68205,332641,159581,135361,236026,37563,176404,64899,6578,122033,63871,1850,85234,82089,66124,74145,121098,107351,12687,36881,117334,13136,14698,85933,93866,18047,32620,310,15094,46e3,88451,23632,36645,27940,87618,80520,58892,20976,27702,140090,96075,67841,103292,238964,87778,107338,17019,83427,67522,7302,8261,47570,116787,8730,80484,61772,174422,56005,131193,52875,14588,28471,59817,9586,15720,158155,51307,109734,15196,11025,59331,3884,52626,102602,84797,25158,27314,4437,20488,76214,189248,35023,114952,157376,2827,62439,102878,129749,36405,10329,109339,108633,36662,1254,13267,5470,87105,58004,15397,10434,159667,21864,52022,179464,3013,32147,31496,116832,18494,105502,129227,107267,50033,13481,9954,24267,22141,16257,116154,36185,950,115685,11305,176708,2048,178671,112573,287867,162328,497663,95170,50979,193861,50987,30368,136257,31830,46549,15119,169876,23788,17462,249887,57377,1949,35448,14791,43769,210091,3783,34612,282103,88380,245190,5457,20491,98908,11402,86899,117916,16028,162584,60644,320177,156096,31065,55876,22e3,77655,9992,23397,13757,317623,63978,215255,2443,17648,93231,27388,104529,93807,55505,140477,12046,112040,70887,40152,94365,112353,25063,114679,266061,71248,119555,15589,2244,617,14129,211431,70110,100652,7777,4383,85911,89221,21010,120615,58357,86405,37554,41647,18,15143,69662,60491,14714,186134,148344,42347,5410,168175,44535,42449,343894,129417,99682,20659,27272,140483,63455,222159,17536,13722,42637,62324,11976,114691,148109,2283,32057,182393,4295,147364,33705,2075,44303,30274,28331,63740,69740,29148,10346,44862,33716,73937,153333,12930,38784,247159,2515,41053,20256,83368,256189,54639,115240,5096,24661,175419,153552,26516,141,138176,63885,34115,47222,55709,2765,28479,38875,236608,12229,22921,77291,54426,45388,2860,57787,114579,295139,105782,17826,71066,19119,54364,69385,16568,12323,28057,33346,34919,124763,155533,101386,31644,8627,49001,303600,29868,63213,9103,77280,71333,9696,138789,37059,24823,5057,21352,32368,114208,56803,19424,10445,58514,8661,209508,26187,171838,10460,63454,14016,122504,41328,21329,46618,32493,38225,7855,31763,7945,29876,8734,6438,24205,97490,139977,130740,47323,33195,85390,57194,13813,60600,21313,96251,7699,27584,170521,139271,1363,4402,336738,129223,84983,69150,13147,3590,163929,207225,155260,55916,20288,4503,8398,98490,11773,27512,37113,84976,86558,28365,11756,116005,182148,13733,115313,47644,67208,85069,9347,14995,226141,14704,101835,41159,35314,13113,63526,214039,29978,50446,83339,17440,129441,72522,118641,97816,24907,73844,15717,118884,167255,96509,162793,30847,36849,51297,78974,77793,10427,1873,2972,9999,35074,28190,64297,146836,46298,60038,163007,108919,61219,2403,75022,127339,4233,110389,69022,9833,128097,88016,79390,222936,22570,94657,28462,56956,38803,81536,30474,152794,19566,16481,147408,74574,81895,20731,1918,1366,76367,187321,54494,24366,21690,61696,33283,107477,77499,31112,414383,74362,18463,218441,120929,59848,258629,201924,69269,454,19989,13054,59894,3623,58908,20681,35723,78523,102680,38988,184112,108087,50944,132704,52966,21699,18860,96349,201411,82697,85395,95658,5093,6427,177894,44191,32755,26961,155739,6249,31310,81030,26574,84311,120155,86730,113535,7424,48888,13516,45747,98098,20077,183995,81945,43210,26704,40420,75831,45648,11180,6855,57927,65528,124096,34851,2598,156633,107572,127352,38169,123845,60142,62722,105584,232364,23211,68120,1601,22169,89299,747,258039,80572,7258,152249,11862,101204,8834,121434,33761,19175,133142,46343,40178,48723,3589,41977,30210,38868,62257,10087,82658,87827,90646,16415,47552,351723,28298,72225,91146,272760,1701,11295,1652,109651,300747,51863,198800,29446,11794,32345,37538,22356,33102,37590,113544,37970,11478,179743,25454,103417,59905,221970,105196,145604,7817,164809,102360,16974,75840,255333,56902,6659,1954,645,59400,67769,7689,18675,5215,13793,20536,27852,3387,29523,259718,16860,94625,43143,29245,15848,233581,22685,63631,78557,22836,133302,84513,1348,51826,47129,98836,58284,1830,1749,94642,10933,6145,12506,10975,13879,103781,144434,10268,28409,32346,52968,121567,107374,77268,23686,35097,10501,155275,15303,47136,21102,168741,55332,90385,15996,84817,681,137803,25054,142275,6163,38175,8056,124296,240642,65621,4934,178205,16101,62803,60964,18230,100622,76465,44689,14545,9543,47514,16852,93380,28048,12047,107106,37575,101485,77047,57326,34819,96137,76916,6469,46264,115983,75768,87668,69942,13027,165,8373,114231,26434,52844,42799,182044,23580,146254,38081,43236,33883,146220,382894,14606,46035,36481,166621,35417,95382,2957,59384,60428,36358,66343,75378,22267,22950,83528,17577,56474,25285,4619,179691,75355,95836,53295,34588,171410,4487,14679,84208,44015,18562,109133,54101,11531,86052,174479,303157,28095,9953,35642,14564,39802,16145,77606,117406,53038,121117,53624,22062,1212,7632,127157,237292,189087,10478,127345,102515,181997,86752,87623,10966,121602,68783,68681,83042,114380,138349,191305,67176,50085,39016,1427,42384,1412,67118,122616,72389,25260,2237,13576,137346,19938,20304,2191,68759,5373,61364,238507,75814,23931,69565,38993,131741,38364,12528,87762,5679,129853,5310,186831,32653,90338,260176,389531,108118,26843,43985,50175,30563,25106,56965,18130,140428,4542,165503,117991,24219,229605,1819,129663,1240,3797,76093,18398,71339,51919,93043,27175,47060,216257,6483,35051,1217,16512,80798,129064,13225,69339,8548,237079,72298,2575,34280,51379,117910,55671,53345,247552,29486,39328,140821,34681,57045,60177,5004,90269,78522,2479,322607,48474,61296,13057,31558,4678,59271,6699,27044,31988,35944,12503,83480,4389,136508,3781,114121,70279,4488,155829,42214,2898,68191,75695,305850,45041,74344,106509,30087,17429,93292,12477,290,23080,114802,35714,18751,26554,105424,17775,2144,2412,100610,65192,113975,52975,180272,135050,129815,76238,106483,21440,63186,4260,46189,9711,28249,4169,23429,23390,8324,141585,63809,67668,38457,38063,39226,59972,1189,203916,62368,14403,16949,61767,85801,1739,40147,35049,76757,33124,62102,15780,103593,103009,53484,22952,67973,114645,6566,5245,50462,7601,8288,3513,194571,80276,1908,54592,5124,58571,2513,6800,273997,193904,1119,17991,117245,2508,129156,82366,26278,71465,63341,56943,39662,106116,94966,156875,9736,2204,122308,94418,27134,1280,24539,49022,45314,3764,50904,46424,30699,28087,293839,9400,33646,40165,822,147499,50263,116179,29085,11863,31314,5578,17797,5104,12454,1604,15342,219206,10232,67800,94261,25872,13565,90339,78971,75377,26649,41184,47695,11514,35369,20767,14227,41953,309396,148270,147938,33074,14453,27499,109019,39018,25738,240196,158931,52820,8612,95853,21524,137010,84901,70869,70021,116794,48404,38771,6732,1070,70990,187297,49140,5238,576,3564,253975,16027,16483,2811,37775,19034,25259,4053,2e3,70083,95774,19713,33431,92703,91314,42381,288770,48194,95985,3991,77418,13406,241328,245086,56533,35275,62725,9246,51924,70181,95331,16163,31410,79016,39312,120878,119371,275987,80124,27712,9186,220,23598,146167,85209,68238,282190,57048,31273,30555,80913,17594,75779,59160,135002,101219,189377,29225,96735,60126,62522,104e3,27620,86814,17240,147533,11001,5425,43682,410,49460,87270,69480,46315,59448,1816,76201,9431,11788,87960,29063,65539,47347,11678,33846,7008,196704,9895,6753,8633,120892,59970,572824,115934,6646,202559,892,48351,37611,251282,57823,67263,57750,26527,34485,90747,7685,88370,6144,64182,1709,41969,21458,62327,181657,49247,225330,122600,114574,107124,85361,111833,63243,71420,15655,191178,72430,18063,51425,54002,12364,53225,86557,18193,97580,41232,138398,67821,128724,8944,233212,101353,52099,42127,14006,120107,32789,32132,3498,18123,33758,56058,5779,128760,59888,98869,18445,84702,51911,13234,218379,20093,39031,8074,70195,20708,23462,24355,131384,60189,26390,10403,41060,7140,10781,49410,42261,87202,82566,41663,43105,60276,2768,5733,74176,28329,2297,145430,131632,83615,122915,105441,655,224102,5284,136426,67763,16294,188511,32538,61049,27893,3394,13951,159099,28542,17930,145360,9492,190122,32285,78855,26440,13570,58648,73908,4239,124561,2444,74172,53131,11468,10794,73566,11623,35343,64710,30481,4163,10328,38309,29901,10538,154377,76132,92405,24839,11679,3465,13449,11637,7824,2337,57754,1260,14458,41118,19878,38661,13416,159180,37074,163164,54137,28627,52134,184900,8520,40385,29546,30502,22386,66527,107458,6850,24022,47983,30603,35083,8934,304066,39500,9,28261,33026,77251,9374,44833,116312,34990,29236,63563,125639,135405,165398,159055,55690,88141,69643,236964,31983,25572,20436,36746,60896,31850,16179,11828,5888,3043,66368,9750,31167,7915,53111,36430,1333,64344,93659,20061,60596,180191,51630,6792,30244,43509,101058,22409,420,44210,109783,43223,27030,72477,72831,32679,29235,7675,47556,12258,39907,149412,84926,118247,24692,71717,105038,86009,45941,41189,89453,29856,52543,30627,226798,67303,59230,67415,34408,1367,99685,16867,128419,52147,4111,125381,117881,16173,44093,102224,31575,23234,24870,83790,127407,239098,3200,994,1255,100903,242275,117266,55116,38205,16140,29662,11307,40414,208793,123355,56470,4862,75600,30119,58218,70828,24075,26974,7802,192353,4851,5475,78720,66596,3409,28573,64396,30381,30690,59859,88256,5406,99945,103064,34463,37727,24238,86643,60088,4057,23741,5967,162904,38240,28356,93858,25510,122879,6897,3278,7057,11971,4400,35461,211413,21395,59615,39471,87233,55795,128426,3051,22470,41950,14705,3974,180108,80476,78442,204996,91987,15634,67610,139015,142373,35611,51134,10387,4353,153456,57749,181039,14183,68447,151532,21107,36452,20551,3186,46247,46383,129666,88736,140662,146243,2066,8360,7978,64818,106963,17896,47801,10723,114821,223295,74192,3293,3393,16987,74064,11277,91622,4270,29828,27951,387869,103235,1374,61988,120083,477,145892,128378,11779,211263,61354,18221,17869,46530,83061,108538,157981,90608,67199,95080,49064,195814,12302,66307,10348,231346,160732,112859,63633,146558,21271,31037,198802,47622,12862,95710,3910,77850,73961,85585,34752,61e3,4082,24595,103679,71107,8208,79568,150019,16615,24961,139857,32664,197366,4559,54735,32696,4126,162019,75698,13916,70108,159638,19834,9349,24675,175560,49643,18206,52459,27992,10809,88865,401975,133172,29e3,34558,30915,3658,25834,42430,36562,125265,18182,10155,40149,97082,208980,19575,60853,90529,66545,9600,789,46420,2317,88593,55595,98980,115302,5742,169155,1073,177901,3472,11189,63711,78643,65472,50459,127979,93,42202,67053,21720,157650,11145,141378,42033,22824,85705,79114,35584,15974,1510,54172,28562,12451,104226,19190,97151,73024,20948,5151,81741,21499,29006,84183,198074,54003,45120,170125,26240,35177,28389,64863,79974,60778,176915,232183,45342,2038,80253,41564,40703,32689,5430,100689,5366,23007,134279,14266,26712,73993,24934,64242,52113,102887,61801,46415,201049,54251,62133,122757,164883,30815,139966,2319,30842,766,13362,10287,134518,86111,81665,82440,28333,43019,18963,8804,161944,23439,102144,101145,80029,39052,248708,30350,117340,11878,128467,974,138625,63961,5237,74778,61834,67040,43814,13690,65947,33809,232476,115258,181745,28824,94013,9510,10246,93722,81976,7217,114383,3493,16014,69045,72692,12145,80981,9507,6692,1620,60820,330444,35474,33962,4797,7053,295463,46445,27026,12491,77988,49524,35675,90947,29114,166705,101385,133782,32704,6186,84595,176031,185623,45966,151302,63069,1699,107491,947,15458,74452,196212,6046,10498,12163,10239,35191,243951,9277,9090,29539,54460,22820,26514,112549,60372,51753,48756,21812,70861,260326,41,44222,10441,16961,48148,138771,216194,5914,52153,53400,212036,56519,26245,10117,45888,15294,138019,90913,26368,43842,42111,23348,6082,194845,161089,156206,51546,11647,30759,302912,262094,8635,78876,26535,35283,54183,31183,85484,147873,12989,5197,6356,72894,65347,20150,27370,73787,1493,45918,12366,190217,20724,13858,10981,67449,81213,7553,14115,72242,271517,11842,48310,88743,143726,22177,3290,243231,58452,62937,12592,1654,40066,33477,13751,9921,128442,15868,7106,75236,83773,10775,36938,10482,170465,17368,17469,161508,32752,98340,800,19824,264456,3901,87319,2867,26782,9630,113102,185815,24197,44584,86366,40224,3636,140916,31731,267731,9567,53678,72984,29389,27963,17106,50282,284911,60170,8322,12608,23374,89652,5268,39044,229766,8869,151350,31436,177342,12269,183212,120418,116270,2843,78888,69192,7865,184099,1086,129897,18383,70508,20242,18508,229924,124569,35749,50589,55626,9884,83115,40971,30671,18135,14452,38861,17844,201826,5549,26413,17189,13561,38539,10679,143331,3314,36785,171194,49685,187713,67506,4618,104039,17060,195080,50648,33159,19238,67559,134840,28599,157523,17130,38064,117398,94355,31918,13575,34538,40326,13997,3494,348283,62481,26862,3603,104426,244363,153709,112487,304612,199674,41239,35545,54869,293005,28223,26277,26899,4533,18518,15492,38587,80488,70485,160395,263,60162,11382,222152,4696,250751,51921,182609,10707,48463,46243,1227,49111,111564,46502,33342,56846,68541,63559,858,139927,16654,229375,76759,26478,33205,95828,23399,92945,2637,35630,28470,143992,50214,14174,21456,166191,65665,1711,21594,78019,97599,111701,36,147151,110246,189022,43021,30397,40757,131935,42065,73335,48039,26596,28984,15102,2361,7421,202167,69744,43766,52826,3642,83304,33873,75140,63169,192389,36551,92748,13039,123959,233220,21738,84447,77230,20228,187852,19095,25799,92136,108774,29237,53947,2299,118106,2687,8830,42331,202924,33667,2023,73763,30704,19363,19779,16737,35629,48081,24068,101013,162338,291912,13749,24745,328289,167679,70086,48299,23306,16732,17801,43322,54589,3586,63653,43624,53474,925,109177,251316,43805,13082,19511,86565,142182,92461,17117,101033,103319,64589,4022,4351,235897,5352,82705,107142,46391,156084,5860,61365,10558,13045,7717,18357,33922,12590,33065,6928,46993,783,46937,67846,8952,26295,6107,119656,18799,17458,50747,4229,179559,112727,118080,20683,41464,125468,51560,49749,44231,7359,35339,62988,136487,67015,5208,29150,24956,105186,48858,6143,18097,6972,16404,73489,58742,97196,36357,164616,5834,32267,13746,147733,15113,132091,34127,106298,39729,106426,22294,9780,15602,36213,71502,42808,66802,599,60755,5851,39120,67363,108623,126368,72770,91263,32486,30596,151717,7951,52002,43103,11768,68942,40901,39344,24037,127500,116890,48403,16926,86750,17745,48648,159545,34460,58419,5634,114317,67865,31462,23352,24010,98185,125708,69686,68337,13610,26271,70691,2980,4768,27225,102402,75453,28106,8104,6931,1176,6274,6475,112635,22498,6176,238686,26832,28893,90319,14441,15682,15087,39517,45270,109134,104440,45965,47645,81772,7876,52683,87720,12898,4505,185665,2769,113401,15664,57592,105229,137381,97059,119268,6876,43309,33886,128363,35476,144249,67013,143587,83367,25703,91436,59347,53236,2289,16519,19844,46309,58558,99834,23313,218816,231303,36388,51333,183535,109792,139277,54306,90139,18235,8275,32710,37677,82464,86025,92204,88842,117723,37570,128723,234242,76350,73795,34896,148247,58424,11105,11744,45746,63372,17118,49772,199520,81902,38004,22911,33752,3125,1995,53792,4689,26909,108150,146062,69674,41811,161444,84855,8999,28561,16731,93937,3189,21967,24890,22943,1356,145300,51569,28802,517,118679,31703,40607,48098,108854,25003,10233,73969,177495,5248,24516,215347,146192,48712,60626,69188,40735,5866,586,101541,6509,47590,52129,5969,222045,110933,25733,24223,65339,62812,2414,155418,35819,16022,78423,43138,20995,128255,240673,46745,236093,72176,57085,97841,61248,107,36068,193177,105427,55726,215229,20446,47228,100420,87091,14429,121708,23605,21157,187721,21880,2997,203976,99166,95068,25877,7724,98925,83401,4829,13182,18229,13718,239662,38653,116505,153497,30589,89029,38962,181302,43853,78872,180301,4786,248240,7401,106136,112590,77745,19731,60880,77789,125748,135487,5975,48627,34084,12419,215770,47557,254582,10364,106495,21856,67539,88981,38805,21428,48732,42316,12149,16078,52808,25327,51322,33850,51147,12253,122354,46077,56483,254553,115417,81834,150991,94662,86668,7381,12841,100650,18218,15741,22372,68294,50705,15535,84660,61887,22553,72299,31361,24824,17743,46820,64288,31582,77006,111674,116384,30760,80920,86149,77192,51979,79691,60342,122805,103800,240873,160744,233114,78962,54920,8608,3484,316104,72548,24337,5088,230040,21926,10172,36838,26,86221,83458,102176,12062,17571,41929,41170,28428,68239,41750,103930,2634,18313,53019,34825,97837,63115,24606,73157,152474,14715,91439,37033,109806,140259,30668,174760,380,135597,95673,136073,65073,134249,13829,17279,122305,4420,46444,10237,64848,203623,70728,10349,182885,65075,24519,25783,40318,34139,22222,63394,55266,102764,41422,20126,65100,90408,53640,35128,48932,11192,38935,96839,34782,39492,19396,41332,6250,5511,19492,51304,25936,104466,54099,73771,86115,5080,7669,30891,111700,13931,25276,72289,135447,14820,258641,25265,31005,281179,75286,393,95359,14623,13584,6680,101227,80173,44933,76666,54542,13244,39348,458,25379,109451,134348,81143,6959,65554,12027,51311,8716,57589,140731,28467,23316,17272,30458,25980,55229,77197,83798,28302,114784,7428,34548,26241,14712,39336,103304,18928,54080,12870,334,87722,15208,16895,142098,114262,39820,83913,57817,28682,7721,14900,108672,11250,62246,42849,415188,1724,26555,24549,25505,26443,107450,145899,61035,43528,6901,60726,65906,267741,21338,147590,42079,18924,73017,135236,15393,5206,4026,84185,1531,5988,113890,82647,303391,7386,69844,71611,189865,76523,31877,13315,19314,198575,32821,1928,67641,25913,104475,103489,3297,70391,18406,15446,113347,19295,93790,27856,1792,167471,116449,8541,4408,41757,63233,25765,86680,64501,27034,24816,34975,6079,4486,49693,36229,16917,21581,62426,27862,11612,54284,35702,194034,355,24277,48262,87411,70504,310164,118018,12516,47559,43502,57433,107139,9290,66533,80863,14634,34312,91725,28606,21342,67241,72355,43244,375789,37402,174015,105070,8342,44167,67494,1890,16365,11723,271002,1865,47918,8350,45564,27742,25110,125803,8553,49504,81925,62211,4534,15491,19011,80373,206920,667,102405,128623,245524,5553,113309,192739,65766,19567,22832,261958,29679,21293,71134,20962,105123,24721,860,21752,33448,18372,157167,94822,35770,173224,232737,75729,28937,46828,28062,25453,5207,140366,36665,30652,6169,67920,150458,92040,23186,184604,92330,20891,176492,49427,27828,38305,42495,143982,49560,25503,90043,29747,65328,47830,12932,11068,77721,9003,25213,94205,140426,46090,89945,138173,192691,33329,112232,129905,35709,27514,1841,19957,31411,127476,53572,17497,173549,55063,175135,19841,69314,5192,237921,117660,150697,4060,273045,50414,98940,65348,153665,164423,58804,156695,48994,213928,86036,28608,8355,39574,34540,16927,135680,18374,151587,10830,53805,16878,16623,4282,48030,8537,14986,46102,13062,72897,72,33050,108227,39451,45935,651,113320,40535,95176,57450,48843,5003,19019,10407,211163,3848,1068,4988,32091,30095,41692,15099,43602,107434,50744,7627,171349,16313,150832,352665,207750,33937,38256,51091,156e3,87889,90663,84175,24908,114900,50365,31494,83829,5398,169342,47521,54818,18935,8356,43094,41212,174536,10082,92550,6678,60614,23355,69721,14796,34149,128830,58187,3179,208,40325,28399,225029,401412,51150,31580,207268,6657,10993,69818,64282,289845,23308,12961,38447,6681,52944,31855,2572,47646,120728,179148,37240,45196,218274,4816,3695,21961,50084,35209,18073,51452,27004,6100,33941,1377,84831,171214,85,141510,9078,99227,32610,6417,11718,49868,65579,87902,73018,49062,46280,61742,21512,40862,107733,15941,29168,157765,144919,14487,5767,158014,140070,7241,573,71584,16921,223566,40331,179473,35081,47926,140885,41508,52104,59180,42310,32811,29048,123517,102413,80208,10104,14746,12649,153641,126022,37965,113017,4171,83,142592,2809,6362,50416,71323,116894,260776,16204,1524,5760,30351,12658,20703,54403,36083,45408,74772,4946,14485,50759,111222,10890,2195,167147,92962,130534,16283,177256,35016,15472,210156,151187,73922,117691,43250,52051,37392,24811,24358,30830,5775,818,21969,1476,127322,151783,58392,31021,106913,65215,89407,90802,28531,11690,20234,95249,44602,37256,18707,11928,5161,4410,26571,51903,49768,22008,25252,65780,209499,68769,203726,13249,137363,48845,86823,6658,5674,31881,1083,1823,108676,34518,166752,13791,14287,91576,91429,8665,11529,26401,16191,91972,30964,5254,28486,54697,79613,66520,18447,22870,45203,194466,22822,51703,12278,76716,44595,73455,33546,12235,144843,36154,51247,11116,33040,3180,225753,60864,1972,28469,12891,28879,10338,144157,56294,353058,38302,41447,87532,110616,27065,168438,6557,1213,50804,144643,24817,2390,136531,38174,247513,16190,4059,122791,131994,137430,39506,57650,16305,5188,54309,106128,20628,88071,67394,395446,250285,66176,91254,1399,114196,43915,60230,44853,27206,106353,43013,18733,345105,226453,51202,16607,57106,117175,35492,10476,89598,127439,15187,39624,13688,61570,10615,31111,59370,6238,175252,32143,224492,41388,95408,34384,148238,78307,38959,9340,160091,61443,15737,11216,41244,170,38299,102443,113097,26382,14027,33707,3957,76300,66160,19431,18900,6952,1717,108656,82206,188021,257335,27295,43999,41210,31777,46956,57457,12657,11489,15697,48060,204748,53583,82422,284790,30503,137341,8120,19615,220311,15991,10217,63424,9808,67431,70976,98221,4491,15177,28535,144789,751,13230,2394,1504,33977,132104,30316,22230,931,97193,185240,24826,22687,174322,15307,22988,1390,188745,180325,29580,59068,74903,18994,29195,79,15436,7622,38462,11566,138710,44828,45774,37768,99236,68137,84083,19282,22698,17134,74807,126662,173497,46248,16938,119735,3212,28292,213652,49013,9975,32180,45660,86250,4801,68788,95490,77482,113751,11994,44624,94452,46839,128497,100316,5798,58588,73184,202987,65417,37790,88524,1606,43156,97964,105717,34947,11203,100060,37742,130074,93653,107799,94311,196106,41347,8035,10780,16390,27883,118236,167395,1979,25006,19375,31628,18916,144723,78502,114047,103107,86492,107686,5844,20934,206963,23556,22591,16562,146333,20167,10471,117434,33085,2863,9740,36669,41849,37271,22790,18209,28979,8231,12952,54408,21731,25130,45208,55748,138120,75826,414,29593,9925,292865,25999,683,123149,7036,92159,86055,61827,103680,23176,54918,58466,57578,13305,5709,86479,16697,31064,17660,200919,10770,49793,33423,32370,52047,16488,62555,6459,8426,83493,7763,59725,82812,18628,67760,79405,68557,9612,7673,28102,56517,69620,171797,32458,29541,15870,81109,32080,207644,71495,21202,11039,91036,61230,2810,130800,32260,4613,60590,37112,75214,33979,126402,155062,30642,63875,12810,194463,82799,47664,16725,36685,43367,61099,449,172150,102867,21691,301838,36745,7130,18671,57316,34852,38034,54182,35578,65900,99486,19771,3456,2658,16914,99866,28390,28109,8262,21147,34353,20006,4228,137085,1675,203023,283196,198286,214375,163329,290603,152574,40471,83506,30068,14730,23177,131539,34759,27668,32178,71896,104799,116305,85430,119262,42860,25160,8911,23428,49437,105322,6519,16203,6349,74711,1230,38045,8540,75165,44736,25909,51026,317034,4984,32281,91312,27060,44431,17817,45363,155937,239085,35697,59784,91993,29531,126740,213757,76560,167776,285273,24262,8237,65030,41160,74437,48804,118916,13159,37842,1031,75349,1478,11655,108777,23435,277425,101734,67469,70231,124711,43532,28514,65526,54956,1e3,21882,17728,25302,40952,52214,149632,1999,2111,3259,63362,89961,220561,39777,26335,9063,10572,12416,34551,34623,38604,24723,5947,15588,69927,66252,119177,69173,46629,28714,70715,212408,20521,406913,74380,11716,50659,50862,37009,88460,130101,7210,53853,538,65120,151950,55806,163748,52837,13153,21100,16674,64536,6091,138201,44837,58547,3723,163,2177,32288,85454,34033,8497,14282,25742,10535,10741,79559,117493,243787,49337,100718,79495,40139,42956,7551,55433,15421,31509,23034,45081,547,61176,53434,328001,8470,36263,30145,4519,74173,53935,11845,73774,60211,78025,3,4102,73782,109293,315332,48412,26683,13714,6865,20128,18490,104141,325,39470,171970,115860,15707,7268,73301,74336,31370,2368,111827,107757,136231,142844,97138,96638,84053,38691,23801,1588,10573,122098,77039,240,186135,146101,11996,18143,112963,46171,155836,348769,47795,121213,116266,132515,3344,144804,31286,99187,255838,129694,35894,48779,55235,148582,71967,65282,15174,13920,47080,6147,108242,157593,125025,7136,1286,28957,127956,28402,98813,20805,7532,109417,40610,5041,32958,15142,18408,108596,33543,50517,27748,80114,233434,91447,487,37094,100048,30541,43477,10639,89862,155868,37667,8726,60684,237903,73408,99589,12190,38739,97348,3914,13594,2680,149016,13907,30171,28343,23530,115225,61104,35821,147679,14337,4297,244282,24085,326976,56428,7851,21303,131620,71446,83253,68692,111870,5224,15813,38197,49026,45057,13660,3306,76345,40671,27905,91072,996,68527,62085,91351,122634,55109,168209,2024,27560,112707,17352,8306,167115,169921,166958,5031,46020,11844,67284,19130,76185,6920,32849,5450,14610,22451,21002,17392,31872,66682,84796,13709,40210,59898,12029,8719,53564,21462,91884,21647,88379,194428,12754,37797,132826,160016,22567,54383,53186,77611,31107,8339,4694,19185,90355,23597,17222,140675,28442,23668,55977,9128,61555,28774,155229,17658,9390,24379,69357,15752,127381,239631,62460,93181,55913,45133,140155,18676,25249,33164,29581,82837,67223,22362,29975,7317,52813,1943,29613,20012,207130,49617,49651,5636,15334,36313,29226,28084,95247,72072,19e3,224932,15811,114,32127,38097,37508,88507,37225,27359,91626,12193,69279,20608,11055,88156,92808,2152,57259,55275,72789,24475,104414,1708,9882,3818,48661,66897,1631,34806,227930,85815,87753,18321,250664,72733,25107,206797,50891,8082,196411,92596,96764,152823,65514,22819,387277,62176,51225,40329,15563,189,3659,73670,64357,51793,275136,33482,86653,74615,67058,11318,125720,15388,22388,8267,1730,102663,170910,40784,7144,85373,13040,7088,94309,583,44224,140424,77439,18496,164026,36578,4722,9151,5824,63365,26510,35199,40500,79277,32495,44614,35233,9566,203293,152144,7097,2330,183480,98629,13423,330887,44130,68600,30939,97829,31012,345465,56747,94879,4939,160027,149761,99423,46099,32251,15332,8761,96094,128555,5763,235318,222223,55729,30241,55420,201746,3987,81382,8259,49325,23287,7719,24633,251100,92311,18591,110533,64759,170260,393860,7175,21144,132887,3593,75346,101277,91109,16387,259187,11627,57459,173829,44694,55780,49797,89192,120443,62622,3904,14814,23887,1027,112258,64955,99800,11132,66353,36202,48624,18158,88481,96882,43059,11040,2455,7077,21651,181159,99126,100434,61388,68186,19161,110468,120052,8819,55324,41494,7014,37689,3618,87729,92615,207943,9823,128657,12587,15857,6379,67628,51216,71775,157617,63244,1503,3864,218754,110864,5769,21492,7243,1192,87921,85529,31512,18537,42698,35350,73510,84474,34301,8991,21013,35034,566,38832,19838,35586,37216,39413,55006,12178,59742,856,84563,6900,25632,17437,49786,30723,13847,70845,4044,7843,23944,235976,55530,48942,6518,20939,73769,192653,52936,95207,23895,132542,142982,22632,87452,48042,54018,178468,10728,26230,23559,363,81269,142012,5718,346258,31456,84333,246476,51018,66692,101804,120570,39962,30373,70593,2864,60541,19425,54209,104092,7201,31545,48018,25865,15442,46257,40443,8328,6451,111782,47527,97754,33046,470,245116,31095,39,91934,87208,73470,36708,36521,12801,70624,36272,8892,79768,12427,55454,103756,5908,52390,62962,22720,141138,94634,41689,128402,126390,6628,106394,35527,134394,82727,254651,194502,148064,89549,3202,28359,957,21954,27906,49840,142747,8307,24206,48978,1186,71728,133038,71474,91306,6333,110959,74600,70387,18983,62609,56057,22970,1147,135850,1321,28834,3578,59715,102227,32827,81415,99952,55636,257598,390,22702,35701,85872,402916,39216,189795,14929,19467,10112,144422,61514,5279,63421,134686,41436,8424,51925,10598,132295,124416,4604,194739,210929,57866,31829,51626,50007,9976,91878,61906,56168,81906,60918,61859,40017,23059,16887,40927,62064,12785,32893,32913,21782,93965,20169,44387,79084,38463,11457,93950,27127,157050,2697,337088,5116,54128,48255,33279,8821,27352,25515,124022,65710,28906,38557,33390,1722,104435,72215,38551,12094,30978,25113,6671,37355,175109,42862,98024,65406,221276,59624,118012,64637,78760,86697,21426,1639,40350,12584,67193,84144,31396,7863,143011,69629,63112,9454,28666,65798,46372,134721,6314,51402,30837,151922,2847,38676,38008,92823,136245,17540,5504,109295,205242,37606,5211,214892,1586,20670,208711,137743,19328,40652,16995,20023,14657,154919,34422,12996,13918,38221,47690,16398,2959,37680,89122,6721,198469,91876,172043,83898,101992,26084,94570,3635,76958,22853,76497,38266,176590,168403,44464,142840,79180,184594,1984,41806,83147,11985,6546,366068,59732,24533,271505,8736,39084,222992,93429,28962,58985,86665,8432,30028,14548,32439,54424,165029,55175,27458,69046,121277,46168,33732,20661,24581,135574,123110,37556,79260,72611,16957,12939,46162,58238,44907,72936,253758,41324,32518,96480,11949,124438,65280,43256,34107,53533,43531,37037,28366,45970,32741,173438,6121,194202,62969,26355,30314,58370,28455,1848,50519,82830,90393,21761,295490,10936,256940,133568,44050,20269,4089,27457,21610,219460,36743,14821,101388,52005,13124,30979,140816,167362,26054,18458,60789,34917,40447,26606,33422,9066,3452,83614,5761,20263,137238,25038,91310,101,52322,74548,42572,38084,214054,186568,31802,17665,30620,141936,37730,14420,4265,187218,49640,188208,51441,55388,96452,66659,40869,42039,60967,221027,19234,178581,29105,96050,9165,196118,157335,3738,40354,117436,2965,34136,59659,15570,50843,230035,31444,71260,43886,18316,5387,38500,168508,17406,32174,8828,103373,143806,90367,3560,18719,122310,16508,26719,2541,105429,6645,37998,73190,10591,235916,49737,87112,233941,53188,32193,79154,4544,52905,126477,7580,63501,57314,3216,31337,6541,103083,60846,49,9756,15481,1355,43840,14319,13743,27486,10222,73114,230718,418644,16706,6674,279748,23058,45273,295831,86306,2743,5535,88773,21829,35253,120938,31153,3169,16839,42847,8751,80974,33942,36867,35514,16485,26474,77775,56877,5391,48346,3882,108713,31403,27804,55248,26235,43821,136104,40118,175507,28034,203908,18732,1788,34030,106427,36958,54359,7251,44936,15356,69139,455,157915,22173,140291,50348,43275,82066,49621,54952,15216,36226,96695,66855,6936,1987,8227,196087,4631,68827,99004,47541,110265,17953,147605,110242,58520,31312,38724,329975,642,3155,34497,75937,6207,73843,6120,17249,51429,117746,3218,910,68961,319671,14938,29555,34700,1649,66673,72268,9655,76800,153087,6941,210168,27130,35398,1780,73242,3135,56689,19556,165307,8765,35967,121458,13333,70453,17350,117253,22265,13340,44265,39869,441,3742,135025,23581,33309,16543,17731,13291,157637,283005,21408,101360,63887,52312,83873,5338,233779,23759,186949,34531,177320,38069,156465,91004,19353,59852,68160,14891,1338,1072,29823,1950,28901,81407,313445,73038,84807,162348,240257,37162,138934,16111,58013,41253,102951,16457,96056,19541,56402,67217,41638,94381,89674,29481,37456,80815,151579,13937,13683,132537,19699,134545,67020,29816,222341,141235,427578,48868,129557,233342,23077,87871,16213,18728,16184,9469,37913,19680,2798,171356,178328,13216,50049,72690,71904,124644,55455,7504,29052,41036,266546,19899,30391,188755,8659,59469,16,104298,112943,53865,76203,138226,68857,139953,14125,107625,119795,173133,4398,50273,48808,54390,16466,122086,31835,67035,50971,48859,7508,46427,66477,73021,84615,39985,83076,46779,201569,53336,36443,60865,168164,143810,51393,25548,169307,32896,24485,38424,21837,29087,275813,51674,6714,64883,46169,187369,55186,76192,12852,12018,62134,31067,118303,16542,12125,10579,4928,26291,43854,7091,10946,253716,109062,39283,17261,113012,258512,47764,125126,32646,55892,80279,201623,149872,3192,385,1208,48750,5376,58738,22335,5427,82416,47811,32435,143086,38930,94128,59975,156037,37977,38224,62485,7698,50405,71027,16462,21559,136153,34131,107506,162069,63703,3101,215029,40407,4178,3774,9187,80019,17880,97926,67579,2600,18405,8351,47924,86638,70820,92206,86453,29610,42241,119200,3198,15466,67813,57863,35454,4779,99518,4649,104641,144269,33730,38073,65864,6838,109456,193298,154007,5623,45741,30846,182578,25573,157224,1543,58575,138703,146140,44971,49356,18275,59064,20300,13122,11848,24453,11973,9797,86843,2919,25530,49210,1130,161220,76788,75373,85604,34926,36014,17777,17255,51533,11676,92226,51845,119859,21525,5936,18507,28050,1140,31418,14857,34207,47859,10750,36382,32079,106909,59426,87757,38393,110042,15965,97104,33757,35344,97993,53979,33651,45407,41884,82515,173089,7177,58371,35365,47543,51927,35587,10670,23544,29306,84233,39976,76076,62097,9007,8668,28119,78281,120790,19835,143020,54968,18670,64959,20649,34469,42570,33001,136570,87796,120044,1106,58700,63951,127623,12805,83057,40212,31773,49850,7361,54336,347524,101314,23751,19569,48791,29174,49369,20467,7465,75842,38281,623,112457,60210,28849,51003,94720,6426,90047,85560,43761,3579,85105,34607,90410,118528,7224,42907,111163,18168,6960,161135,191298,5247,100584,127552,171568,20121,91173,12636,54615,20199,63730,98105,2396,40387,14438,125012,4765,33235,12865,45299,37728,82098,77872,114037,59253,19675,24838,398016,102561,11446,17069,57508,178277,65836,99941,26114,2585,271882,136866,50126,11027,155648,118367,14585,8910,123015,335383,40434,41016,53021,14439,87098,176860,201543,121888,2358,9286,5739,22666,54270,37884,169381,33984,93859,16124,89364,72207,51639,76366,99029,65812,2198,12147,174891,194289,6986,30252,88822,21284,11445,288337,160821,33034,100869,43852,25761,52882,1144,103809,1924,84458,86079,43411,13542,139276,18141,34978,41298,7276,26481,173800,33210,17951,142652,33616,33677,2210,19941,98568,2486,192414,80136,12058,235883,50963,249638,29572,27221,47034,6124,72107,63346,97620,158513,299699,40388,23235,37176,224244,198386,121323,67992,23827,63170,17838,106622,158590,26807,5345,23489,91891,55474,74834,37981,13058,5977,72552,34706,26828,145172,19904,21367,34043,960,77092,91381,4733,47446,7680,41697,5170,16960,14741,46101,13656,473,51842,37433,11103,11551,121951,13191,97536,165932,50397,51628,129028,9069,44885,6590,59195,47045,32940,225472,90345,21833,13303,29407,96615,141951,5198,6028,18395,7181,3861,14966,156358,167182,36529,55253,25942,173153,30959,27261,50691,150176,162201,38467,48462,80602,42163,118482,168,108756,26011,17166,54149,456538,22512,91374,13816,90358,131615,18132,226707,1824,28139,26860,42253,93877,77351,65575,8980,80574,22020,27948,40422,91324,76376,13528,39281,91685,82215,122541,144066,1983,193851,17283,26320,2739,194978,4790,26845,42627,61300,65815,174612,55133,4200,191130,79771,158321,52280,166796,221620,62461,11278,4067,88152,83409,31717,121367,13522,47325,37945,10406,174348,249321,154101,64912,29938,51775,17220,15776,166138,78890,84425,54121,42861,16368,24572,291647,10197,32073,22651,11677,97509,26952,35787,18424,41910,71614,94977,72318,41594,70024,275419,37702,60199,7335,39107,61315,18271,18394,33768,87884,104277,123724,7277,56288,71981,189803,49320,3352,6798,14240,8954,69220,94433,57372,28620,68863,193727,85575,42309,41667,67689,42081,22543,44824,12719,28540,114236,101553,27638,27296,4300,5353,4663,19379,94098,3758,95888,95144,80344,87320,28447,259518,12718,71391,152731,37063,24132,31911,104896,15672,103782,1521,4945,72541,23717,122632,15619,87175,206120,29428,189780,61416,28350,44457,972,1175,47233,198738,95789,41907,21953,97034,59341,22864,53713,16873,32971,20693,20954,31336,21477,16169,38370,16412,9019,3841,24599,21938,17085,6484,81198,76413,5849,72514,12320,65247,276175,37234,59796,52642,16312,57349,198507,94148,46134,18958,125552,1747,18725,151873,14901,5490,68287,29470,3689,64794,40814,26018,25692,54450,2703,88278,124886,173087,174e3,24159,179477,24276,46004,201876,209202,445,52876,31948,30206,157610,39180,18439,44124,50469,5774,96278,222758,200216,50290,45486,20435,46986,46276,140133,142326,15569,13363,47522,92583,2182,7135,16853,22998,30272,4952,63263,35623,39096,53789,44864,20053,110392,124213,4630,16087,28221,127787,25839,77481,44693,13464,113146,6983,27069,55717,50102,4760,7107,26186,66507,59145,36032,104182,71328,29425,64317,50781,47465,94298,69706,74899,22754,120756,25108,93077,56834,73286,39928,16218,41699,176763,7555,70819,50083,26895,23315,26014,16773,123079,41712,5719,31516,90427,158540,85051,183128,40864,27505,55392,9058,45224,96857,30901,136622,96557,56304,120061,11501,151448,5773,89743,7769,86069,2935,18471,41628,10114,33660,110170,49479,26745,92846,33221,26731,18795,87076,8550,2100,29972,120289,3077,72490,33784,2630,208722,50861,63483,79029,6419,39467,14302,45286,64207,9686,67513,44170,1050,77246,59266,17055,53801,7150,11111,42432,4278,94579,362117,36175,42902,41933,39002,98489,22913,74161,84773,57036,17556,162288,74485,178760,93867,73635,128860,50362,261,67455,80001,46080,35662,4368,25247,19230,74393,22588,1822,27682,235324,13798,85998,13194,235067,23514,71669,147632,23191,134748,214683,105101,1518,25489,247114,7380,54842,26922,3971,26361,20844,68642,170517,77339,123255,8963,77818,150998,48466,36806,2732,23261,11741,236162,18243,126216,28690,50546,16385,92760,197383,246558,201295,88255,67588,71687,176076,172653,169058,33906,63747,24835,157621,43338,30050,46152,132741,2770,51371,94835,6614,15112,11749,56936,1250,19027,399017,58036,100215,23388,55815,308768,124152,94803,9521,64186,8971,28,30427,62163,7616,103838,35079,29203,131235,7743,17389,10882,37420,61460,228512,85363,41581,131077,62822,119647,10130,54445,26925,19968,29016,24446,74028,24176,61448,67185,9254,8563,119129,9771,99184,37716,39514,10532,221512,258753,218630,55980,23394,32141,61924,66749,32411,3741,36475,26678,77010,44946,91203,128749,116953,20476,49625,53116,13735,102335,29376,51946,83407,67892,59212,34685,21083,1546,112982,32972,74397,1078,190545,16082,86140,58591,89611,101531,10061,105104,76319,20035,17551,52611,169061,190842,100780,23907,90413,115619,9675,34710,193435,49443,129734,11183,258877,16318,136182,126808,44635,27304,192375,2599,125648,47051,12091,23814,721,58800,40137,66726,97930,60877,74487,7942,54326,9841,41428,13762,8211,85383,6950,99177,79806,201786,296464,124087,13144,29741,41721,47634,55088,254286,106408,17041,99064,12942,64086,45233,14005,2612,55827,255,7984,13980,38574,12776,46654,73499,249951,2101,26676,25996,132326,116415,119062,50449,31033,23038,11589,179252,20007,14860,129270,21143,17796,144715,60106,70758,69842,34674,282133,44014,16774,57268,38528,24053,46373,201667,28327,471023,51889,102667,21193,114909,84132,69317,96723,67969,16134,68145,15058,28765,32035,2524,101089,98664,25045,76571,14957,86040,118506,262428,154764,81573,39681,283900,73287,127825,544,80448,52347,38512,175971,15180,45467,33086,46552,48894,81107,43213,36672,54025,76703,8053,7608,13299,56619,20752,238099,54164,105133,1444,32942,953,37564,8e3,66316,119463,106817,404,13667,149108,128597,31267,10269,49836,106150,1484,52330,76965,160486,171648,38456,31263,22424,37738,66245,67467,143369,60471,75610,20895,115528,86070,60854,40796,49347,18989,15030,11371,37578,15779,79867,10187,86462,46402,155626,93200,40229,7090,57547,108053,99598,11088,47505,41218,206017,2173,20988,30219,22919,80563,57566,42369,93141,41675,2407,182519,120495,27154,16702,29456,14349,7958,16688,117177,140375,42467,261919,74916,153569,10836,34742,49526,7621,105997,12212,2270,392377,7755,17959,25086,232152,138791,33847,13860,35316,5811,1344,71259,50452,207539,92635,50359,5821,33674,30255,2086,2587,96264,17543,42,6029,9580,43007,139248,82831,12917,29607,25786,51467,42137,85161,100698,31561,88989,121990,278500,3602,109344,37982,15279,116442,28936,30880,87894,58079,128661,126731,67392,28051,146885,4861,16216,97344,42827,147561,153948,22684,21335,47685,1853,43349,15185,59642,10229,25520,187921,108972,5579,98037,24945,6697,19193,63734,137934,75056,89740,19767,224268,56138,63643,151661,39313,70618,84031,89723,84074,13703,85626,35460,8867,64845,3439,57906,99776,63968,49270,81130,34356,16210,23547,36446,34090,140028,72439,2221,22163,57058,363492,113754,18913,95451,48663,54464,54037,176097,68425,3023,34906,29482,117389,341780,80431,58330,16753,92616,60907,94846,147486,4498,48646,7773,46801,7778,18946,464978,47558,33223,177444,7328,15626,63337,94700,11743,9351,255024,39098,16447,42647,96230,39769,58840,10068,63439,35800,65843,58823,413844,9156,51258,7434,61791,85018,6872,3692,28096,7121,33024,6009,75532,31997,192535,9661,3304,9547,14753,31987,25314,55689,15896,20430,39472,31340,99744,25398,115569,54883,28719,205423,23071,57855,64638,149867,25671,82403,37616,20668,39989,77996,74948,140555,175248,64810,36515,46595,4958,248773,24045,28728,136673,168704,20804,114833,100325,27135,21205,96151,153134,45992,7093,13992,76047,1980,19432,145001,75159,87462,17710,1013,45556,34297,144882,20648,26061,11319,129567,108555,18872,464580,33386,22717,65948,167189,5603,135042,79542,8801,202632,18114,91882,5973,5239,67315,4431,60916,47819,71693,32597,32606,18183,45072,80329,76385,24749,51305,40314,156514,14693,130345,13168,66214,18029,12858,34801,27628,14544,10823,40522,40185,33739,148694,23548,9923,61012,28859,17933,19442,34364,99849,164107,141167,30629,21054,6744,36491,8096,42474,41706,155060,30650,10600,163442,1143,96655,61390,52359,7559,51568,64256,203854,4467,22453,14504,436398,7878,6980,8293,63610,293747,16167,35763,19627,147603,15419,18032,110744,51346,33681,54571,40472,48615,39073,21604,13754,173027,92560,11083,47299,63062,11813,52007,29883,9734,139722,15953,1550,20651,13616,49306,16113,90089,92326,7584,30712,72424,164858,6831,152871,55746,197721,34167,196442,6022,112107,55215,7538,123381,4920,43539,77165,8939,50392,34192,20225,79762,22505,58667,40770,29788,97180,82835,4568,8579,13273,363569,35898,49983,436,36598,3237,131691,62418,35591,8101,4073,379438,65218,76072,33887,2968,27573,212619,288680,68278,72851,150504,217896,6913,121339,22017,35340,51072,43616,75043,31437,10833,81487,4364,22968,41454,106687,85446,19863,109625,149241,524,141850,214404,54376,657,237023,9401,108137,53800,32474,49712,53334,126876,27337,45552,177696,8269,15036,12097,42240,2328,125374,119295,99715,2500,19624,39441,27220,102691,60957,94543,39101,18566,67362,13975,78230,25017,34017,239007,90027,39351,41681,35354,43822,1043,916,58587,141983,94818,38799,75459,41114,67432,16195,36606,59568,22272,126769,31424,68659,12287,134302,257977,5756,207285,95637,47248,117689,19583,77451,22373,12200,54993,117118,34244,29386,34562,53819,71267,64172,77665,49368,7716,59301,25749,45426,194789,17297,2650,1766,32501,45198,20403,20984,6600,14171,94604,19037,5402,29896,9938,59935,109708,88081,145182,44844,39167,352626,164173,35374,45982,6122,154,73419,220487,53834,53601,17992,8609,229321,5610,68098,66815,71012,95069,140968,27396,8957,134489,24656,86659,56598,134852,17316,123838,255436,6613,41610,138033,81452,32023,32396,123687,63398,8693,29712,30407,19296,121188,3551,36099,20032,111948,56624,16547,27453,35916,15378,52039,56849,13489,22214,73177,53097,277349,2157,14029,187886,10260,141743,246460,91880,50869,3788,49486,133566,54950,33120,129337,53768,18333,9525,26902,312251,10297,9020,70759,16647,112432,59260,84609,9818,82766,73569,468,46001,75780,55028,52106,11498,43645,108069,17150,17753,29417,16705,31799,9606,289,122254,115975,8620,6133,255357,56908,14456,133464,43554,79224,11247,29630,160,12756,25464,65960,350428,62521,321796,100359,67358,35169,46172,113128,48988,88868,31094,33266,6847,60887,98188,49659,69117,92977,220228,13947,80181,35103,62170,97351,13475,2440,199768,19498,36597,46971,25234,67806,62881,84717,73648,181966,10488,94149,21550,26655,63436,48375,14405,165650,9621,24439,28043,42735,4490,29963,56674,45373,1934,262446,50855,67098,26898,5261,52696,40644,33900,9440,180286,87162,22940,19704,26936,69769,10254,101759,27406,12243,48e3,73926,113215,54935,5726,192787,4312,106216,9366,11550,52949,23457,212271,277152,133895,108374,6191,96477,29980,218916,58024,54696,40853,91124,65894,91170,65908,252552,6793,29212,15389,44516,122515,52617,35058,9017,103536,39510,49136,19242,130652,662077,74699,47024,31422,8517,73351,24399,13867,128360,4810,4434,61779,111983,61036,17798,110240,59722,102960,39688,10001,23803,23039,176498,56659,44814,134295,17188,77577,74466,226175,102472,154333,63900,111747,18062,41171,79669,32773,408933,42562,28931,30907,107388,43487,2946,240310,23938,24354,319,184983,7927,6488,1422,10790,68809,68209,64775,4361,202,17123,59634,51200,44391,18188,17843,2619,74278,3230,9540,47187,21702,36274,56894,43907,16310,34790,16866,6150,5561,13587,107545,108873,126867,86986,28640,33427,19017,5762,80637,17430,46903,2047,131055,25958,13558,5444,47152,13900,44563,122857,45348,70863,39593,54332,38068,33637,318,40310,143467,18502,24520,11377,62013,28942,27246,28269,83545,17999,59015,90707,30065,15161,34720,1263,37008,2012,6060,98575,92933,5721,299,199555,24578,29223,2985,743,115825,109523,136657,47454,26378,53586,3733,174945,93340,244456,5693,37386,28782,89767,27545,23573,18798,136425,34320,84778,20041,48453,38215,7477,71958,40621,8773,5874,187927,105965,51100,43533,18083,8443,10180,43597,2003,183999,69689,12216,129696,146188,62389,34044,68410,12765,43273,26949,266807,3345,34477,79197,5688,47539,213110,21634,22257,50092,32222,42346,39530,63668,98,134978,74022,5152,59088,174145,37220,9934,9545,118937,5724,87240,19875,15784,40143,23263,87513,181654,285152,37881,263241,4966,43934,10433,186657,6470,74416,225854,25908,142677,246262,32280,6192,75890,45546,143264,135305,29742,47013,77787,11732,126658,8763,37950,21806,57557,113464,89465,108995,164574,23894,22996,23169,15369,23117,17642,130607,40503,36239,280990,44666,9981,40427,147487,26869,168452,32886,32991,46798,240839,15111,70502,65697,88548,44145,28701,48767,31139,206777,35659,181164,166262,14554,171445,31786,66523,76607,17956,6507,31279,90476,116611,167918,6560,1243,115324,80128,41867,55897,187323,37069,32596,189444,145931,13390,105530,65709,26805,6999,55714,41300,22915,68951,22138,21120,22264,10058,19945,33635,56123,99085,10032,5818,6016,46649,57476,35264,94413,112522,262288,93686,83038,14341,23204,28807,66084,77987,6101,126673,7133,38126,5923,122091,170240,97772,46874,215746,43948,41622,3272,55596,8332,146411,251315,13533,8561,81521,115449,48616,175175,2063,186556,3036,134537,75772,29728,82360,22973,186559,86348,89100,38388,82297,45610,2613,87082,9986,177812,57884,23591,47485,42543,33582,44713,74439,257444,252451,31825,35631,38540,33066,5147,13973,4343,51830,70378,22827,26448,95560,36896,241741,48067,203953,298860,61620,20450,3220,67272,6586,107662,100160,108684,6929,57226,4762,7457,1320,40404,77204,99309,62750,208653,59977,44e3,74315,34332,5819,172217,64904,114077,18147,84012,1791,98456,90930,21446,116669,103938,7422,85140,59713,5768,326211,16239,75411,13229,29398,10758,236107,1539,112472,95979,152154,151294,306,21196,38146,10700,6891,84282,109646,56492,40539,6589,119491,51354,30685,140209,136906,29622,73617,49553,70525,51671,166869,139616,74395,37439,49595,45678,11959,33211,86560,52434,9282,62690,112155,130810,5243,108261,99970,265613,72551,80049,6391,33365,90721,66737,69872,87011,1860,9032,112544,60905,37371,89015,140351,19076,850,373531,2802,36725,218795,72062,28990,16550,24614,7815,6187,26336,33373,32162,42791,73555,32062,23386,10244,56392,49442,27076,136262,12412,14883,1134,33675,97153,199281,15608,100152,74072,47942,254301,36451,16026,10687,65067,56708,254030,30290,50490,13864,57941,259331,35588,23485,43486,24869,21620,92971,22072,88645,1048,182050,13343,32452,14825,19509,3325,216938,45740,99716,189082,53740,78245,25609,24311,176777,47340,308354,40669,66085,14102,125339,9225,128709,97207,1271,200933,78439,113451,88975,18324,46521,11819,18570,141756,72512,170020,52754,63550,118515,103073,93330,32736,50499,14722,31600,68452,398867,29316,172786,18417,104924,2606,5670,84818,16288,67106,59580,82929,607401,291,85829,359,15897,35830,50696,65630,52672,22115,356968,29895,40837,231192,34024,38957,26722,406,23335,124952,72068,68804,13268,147101,164740,276569,162596,66943,11569,26654,66358,4777,23229,102127,5848,978,2921,59666,5371,28212,90108,42938,39320,2499,4271,108792,33510,125072,71653,65239,38250,66357,38577,13964,86251,35708,50755,36010,29448,12209,3844,38222,206337,100876,67827,137088,14167,252225,84163,195270,1306,5703,54198,779,46802,22028,51124,86759,70560,113164,35685,162145,45471,34561,422,2611,6464,47486,19223,38246,9191,18331,89942,243642,212364,15893,17518,22617,6409,30046,126182,59716,36560,104428,18846,26592,19458,50793,147333,30826,1388,27647,10922,14495,33545,19269,135828,39727,41601,46931,233379,49169,131130,182112,16276,82381,118209,142445,128310,19672,28740,82907,33436,3118,102206,28723,24819,41937,38854,5157,3881,111491,1142,9776,421673,152241,29309,14961,87854,6054,15424,3796,82656,54996,2108,55367,239450,154525,9643,118103,106041,64601,68549,48707,30266,25772,18740,9462,229669,91798,112152,191327,14493,72828,8175,66636,236474,25817,87351,129027,76653,20422,22983,71240,27846,44661,12399,46158,77704,53101,35032,11072,17300,109294,33638,24408,1895,11241,760,17584,82479,125877,63150,141075,34259,23274,81698,15732,43577,48340,91584,14688,16379,24481,150280,96420,262050,48635,43727,61819,56268,72003,88178,17281,79912,13218,122519,125295,166396,11811,2171,118930,67746,17636,178278,174656,95661,173039,83845,79689,17473,98555,127696,203415,54730,22925,232239,9309,12136,175026,20740,180188,10747,39816,314017,266131,10040,175732,112550,220651,31974,37393,888,23008,86799,4303,64905,148467,75337,251,3284,370102,50264,9835,5438,23655,4481,29851,329,12855,7162,64931,78141,12804,42372,296771,83547,18624,34874,86271,3360,48665,77735,88767,11463,63527,28889,22258,29140,194315,113924,25499,6406,31334,1845,4802,49184,43455,35469,127594,92970,61038,115005,38840,87761,106838,8811,20572,55637,11162,96721,132425,108925,2948,125457,36356,3502,75270,27622,127192,2561,123095,49394,61155,16897,110064,9699,89448,53356,19628,220310,21622,83036,9885,112214,6087,26713,17901,161912,91492,3440,68594,9266,92238,8087,6866,150194,72175,80701,13459,31836,43243,239700,95846,44749,50647,21945,230538,120612,132371,244604,5193,105637,34661,41341,68775,85393,1874,8771,33718,49672,77403,595452,99507,6490,58895,128742,7704,39239,73217,43816,62824,37804,199976,22361,80005,87514,94832,14089,4574,139975,59142,75523,100268,43906,53442,15152,2547,186002,17011,19513,204282,3343,60568,128318,119250,4298,51871,41336,71759,21921,45074,98169,145889,99427,11350,1237,5520,28799,7803,53702,21026,136352,38293,128690,12158,90132,44600,10184,26957,39459,126025,78904,82999,59373,39301,150198,120529,153042,20177,50089,14764,271571,30530,123161,38975,101562,22941,5648,124654,109243,69817,71675,49162,106884,21241,107795,30258,16572,188262,141456,7688,60718,8271,11044,32440,104608,103419,236109,93156,43293,128929,42107,67180,25201,115254,185488,130954,72813,167547,20537,39969,38432,22582,184022,1139,27199,5655,17767,97412,122606,209377,27070,35871,326617,188954,42680,73512,80911,22629,3011,95021,315242,157737,383,41821,41808,19335,27950,15674,25677,110950,35375,76835,59108,57370,35262,16569,160415,37706,78086,32041,49691,137143,9782,172080,50148,77917,6323,10110,69172,17711,21795,59511,76184,135114,31046,132319,59105,157578,20549,80778,57649,158421,65143,4575,72235,21899,10797,92745,34035,106079,80159,4508,78304,25350,75457,46458,32937,25623,47,8531,104751,84953,8138,36508,187199,66310,115274,13253,32461,38536,1916,42007,187160,35055,26325,84394,35963,94216,45590,97782];var di=15,pi=class{log;peerRouting;routingTable;refreshInterval;refreshQueryTimeout;commonPrefixLengthRefreshedAt;refreshTimeoutId;constructor(t){let{peerRouting:r,routingTable:n,refreshInterval:i,refreshQueryTimeout:o,lan:a}=t;this.log=X(`libp2p:kad-dht:${a?"lan":"wan"}:routing-table:refresh`),this.peerRouting=r,this.routingTable=n,this.refreshInterval=i??3e5,this.refreshQueryTimeout=o??3e4,this.commonPrefixLengthRefreshedAt=[],this.refreshTable=this.refreshTable.bind(this)}async start(){this.log(`refreshing routing table every ${this.refreshInterval}ms`),this.refreshTable(!0)}async stop(){this.refreshTimeoutId!=null&&clearTimeout(this.refreshTimeoutId)}refreshTable(t=!1){this.log("refreshing routing table");let r=this._maxCommonPrefix(),n=this._getTrackedCommonPrefixLengthsForRefresh(r);this.log(`max common prefix length ${r}`),this.log(`tracked CPLs [ ${n.map(i=>i.toISOString()).join(", ")} ]`),Promise.all(n.map(async(i,o)=>{try{if(await this._refreshCommonPrefixLength(o,i,t),this._numPeersForCpl(r)===0){let a=Math.min(2*(o+1),n.length-1);for(let s=o+1;s<a+1;s++)try{await this._refreshCommonPrefixLength(s,i,t)}catch(c){this.log.error(c)}}}catch(a){this.log.error(a)}})).catch(i=>{this.log.error(i)}).then(()=>{this.refreshTimeoutId=setTimeout(this.refreshTable,this.refreshInterval),this.refreshTimeoutId.unref!=null&&this.refreshTimeoutId.unref()}).catch(i=>{this.log.error(i)})}async _refreshCommonPrefixLength(t,r,n){if(!n&&r.getTime()>Date.now()-this.refreshInterval){this.log("not running refresh for cpl %s as time since last refresh not above interval",t);return}let i=await this._generateRandomPeerId(t);this.log("starting refreshing cpl %s with key %p (routing table size was %s)",t,i,this.routingTable.size);let o=await ci(this.peerRouting.getClosestPeers(i.toBytes(),{signal:AbortSignal.timeout(this.refreshQueryTimeout)}));this.log(`found ${o} peers that were close to imaginary peer %p`,i),this.log("finished refreshing cpl %s with key %p (routing table size is now %s)",t,i,this.routingTable.size)}_getTrackedCommonPrefixLengthsForRefresh(t){t>di&&(t=di);let r=[];for(let n=0;n<=t;n++)r[n]=this.commonPrefixLengthRefreshedAt[n]??new Date;return r}async _generateRandomPeerId(t){if(this.routingTable.kb==null)throw new Error("Routing table not started");let r=en(2),n=(r[1]<<8)+r[0],i=await this._makePeerId(this.routingTable.kb.localNodeId,n,t);return Kr(i)}async _makePeerId(t,r,n){if(n>di)throw new Error(`Cannot generate peer ID for common prefix length greater than ${di}`);let a=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(0,!1)^32768>>n,s=65535<<16-(n+1),c=a&s|r&~s,u=W5[c],f=new ArrayBuffer(34),l=new DataView(f,0,f.byteLength);return l.setUint8(0,It.code),l.setUint8(1,32),l.setUint32(2,u,!1),new Uint8Array(l.buffer,l.byteOffset,l.byteLength)}_maxCommonPrefix(){let t=0;for(let r of this._prefixLengths())r>t&&(t=r);return t}_numPeersForCpl(t){let r=0;for(let n of this._prefixLengths())n===t&&r++;return r}*_prefixLengths(){if(this.routingTable.kb!=null)for(let{id:t}of this.routingTable.kb.toIterable()){let r=fr(this.routingTable.kb.localNodeId,t),n=0;for(let i of r)if(i===0)n++;else break;yield n}}};var D0=X("libp2p:kad-dht:rpc:handlers:add-provider"),yi=class{providers;constructor(t){let{providers:r}=t;this.providers=r}async handle(t,r){if(D0("start"),r.key==null||r.key.length===0)throw new R("Missing key","ERR_MISSING_KEY");let n;try{n=re.decode(r.key)}catch{throw new R("Invalid CID","ERR_INVALID_CID")}(r.providerPeers==null||r.providerPeers.length===0)&&D0.error("no providers found in message"),await Promise.all(r.providerPeers.map(async i=>{if(!i.id.equals(t)){D0("invalid provider peer %p from %p",i.id,t);return}if(i.multiaddrs.length<1){D0("no valid addresses for provider %p. Ignore",t);return}D0("received provider %p for %s (addrs %s)",t,n,i.multiaddrs.map(o=>o.toString())),await this.providers.addProvider(n,i.id)}))}};var Z5=X("libp2p:kad-dht:rpc:handlers:find-node"),gi=class{peerRouting;lan;components;constructor(t,r){let{peerRouting:n,lan:i}=r;this.components=t,this.peerRouting=n,this.lan=!!i}async handle(t,r){Z5("incoming request from %p for peers closer to %b",t,r.key);let n=[];dt(this.components.peerId.toBytes(),r.key)?n=[{id:this.components.peerId,multiaddrs:this.components.addressManager.getAddresses().map(o=>o.decapsulateCode(ut("p2p").code)),protocols:[]}]:n=await this.peerRouting.getCloserPeersOffline(r.key,t),n=n.map(this.lan?Cn:An).filter(({multiaddrs:o})=>o.length);let i=new _t(r.type,new Uint8Array(0),r.clusterLevel);return n.length>0?i.closerPeers=n:Z5("could not find any peers closer to %b than %p",r.key,t),i}};var X5=X("libp2p:kad-dht:rpc:handlers:get-providers"),mi=class{components;peerRouting;providers;lan;constructor(t,r){let{peerRouting:n,providers:i,lan:o}=r;this.components=t,this.peerRouting=n,this.providers=i,this.lan=!!o}async handle(t,r){let n;try{n=re.decode(r.key)}catch{throw new R("Invalid CID","ERR_INVALID_CID")}X5("%p asking for providers for %s",t,n);let[i,o]=await Promise.all([this.providers.getProviders(n),this.peerRouting.getCloserPeersOffline(r.key,t)]),a=await this._getPeers(i),s=await this._getPeers(o.map(({id:u})=>u)),c=new _t(r.type,r.key,r.clusterLevel);return a.length>0&&(c.providerPeers=a),s.length>0&&(c.closerPeers=s),X5("got %s providers %s closerPeers",a.length,s.length),c}async _getAddresses(t){return[]}async _getPeers(t){let r=[],n=this.lan?Cn:An;for(let i of t)try{let o=await this.components.peerStore.get(i),a=n({id:i,multiaddrs:o.addresses.map(({multiaddr:s})=>s),protocols:o.protocols});a.multiaddrs.length>0&&r.push(a)}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}return r}};var Gn=X("libp2p:kad-dht:rpc:handlers:get-value"),xi=class{components;peerRouting;constructor(t,r){let{peerRouting:n}=r;this.components=t,this.peerRouting=n}async handle(t,r){let n=r.key;if(Gn("%p asked for key %b",t,n),n==null||n.length===0)throw new R("Invalid key","ERR_INVALID_KEY");let i=new _t(Nt.GET_VALUE,n,r.clusterLevel);if(qa(n)){Gn("is public key");let s=za(n),c;try{let u=await this.components.peerStore.get(s);if(u.id.publicKey==null)throw new R("No public key found in key book","ERR_NOT_FOUND");c=u.id.publicKey}catch(u){if(u.code!=="ERR_NOT_FOUND")throw u}if(c!=null)return Gn("returning found public key"),i.record=new Vt(n,c,new Date),i}let[o,a]=await Promise.all([this._checkLocalDatastore(n),this.peerRouting.getCloserPeersOffline(r.key,t)]);return o!=null&&(Gn("had record for %b in local datastore",n),i.record=o),a.length>0&&(Gn("had %s closer peers in routing table",a.length),i.closerPeers=a),i}async _checkLocalDatastore(t){Gn("checkLocalDatastore looking for %b",t);let r=Je(t),n;try{n=await this.components.datastore.get(r)}catch(o){if(o.code==="ERR_NOT_FOUND")return;throw o}let i=Vt.deserialize(n);if(i==null)throw new R("Invalid record","ERR_INVALID_RECORD");if(i.timeReceived==null||Date.now()-i.timeReceived.getTime()>1296e5){await this.components.datastore.delete(r);return}return i}};var U9=X("libp2p:kad-dht:rpc:handlers:ping"),vi=class{async handle(t,r){return U9("ping from %p",t),r}};var bi=class{log;components;validators;constructor(t,r){let{validators:n}=r;this.components=t,this.log=X("libp2p:kad-dht:rpc:handlers:put-value"),this.validators=n}async handle(t,r){let n=r.key;this.log("%p asked us to store value for key %b",t,n);let i=r.record;if(i==null){let o=`Empty record from: ${t.toString()}`;throw this.log.error(o),new R(o,"ERR_EMPTY_RECORD")}try{await Sn(this.validators,i),i.timeReceived=new Date;let o=Je(i.key);await this.components.datastore.put(o,i.serialize().subarray()),this.log("put record for %b into datastore under key %k",n,o)}catch(o){this.log("did not put record for key %b into datastore %o",n,o)}return r}};var wi=class{handlers;routingTable;log;constructor(t,r){let{providers:n,peerRouting:i,validators:o,lan:a}=r;this.log=X("libp2p:kad-dht:rpc"),this.routingTable=r.routingTable,this.handlers={[Nt.GET_VALUE]:new xi(t,{peerRouting:i}),[Nt.PUT_VALUE]:new bi(t,{validators:o}),[Nt.FIND_NODE]:new gi(t,{peerRouting:i,lan:a}),[Nt.ADD_PROVIDER]:new yi({providers:n}),[Nt.GET_PROVIDERS]:new mi(t,{peerRouting:i,providers:n,lan:a}),[Nt.PING]:new vi}}async handleMessage(t,r){try{await this.routingTable.add(t)}catch(i){this.log.error("Failed to update the kbucket store",i)}let n=this.handlers[r.type];if(n==null){this.log.error(`no handler found for message type: ${r.type}`);return}return n.handle(t,r)}onIncomingStream(t){Promise.resolve().then(async()=>{let{stream:r,connection:n}=t,i=n.remotePeer;try{await this.routingTable.add(i)}catch(a){this.log.error(a)}let o=this;await Ee(r,a=>Hr(a),async function*(a){for await(let s of a){let c=_t.deserialize(s);o.log("incoming %s from %p",c.type,i);let u=await o.handleMessage(i,c);u!=null&&(yield u.serialize())}},a=>qr(a),r)}).catch(r=>{this.log.error(r)})}};var Ei=class extends Xt{log;components;protocol;running;registrarId;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=X(`libp2p:kad-dht:topology-listener:${i?"lan":"wan"}`),this.running=!1,this.protocol=n}isStarted(){return this.running}async start(){this.running||(this.running=!0,this.registrarId=await this.components.registrar.register(this.protocol,{onConnect:t=>{this.log("observed peer %p with protocol %s",t,this.protocol),this.dispatchEvent(new Pt("peer",{detail:t}))}}))}async stop(){this.running=!1,this.registrarId!=null&&(this.components.registrar.unregister(this.registrarId),this.registrarId=void 0)}};var F9=32,K9=64,O0=class extends Xt{protocol;routingTable;providers;network;peerRouting;components;log;running;kBucketSize;clientMode;lan;validators;selectors;queryManager;contentFetching;contentRouting;routingTableRefresh;rpc;topologyListener;querySelf;maxInboundStreams;maxOutboundStreams;constructor(t,r){super();let{kBucketSize:n,clientMode:i,validators:o,selectors:a,querySelfInterval:s,lan:c,protocolPrefix:u,pingTimeout:f,pingConcurrency:l,maxInboundStreams:p,maxOutboundStreams:d,providers:h}=r;this.running=!1,this.components=t,this.lan=!!c,this.log=X(`libp2p:kad-dht:${c===!0?"lan":"wan"}`),this.protocol=`${u??F2}${c===!0?U2:""}${K2}`,this.kBucketSize=n??20,this.clientMode=i??!0,this.maxInboundStreams=p??F9,this.maxOutboundStreams=d??K9,this.routingTable=new hi(t,{kBucketSize:n,lan:this.lan,pingTimeout:f,pingConcurrency:l,protocol:this.protocol}),this.providers=new oi(t,h??{}),this.validators={...Fa,...o},this.selectors={...Ua,...a},this.network=new a1(t,{protocol:this.protocol,lan:this.lan});let y=Jt();r.allowQueryWithZeroPeers===!0&&y.resolve(),this.queryManager=new ai(t,{disjointPaths:Math.ceil(this.kBucketSize/2),lan:c,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.peerRouting=new W1(t,{routingTable:this.routingTable,network:this.network,validators:this.validators,queryManager:this.queryManager,lan:this.lan}),this.contentFetching=new r1(t,{validators:this.validators,selectors:this.selectors,peerRouting:this.peerRouting,queryManager:this.queryManager,network:this.network,lan:this.lan}),this.contentRouting=new n1(t,{network:this.network,peerRouting:this.peerRouting,queryManager:this.queryManager,routingTable:this.routingTable,providers:this.providers,lan:this.lan}),this.routingTableRefresh=new pi({peerRouting:this.peerRouting,routingTable:this.routingTable,lan:this.lan}),this.rpc=new wi(t,{routingTable:this.routingTable,providers:this.providers,peerRouting:this.peerRouting,validators:this.validators,lan:this.lan}),this.topologyListener=new Ei(t,{protocol:this.protocol,lan:this.lan}),this.querySelf=new fi(t,{peerRouting:this.peerRouting,interval:s,initialInterval:r.initialQuerySelfInterval,lan:this.lan,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.network.addEventListener("peer",g=>{let m=g.detail;this.onPeerConnect(m).catch(x=>{this.log.error("could not add %p to routing table",m.id,x)}),this.dispatchEvent(new Pt("peer",{detail:m}))}),this.topologyListener.addEventListener("peer",g=>{let m=g.detail;Promise.resolve().then(async()=>{let x=await this.components.peerStore.get(m),v={id:m,multiaddrs:x.addresses.map(({multiaddr:C})=>C),protocols:x.protocols};await this.onPeerConnect(v)}).catch(x=>{this.log.error("could not add %p to routing table",m,x)})})}async onPeerConnect(t){if(this.log("peer %p connected with protocols",t.id,t.protocols),this.lan?t=Cn(t):t=An(t),t.multiaddrs.length===0){this.log("ignoring %p as they do not have any %s addresses in %s",t.id,this.lan?"private":"public",t.multiaddrs.map(r=>r.toString()));return}try{await this.routingTable.add(t.id)}catch(r){this.log.error("could not add %p to routing table",t.id,r)}}isStarted(){return this.running}async getMode(){return this.clientMode?"client":"server"}async setMode(t){await this.components.registrar.unhandle(this.protocol),t==="client"?(this.log("enabling client mode"),this.clientMode=!0):(this.log("enabling server mode"),this.clientMode=!1,await this.components.registrar.handle(this.protocol,this.rpc.onIncomingStream.bind(this.rpc),{maxInboundStreams:this.maxInboundStreams,maxOutboundStreams:this.maxOutboundStreams}))}async start(){this.running=!0,await this.setMode(this.clientMode?"client":"server"),await Promise.all([this.providers.start(),this.queryManager.start(),this.network.start(),this.routingTable.start(),this.topologyListener.start()]),this.querySelf.start(),await this.routingTableRefresh.start()}async stop(){this.running=!1,this.querySelf.stop(),await Promise.all([this.providers.stop(),this.queryManager.stop(),this.network.stop(),this.routingTable.stop(),this.routingTableRefresh.stop(),this.topologyListener.stop()])}async*put(t,r,n={}){yield*this.contentFetching.put(t,r,n)}async*get(t,r={}){yield*this.contentFetching.get(t,r)}async*provide(t,r={}){yield*this.contentRouting.provide(t,this.components.addressManager.getAddresses(),r)}async*findProviders(t,r={}){yield*this.contentRouting.findProviders(t,r)}async*findPeer(t,r={}){yield*this.peerRouting.findPeer(t,r)}async*getClosestPeers(t,r={}){yield*this.peerRouting.getClosestPeers(t,r)}async refreshRoutingTable(){this.routingTableRefresh.refreshTable(!0)}};var Xs=X("libp2p:kad-dht"),Js=class{dht;constructor(t){this.dht=t}async provide(t,r={}){await Yn(this.dht.provide(t,r))}async*findProviders(t,r={}){for await(let n of this.dht.findProviders(t,r))n.name==="PROVIDER"&&(yield*n.providers)}async put(t,r,n){await Yn(this.dht.put(t,r,n))}async get(t,r){for await(let n of this.dht.get(t,r))if(n.name==="VALUE")return n.value;throw new R("Not found","ERR_NOT_FOUND")}},js=class{dht;constructor(t){this.dht=t}async findPeer(t,r={}){for await(let n of this.dht.findPeer(t,r))if(n.name==="FINAL_PEER")return n.peer;throw new R("Not found","ERR_NOT_FOUND")}async*getClosestPeers(t,r={}){for await(let n of this.dht.getClosestPeers(t,r))n.name==="FINAL_PEER"&&(yield n.peer)}},M9=290,V9=54,q9=55,z9=56,H9=4,$9=41;function G9(e){let t=e.stringTuples();for(let r of t)if(r[0]===M9)return!1;if(t[0][0]===V9||t[0][0]===q9||t[0][0]===z9)return!0;if(t[0][0]===H9||t[0][0]===$9){let r=Zn(`${t[0][1]}`);return r==null||!r}return!1}var Si=class extends Xt{wan;lan;components;contentRouting;peerRouting;constructor(t,r={}){super(),this.components=t,this.wan=new O0(t,{protocolPrefix:"/ipfs",...r,lan:!1}),this.lan=new O0(t,{protocolPrefix:"/ipfs",...r,clientMode:!1,lan:!0}),this.contentRouting=new Js(this),this.peerRouting=new js(this),this.wan.addEventListener("peer",n=>{this.dispatchEvent(new Pt("peer",{detail:n.detail}))}),this.lan.addEventListener("peer",n=>{this.dispatchEvent(new Pt("peer",{detail:n.detail}))}),r.clientMode==null&&t.events.addEventListener("self:peer:update",n=>{Xs("received update of self-peer info");let i=n.detail.peer.addresses.some(({multiaddr:o})=>G9(o));this.getMode().then(async o=>{i&&o==="client"?await this.setMode("server"):o==="server"&&!i&&await this.setMode("client")}).catch(o=>{Xs.error("error setting dht server mode",o)})})}[Symbol.toStringTag]="@libp2p/dual-kad-dht";get[l2](){return this.contentRouting}get[d2](){return this.peerRouting}get[h2](){return this}isStarted(){return this.wan.isStarted()&&this.lan.isStarted()}async getMode(){return this.wan.getMode()}async setMode(t){await this.wan.setMode(t)}async start(){await Promise.all([this.lan.start(),this.wan.start()])}async stop(){await Promise.all([this.lan.stop(),this.wan.stop()])}async*put(t,r,n={}){for await(let i of be(this.lan.put(t,r,n),this.wan.put(t,r,n)))yield i}async*get(t,r={}){let n=!1,i=!1;for await(let o of be(this.lan.get(t,r),this.wan.get(t,r)))yield o,o.name==="DIAL_PEER"&&(n=!0),o.name==="VALUE"&&(n=!0,o.value!=null&&(i=!0)),o.name==="SEND_QUERY"&&(n=!0);if(!n)throw new R("No peers found in routing table!","ERR_NO_PEERS_IN_ROUTING_TABLE");i||(yield ne({from:this.components.peerId,error:new R("Not found","ERR_NOT_FOUND")},r))}async*provide(t,r={}){let n=0,i=0,o=[],a=[this.lan];await this.wan.getMode()==="server"&&a.push(this.wan);for await(let s of be(...a.map(c=>c.provide(t,r))))yield s,s.name==="SEND_QUERY"&&n++,s.name==="QUERY_ERROR"&&o.push(s.error),s.name==="PEER_RESPONSE"&&s.messageName==="ADD_PROVIDER"&&(Xs("sent provider record for %s to %p",t,s.from),i++);if(i===0)throw o.length>0?new R(`Failed to provide to ${o.length} of ${n} peers`,"ERR_PROVIDES_FAILED",{errors:o}):new R("Failed to provide - no peers found","ERR_PROVIDES_FAILED")}async*findProviders(t,r={}){yield*be(this.lan.findProviders(t,r),this.wan.findProviders(t,r))}async*findPeer(t,r={}){let n=!1;for await(let i of be(this.lan.findPeer(t,r),this.wan.findPeer(t,r)))yield i,(i.name==="SEND_QUERY"||i.name==="FINAL_PEER")&&(n=!0);if(!n)throw new R("Peer lookup failed","ERR_LOOKUP_FAILED")}async*getClosestPeers(t,r={}){yield*be(this.lan.getClosestPeers(t,r),this.wan.getClosestPeers(t,r))}async refreshRoutingTable(){await Promise.all([this.lan.refreshRoutingTable(),this.wan.refreshRoutingTable()])}};var t2;(function(e){e[e.SEND_QUERY=0]="SEND_QUERY",e[e.PEER_RESPONSE=1]="PEER_RESPONSE",e[e.FINAL_PEER=2]="FINAL_PEER",e[e.QUERY_ERROR=3]="QUERY_ERROR",e[e.PROVIDER=4]="PROVIDER",e[e.VALUE=5]="VALUE",e[e.ADD_PEER=6]="ADD_PEER",e[e.DIAL_PEER=7]="DIAL_PEER"})(t2||(t2={}));var e2;(function(e){e[e.PUT_VALUE=0]="PUT_VALUE",e[e.GET_VALUE=1]="GET_VALUE",e[e.ADD_PROVIDER=2]="ADD_PROVIDER",e[e.GET_PROVIDERS=3]="GET_PROVIDERS",e[e.FIND_NODE=4]="FIND_NODE",e[e.PING=5]="PING"})(e2||(e2={}));function Q9(e){return t=>new Si(t,e)}return l6(Y9);})();
|
|
27
27
|
/*! Bundled license information:
|
|
28
28
|
|
|
29
29
|
@noble/hashes/esm/utils.js:
|