@libp2p/kad-dht 11.0.8-c00378909 → 12.0.0-6fd681d09
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 +18 -18
- package/package.json +11 -11
package/dist/index.min.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
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 Q5=Object.create;var T0=Object.defineProperty;var W5=Object.getOwnPropertyDescriptor;var Z5=Object.getOwnPropertyNames;var X5=Object.getPrototypeOf,J5=Object.prototype.hasOwnProperty;var it=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_t=(e,t)=>{for(var r in t)T0(e,r,{get:t[r],enumerable:!0})},Zs=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Z5(t))!J5.call(e,i)&&i!==r&&T0(e,i,{get:()=>t[i],enumerable:!(n=W5(t,i))||n.enumerable});return e};var Et=(e,t,r)=>(r=e!=null?Q5(X5(e)):{},Zs(t||!e||!e.__esModule?T0(r,"default",{value:e,enumerable:!0}):r,e)),j5=e=>Zs(T0({},"__esModule",{value:!0}),e);var X2=it(Xn=>{(function(){var e,t,r,n,i,o,s,a;a=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(".")},s=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=s(f)}catch(g){throw l=g,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=(s(u)&this.maskLong)>>>0}catch(g){throw l=g,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=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(s(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var f,l,p;for(p=s(this.first),l=s(this.last),f=0;p<=l;)u(a(p),p,f),f++,p++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Xn.ip2long=s,Xn.long2ip=a,Xn.Netmask=e}).call(Xn)});var ia=it((na,z0)=>{(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,}",s="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${s})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${s})|(?:::)(?:${s})?)${t}\\.${t}\\.${t}\\.${t}(${o})?$`,"i")};function c(d,h){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let g=0,y=-1,m=(d.match(a.zoneIndex)||[])[0],x,v;for(m&&(m=m.substring(1),d=d.replace(/%.+$/,""));(y=d.indexOf(":",y+1))>=0;)g++;if(d.substr(0,2)==="::"&&g--,d.substr(-2,2)==="::"&&g--,g>h)return null;for(v=h-g,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 T=d.split(":"),E=[];for(let S=0;S<T.length;S++)E.push(parseInt(T[S],16));return E}(),{parts:h,zoneId:m}}function u(d,h,g,y){if(d.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let m=0,x;for(;y>0;){if(x=g-y,x<0&&(x=0),d[m]>>x!==h[m]>>x)return!1;y-=g,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 g,y;for(g=0;g<h.length;g++)if(y=h[g],!(0<=y&&y<=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,g){let y;if(g===void 0&&(y=h,h=y[0],g=y[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,g)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,g=!1,y={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 y){if(v=y[x],g&&v!==0)return null;v!==8&&(g=!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),g=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<4;)m.push(parseInt(g[x],10)|parseInt(y[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,g,y,m,x;try{for(h=this.parseCIDR(d),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],g=0;g<4;)m.push(parseInt(y[g],10)&parseInt(x[g],10)),g++;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 g=parseInt(h[2]);if(g>=0&&g<=32){let y=[this.parse(h[1]),g];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},p.IPv4.parser=function(d){let h,g,y;if(h=d.match(r.fourOctet))return function(){let m=h.slice(1,6),x=[];for(let v=0;v<m.length;v++)g=m[v],x.push(f(g));return x}();if(h=d.match(r.longValue)){if(y=f(h[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let m=[],x;for(x=0;x<=24;x+=8)m.push(y>>x&255);return m}().reverse()}else return(h=d.match(r.twoOctet))?function(){let m=h.slice(1,4),x=[];if(y=f(m[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(h=d.match(r.threeOctet))?function(){let m=h.slice(1,5),x=[];if(y=f(m[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(f(m[1])),x.push(y>>8&255),x.push(y&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],g=0,y=Math.floor(d/8);for(;g<y;)h[g]=255,g++;return y<4&&(h[y]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.IPv6=function(){function d(h,g){let y,m;if(h.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(h[y]<<8|h[y+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(m=this.parts[y],!(0<=m&&m<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");g&&(this.zoneId=g)}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,g){let y;if(g===void 0&&(y=h,h=y[0],g=y[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,g)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,g=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},m,x;for(let v=7;v>=0;v-=1)if(m=this.parts[v],m in y){if(x=y[m],g&&x!==0)return null;x!==16&&(g=!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,g=[],y=this.parts;for(let m=0;m<y.length;m++)h=y[m],g.push(h>>8),g.push(h&255);return g},d.prototype.toFixedLengthString=function(){let h=function(){let y=[];for(let m=0;m<this.parts.length;m++)y.push(l(this.parts[m].toString(16),4));return y}.call(this).join(":"),g="";return this.zoneId&&(g=`%${this.zoneId}`),h+g},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),g=h[0],y=h[1];return new p.IPv4([g>>8,g&255,y>>8,y&255])},d.prototype.toNormalizedString=function(){let h=function(){let y=[];for(let m=0;m<this.parts.length;m++)y.push(this.parts[m].toString(16));return y}.call(this).join(":"),g="";return this.zoneId&&(g=`%${this.zoneId}`),h+g},d.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,g=this.toNormalizedString(),y=0,m=-1,x;for(;x=h.exec(g);)x[0].length>m&&(y=x.index,m=x[0].length);return m<0?g:`${g.substring(0,y)}::${g.substring(y+m)}`},d.prototype.toString=function(){return this.toRFC5952String()},d}(),p.IPv6.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),g=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<16;)m.push(parseInt(g[x],10)|parseInt(y[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,g,y,m,x;try{for(h=this.parseCIDR(d),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],g=0;g<16;)m.push(parseInt(y[g],10)&parseInt(x[g],10)),g++;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,g,y;if((g=d.match(/^(.+)\/(\d+)$/))&&(h=parseInt(g[2]),h>=0&&h<=128))return y=[this.parse(g[1]),h],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},p.IPv6.parser=function(d){let h,g,y,m,x,v;if(y=d.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(d))return c(d,8);if((y=d.match(a.transitional))&&(v=y[6]||"",h=c(y[1].slice(0,-1)+v,6),h.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],g=0;g<x.length;g++)if(m=x[g],!(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],g=0,y=Math.floor(d/8);for(;g<y;)h[g]=255,g++;return y<16&&(h[y]=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,g){let y,m,x,v;g==null&&(g="unicast");for(m in h)if(Object.prototype.hasOwnProperty.call(h,m)){for(x=h[m],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(v=x[y],d.kind()===v[0].kind()&&d.match.apply(d,v))return m}return g},typeof z0<"u"&&z0.exports?z0.exports=p:e.ipaddr=p})(na)});var Ga=it((fx,$a)=>{"use strict";function Ha(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function wc(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 Ha(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Ha(new i,r)}}$a.exports=wc});var ut=it((Px,Za)=>{Za.exports={options:{usePureJavaScript:!1}}});var ja=it((Lx,Ja)=>{var _o={};Ja.exports=_o;var Xa={};_o.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=Ic(e,t);else{var i=0,o=t.length,s=t.charAt(0),a=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%o,u=u/o|0;for(;u>0;)a.push(u%o),u=u/o|0}for(i=0;e[i]===0&&i<e.length-1;++i)n+=s;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(r){var f=new RegExp(".{1,"+r+"}","g");n=n.match(f).join(`\r
|
|
3
|
-
`)}return n};_o.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=Xa[t];if(!r){r=Xa[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),s=[0],n=0;n<e.length;n++){var a=r[e.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<s.length;++c)u+=s[c]*i,s[c]=u&255,u>>=8;for(;u>0;)s.push(u&255),u>>=8}for(var f=0;e[f]===o&&f<e.length-1;++f)s.push(0);return typeof Buffer<"u"?Buffer.from(s.reverse()):new Uint8Array(s.reverse())};function Ic(e,t){var r=0,n=t.length,i=t.charAt(0),o=[0];for(r=0;r<e.length();++r){for(var s=0,a=e.at(r);s<o.length;++s)a+=o[s]<<8,o[s]=a%n,a=a/n|0;for(;a>0;)o.push(a%n),a=a/n|0}var c="";for(r=0;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 Tt=it((Nx,n3)=>{var t3=ut(),e3=ja(),b=n3.exports=t3.util=t3.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(a){return setImmediate(a)};return}if(b.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(f){f()})}};var s=a,e="forge.setImmediate",t=[];b.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",a,!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 i0(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}b.ByteBuffer=Po;function Po(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 Po||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}b.ByteStringBuffer=Po;var Ac=4096;b.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>Ac&&(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){i0(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){i0(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 Bc(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=Bc;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){i0(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 i0(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){i0(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="",s=0,a=0;r>0;--r,++s)i=e.charCodeAt(s)^t.charCodeAt(s),a>=10&&(n+=o,o="",a=0),o+=String.fromCharCode(i),++a;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 yr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",mr=[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],r3="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";b.encode64=function(e,t){for(var r="",n="",i,o,s,a=0;a<e.length;)i=e.charCodeAt(a++),o=e.charCodeAt(a++),s=e.charCodeAt(a++),r+=yr.charAt(i>>2),r+=yr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=yr.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":yr.charAt(s&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,s=0;s<e.length;)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,s,a,c=0,u=r;c<e.length;)i=mr[e.charCodeAt(c++)-43],o=mr[e.charCodeAt(c++)-43],s=mr[e.charCodeAt(c++)-43],a=mr[e.charCodeAt(c++)-43],n[u++]=i<<2|o>>4,s!==64&&(n[u++]=(o&15)<<4|s>>2,a!==64&&(n[u++]=(s&3)<<6|a));return t?u-r:n.subarray(0,u)};b.binary.base58.encode=function(e,t){return b.binary.baseN.encode(e,r3,t)};b.binary.base58.decode=function(e,t){return b.binary.baseN.decode(e,r3,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,s=r,a=0;a<e.length;++a)i[s++]=e.charCodeAt(a),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 Lo=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}},No=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},Tc=function(e,t,r,n){var i=No(e,t);i===null&&(i={}),i[r]=n,Lo(e,t,i)},Cc=function(e,t,r){var n=No(e,t);return n!==null&&(n=r in n?n[r]:null),n},Rc=function(e,t,r){var n=No(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),Lo(e,t,n)}},_c=function(e,t){Lo(e,t,null)},o1=function(e,t,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,o=!1,s=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(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){s=c}if(o)break}if(!o)throw s;return n};b.setItem=function(e,t,r,n,i){o1(Tc,arguments,i)};b.getItem=function(e,t,r,n){return o1(Cc,arguments,n)};b.removeItem=function(e,t,r,n){o1(Rc,arguments,n)};b.clearItems=function(e,t,r){o1(_c,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=[],s=0;r=t.exec(e);){n=e.substring(s,t.lastIndex-2),n.length>0&&o.push(n),s=t.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?o.push(arguments[i+++1]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+a+"?>")}}return o.push(e.substring(s)),o.join("")};b.formatNumber=function(e,t,r,n){var i=e,o=isNaN(t=Math.abs(t))?2:t,s=r===void 0?",":r,a=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)+a:"")+u.substr(f).replace(/(\d{3})(?=\d)/g,"$1"+a)+(o?s+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(s){return s.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 s=r[r.length-1],a=t.length;!s||a!==s.end+1?r.push({start:a,end:a}):(s.end=a,s.end-s.start>r[n].end-r[n].start&&(n=r.length-1))}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(s){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(s,a,c){if(a===0){var u=Math.floor(s.reduce(function(f,l){return f+l},0)/s.length);return b.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,b.cores)}i(c,function(f,l){s.push(o(c,l)),n(s,a-1,c)})}function i(s,a){for(var c=[],u=[],f=0;f<s;++f){var l=new Worker(r);l.addEventListener("message",function(p){if(u.push(p.data),u.length===s){for(var d=0;d<s;++d)c[d].terminate();a(null,u)}}),c.push(l)}for(var f=0;f<s;++f)c[f].postMessage(f)}function o(s,a){for(var c=[],u=0;u<s;++u)for(var f=a[u],l=c[u]=[],p=0;p<s;++p)if(u!==p){var d=a[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,g){return Math.max(h,g.length)},0)}}});var ko=it((Dx,i3)=>{var Ot=ut();Tt();i3.exports=Ot.cipher=Ot.cipher||{};Ot.cipher.algorithms=Ot.cipher.algorithms||{};Ot.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ot.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ot.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Ot.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ot.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ot.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Ot.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Ot.cipher.algorithms[e]=t};Ot.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Ot.cipher.algorithms?Ot.cipher.algorithms[e]:null};var Do=Ot.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)};Do.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=Ot.util.createBuffer(),this.output=e.output||Ot.util.createBuffer(),this.mode.start(t)};Do.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()};Do.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 Oo=it((kx,o3)=>{var Ft=ut();Tt();Ft.cipher=Ft.cipher||{};var Z=o3.exports=Ft.cipher.modes=Ft.cipher.modes||{};Z.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)};Z.ecb.prototype.start=function(e){};Z.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])};Z.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])};Z.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};Z.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)};Z.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)};Z.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=s1(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};Z.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};Z.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)};Z.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};Z.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)};Z.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=Ft.util.createBuffer(),this._partialBytes=0};Z.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=s1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.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};Z.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};Z.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=Ft.util.createBuffer(),this._partialBytes=0};Z.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=s1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.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};Z.ofb.prototype.decrypt=Z.ofb.prototype.encrypt;Z.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=Ft.util.createBuffer(),this._partialBytes=0};Z.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=s1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.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}a1(this._inBlock)};Z.ctr.prototype.decrypt=Z.ctr.prototype.encrypt;Z.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=Ft.util.createBuffer(),this._partialBytes=0,this._R=3774873600};Z.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Ft.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=Ft.util.createBuffer(e.additionalData):r=Ft.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Ft.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(Uo(n*8)))}this._inBlock=this._j0.slice(0),a1(this._inBlock),this._partialBytes=0,r=Ft.util.createBuffer(r),this._aDataLength=Uo(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()])};Z.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 s=n%this.blockSize;this._cipherLength+=s,this._partialOutput.truncate(this.blockSize-s)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return 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),a1(this._inBlock)};Z.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),a1(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};Z.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Ft.util.createBuffer();var n=this._aDataLength.concat(Uo(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};Z.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};Z.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)};Z.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};Z.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)};Z.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,i=16*r,o=new Array(i),s=0;s<i;++s){var a=[0,0,0,0],c=s/n|0,u=(n-1-s%n)*t;a[c]=1<<t-1<<u,o[s]=this.generateSubHashTable(this.multiply(a,e),t)}return o};Z.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 s=1;s<o;++s){var a=i[o],c=i[s];i[o+s]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}o*=2}for(i[0]=[0,0,0,0],o=n+1;o<r;++o){var u=i[o^n];i[o]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function s1(e,t){if(typeof e=="string"&&(e=Ft.util.createBuffer(e)),Ft.util.isArray(e)&&e.length>4){var r=e;e=Ft.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(!Ft.util.isArray(e)){for(var i=[],o=t/4,n=0;n<o;++n)i.push(e.getInt32());e=i}return e}function a1(e){e[e.length-1]=e[e.length-1]+1&4294967295}function Uo(e){return[e/4294967296|0,e&4294967295]}});var u1=it((Ux,u3)=>{var ht=ut();ko();Oo();Tt();u3.exports=ht.aes=ht.aes||{};ht.aes.startEncrypting=function(e,t,r,n){var i=c1({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};ht.aes.createEncryptionCipher=function(e,t){return c1({key:e,output:null,decrypt:!1,mode:t})};ht.aes.startDecrypting=function(e,t,r,n){var i=c1({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};ht.aes.createDecryptionCipher=function(e,t){return c1({key:e,output:null,decrypt:!0,mode:t})};ht.aes.Algorithm=function(e,t){Ko||a3();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return Mo(r._w,n,i,!1)},decrypt:function(n,i){return Mo(r._w,n,i,!0)}}}),r._init=!1};ht.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=ht.util.createBuffer(t);else if(ht.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=ht.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!ht.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(!ht.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var o=this.mode.name,s=["CFB","OFB","CTR","GCM"].indexOf(o)!==-1;this._w=c3(t,e.decrypt&&!s),this._init=!0}};ht.aes._expandKey=function(e,t){return Ko||a3(),c3(e,t)};ht.aes._updateBlock=Mo;In("AES-ECB",ht.cipher.modes.ecb);In("AES-CBC",ht.cipher.modes.cbc);In("AES-CFB",ht.cipher.modes.cfb);In("AES-OFB",ht.cipher.modes.ofb);In("AES-CTR",ht.cipher.modes.ctr);In("AES-GCM",ht.cipher.modes.gcm);function In(e,t){var r=function(){return new ht.aes.Algorithm(e,t)};ht.cipher.registerAlgorithm(e,r)}var Ko=!1,Sn=4,Zt,Fo,s3,kr,ve;function a3(){Ko=!0,s3=[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;Zt=new Array(256),Fo=new Array(256),kr=new Array(4),ve=new Array(4);for(var t=0;t<4;++t)kr[t]=new Array(256),ve[t]=new Array(256);for(var r=0,n=0,i,o,s,a,c,u,f,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,Zt[r]=a,Fo[a]=r,c=e[a],i=e[r],o=e[i],s=e[o],u=c<<24^a<<16^a<<8^(a^c),f=(i^o^s)<<24^(r^s)<<16^(r^o^s)<<8^(r^i^s);for(var l=0;l<4;++l)kr[l][r]=u,ve[l][a]=f,u=u<<24|u>>>8,f=f<<24|f>>>8;r===0?r=n=1:(r=i^e[e[e[i^s]]],n^=e[e[n]])}}function c3(e,t){for(var r=e.slice(0),n,i=1,o=r.length,s=o+6+1,a=Sn*s,c=o;c<a;++c)n=r[c-1],c%o===0?(n=Zt[n>>>16&255]<<24^Zt[n>>>8&255]<<16^Zt[n&255]<<8^Zt[n>>>24]^s3[i]<<24,i++):o>6&&c%o===4&&(n=Zt[n>>>24]<<24^Zt[n>>>16&255]<<16^Zt[n>>>8&255]<<8^Zt[n&255]),r[c]=r[c-o]^n;if(t){var u,f=ve[0],l=ve[1],p=ve[2],d=ve[3],h=r.slice(0);a=r.length;for(var c=0,g=a-Sn;c<a;c+=Sn,g-=Sn)if(c===0||c===a-Sn)h[c]=r[g],h[c+1]=r[g+3],h[c+2]=r[g+2],h[c+3]=r[g+1];else for(var y=0;y<Sn;++y)u=r[g+y],h[c+(3&-y)]=f[Zt[u>>>24]]^l[Zt[u>>>16&255]]^p[Zt[u>>>8&255]]^d[Zt[u&255]];r=h}return r}function Mo(e,t,r,n){var i=e.length/4-1,o,s,a,c,u;n?(o=ve[0],s=ve[1],a=ve[2],c=ve[3],u=Fo):(o=kr[0],s=kr[1],a=kr[2],c=kr[3],u=Zt);var f,l,p,d,h,g,y;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]^s[l>>>16&255]^a[p>>>8&255]^c[d&255]^e[++m],g=o[l>>>24]^s[p>>>16&255]^a[d>>>8&255]^c[f&255]^e[++m],y=o[p>>>24]^s[d>>>16&255]^a[f>>>8&255]^c[l&255]^e[++m],d=o[d>>>24]^s[f>>>16&255]^a[l>>>8&255]^c[p&255]^e[++m],f=h,l=g,p=y;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 c1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=ht.cipher.createDecipher(r,e.key):n=ht.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof ht.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var f1=it((Qx,d3)=>{var o0=ut();o0.pki=o0.pki||{};var Vo=d3.exports=o0.pki.oids=o0.oids=o0.oids||{};function R(e,t){Vo[e]=t,Vo[t]=e}function st(e,t){Vo[e]=t}R("1.2.840.113549.1.1.1","rsaEncryption");R("1.2.840.113549.1.1.4","md5WithRSAEncryption");R("1.2.840.113549.1.1.5","sha1WithRSAEncryption");R("1.2.840.113549.1.1.7","RSAES-OAEP");R("1.2.840.113549.1.1.8","mgf1");R("1.2.840.113549.1.1.9","pSpecified");R("1.2.840.113549.1.1.10","RSASSA-PSS");R("1.2.840.113549.1.1.11","sha256WithRSAEncryption");R("1.2.840.113549.1.1.12","sha384WithRSAEncryption");R("1.2.840.113549.1.1.13","sha512WithRSAEncryption");R("1.3.101.112","EdDSA25519");R("1.2.840.10040.4.3","dsa-with-sha1");R("1.3.14.3.2.7","desCBC");R("1.3.14.3.2.26","sha1");R("1.3.14.3.2.29","sha1WithRSASignature");R("2.16.840.1.101.3.4.2.1","sha256");R("2.16.840.1.101.3.4.2.2","sha384");R("2.16.840.1.101.3.4.2.3","sha512");R("2.16.840.1.101.3.4.2.4","sha224");R("2.16.840.1.101.3.4.2.5","sha512-224");R("2.16.840.1.101.3.4.2.6","sha512-256");R("1.2.840.113549.2.2","md2");R("1.2.840.113549.2.5","md5");R("1.2.840.113549.1.7.1","data");R("1.2.840.113549.1.7.2","signedData");R("1.2.840.113549.1.7.3","envelopedData");R("1.2.840.113549.1.7.4","signedAndEnvelopedData");R("1.2.840.113549.1.7.5","digestedData");R("1.2.840.113549.1.7.6","encryptedData");R("1.2.840.113549.1.9.1","emailAddress");R("1.2.840.113549.1.9.2","unstructuredName");R("1.2.840.113549.1.9.3","contentType");R("1.2.840.113549.1.9.4","messageDigest");R("1.2.840.113549.1.9.5","signingTime");R("1.2.840.113549.1.9.6","counterSignature");R("1.2.840.113549.1.9.7","challengePassword");R("1.2.840.113549.1.9.8","unstructuredAddress");R("1.2.840.113549.1.9.14","extensionRequest");R("1.2.840.113549.1.9.20","friendlyName");R("1.2.840.113549.1.9.21","localKeyId");R("1.2.840.113549.1.9.22.1","x509Certificate");R("1.2.840.113549.1.12.10.1.1","keyBag");R("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");R("1.2.840.113549.1.12.10.1.3","certBag");R("1.2.840.113549.1.12.10.1.4","crlBag");R("1.2.840.113549.1.12.10.1.5","secretBag");R("1.2.840.113549.1.12.10.1.6","safeContentsBag");R("1.2.840.113549.1.5.13","pkcs5PBES2");R("1.2.840.113549.1.5.12","pkcs5PBKDF2");R("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");R("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");R("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");R("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");R("1.2.840.113549.2.7","hmacWithSHA1");R("1.2.840.113549.2.8","hmacWithSHA224");R("1.2.840.113549.2.9","hmacWithSHA256");R("1.2.840.113549.2.10","hmacWithSHA384");R("1.2.840.113549.2.11","hmacWithSHA512");R("1.2.840.113549.3.7","des-EDE3-CBC");R("2.16.840.1.101.3.4.1.2","aes128-CBC");R("2.16.840.1.101.3.4.1.22","aes192-CBC");R("2.16.840.1.101.3.4.1.42","aes256-CBC");R("2.5.4.3","commonName");R("2.5.4.4","surname");R("2.5.4.5","serialNumber");R("2.5.4.6","countryName");R("2.5.4.7","localityName");R("2.5.4.8","stateOrProvinceName");R("2.5.4.9","streetAddress");R("2.5.4.10","organizationName");R("2.5.4.11","organizationalUnitName");R("2.5.4.12","title");R("2.5.4.13","description");R("2.5.4.15","businessCategory");R("2.5.4.17","postalCode");R("2.5.4.42","givenName");R("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");R("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");R("2.16.840.1.113730.1.1","nsCertType");R("2.16.840.1.113730.1.13","nsComment");st("2.5.29.1","authorityKeyIdentifier");st("2.5.29.2","keyAttributes");st("2.5.29.3","certificatePolicies");st("2.5.29.4","keyUsageRestriction");st("2.5.29.5","policyMapping");st("2.5.29.6","subtreesConstraint");st("2.5.29.7","subjectAltName");st("2.5.29.8","issuerAltName");st("2.5.29.9","subjectDirectoryAttributes");st("2.5.29.10","basicConstraints");st("2.5.29.11","nameConstraints");st("2.5.29.12","policyConstraints");st("2.5.29.13","basicConstraints");R("2.5.29.14","subjectKeyIdentifier");R("2.5.29.15","keyUsage");st("2.5.29.16","privateKeyUsagePeriod");R("2.5.29.17","subjectAltName");R("2.5.29.18","issuerAltName");R("2.5.29.19","basicConstraints");st("2.5.29.20","cRLNumber");st("2.5.29.21","cRLReason");st("2.5.29.22","expirationDate");st("2.5.29.23","instructionCode");st("2.5.29.24","invalidityDate");st("2.5.29.25","cRLDistributionPoints");st("2.5.29.26","issuingDistributionPoint");st("2.5.29.27","deltaCRLIndicator");st("2.5.29.28","issuingDistributionPoint");st("2.5.29.29","certificateIssuer");st("2.5.29.30","nameConstraints");R("2.5.29.31","cRLDistributionPoints");R("2.5.29.32","certificatePolicies");st("2.5.29.33","policyMappings");st("2.5.29.34","policyConstraints");R("2.5.29.35","authorityKeyIdentifier");st("2.5.29.36","policyConstraints");R("2.5.29.37","extKeyUsage");st("2.5.29.46","freshestCRL");st("2.5.29.54","inhibitAnyPolicy");R("1.3.6.1.4.1.11129.2.4.2","timestampList");R("1.3.6.1.5.5.7.1.1","authorityInfoAccess");R("1.3.6.1.5.5.7.3.1","serverAuth");R("1.3.6.1.5.5.7.3.2","clientAuth");R("1.3.6.1.5.5.7.3.3","codeSigning");R("1.3.6.1.5.5.7.3.4","emailProtection");R("1.3.6.1.5.5.7.3.8","timeStamping")});var a0=it((Wx,g3)=>{var dt=ut();Tt();f1();var U=g3.exports=dt.asn1=dt.asn1||{};U.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};U.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};U.create=function(e,t,r,n,i){if(dt.util.isArray(n)){for(var o=[],s=0;s<n.length;++s)n[s]!==void 0&&o.push(n[s]);n=o}var a={tagClass:e,type:t,constructed:r,composed:r||dt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=U.copy(a)),a};U.copy=function(e,t){var r;if(dt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(U.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:U.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};U.equals=function(e,t,r){if(dt.util.isArray(e)){if(!dt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!U.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&&U.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};U.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 s0(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 Uc=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;s0(e,t,o),n=e.getInt(o<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};U.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=dt.util.createBuffer(e));var r=e.length(),n=l1(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 l1(e,t,r,n){var i;s0(e,t,2);var o=e.getByte();t--;var s=o&192,a=o&31;i=e.length();var c=Uc(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(s0(e,t,2),e.bytes(2)==="\0\0"){e.getBytes(2),t-=2;break}i=e.length(),f.push(l1(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),f.push(l1(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(f===void 0&&s===U.Class.UNIVERSAL&&a===U.Type.BITSTRING&&(l=e.bytes(c)),f===void 0&&n.decodeBitStrings&&s===U.Class.UNIVERSAL&&a===U.Type.BITSTRING&&c>1){var d=e.read,h=t,g=0;if(a===U.Type.BITSTRING&&(s0(e,t,1),g=e.getByte(),t--),g===0)try{i=e.length();var y={strict:!0,decodeBitStrings:!0},m=l1(e,t,r+1,y),x=i-e.length();t-=x,a==U.Type.BITSTRING&&x++;var v=m.tagClass;x===c&&(v===U.Class.UNIVERSAL||v===U.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(a===U.Type.BMPSTRING)for(f="";c>0;c-=2)s0(e,t,2),f+=String.fromCharCode(e.getInt16()),t-=2;else f=e.getBytes(c),t-=c}var T=l===void 0?null:{bitStringContents:l};return U.create(s,a,p,f,T)}U.toDer=function(e){var t=dt.util.createBuffer(),r=e.tagClass|e.type,n=dt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=U.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(U.toDer(e.value[o]))}else if(e.type===U.Type.BMPSTRING)for(var o=0;o<e.value.length;++o)n.putInt16(e.value.charCodeAt(o));else e.type===U.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 s=n.length(),a="";do a+=String.fromCharCode(s&255),s=s>>>8;while(s>0);t.putByte(a.length|128);for(var o=a.length-1;o>=0;--o)t.putByte(a.charCodeAt(o))}return t.putBuffer(n),t};U.oidToDer=function(e){var t=e.split("."),r=dt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,o,s,a=2;a<t.length;++a){n=!0,i=[],o=parseInt(t[a],10);do s=o&127,o=o>>>7,n||(s|=128),i.push(s),n=!1;while(o>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};U.derToOid=function(e){var t;typeof e=="string"&&(e=dt.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};U.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),s=parseInt(e.substr(8,2),10),a=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(o,s,a,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};U.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),s=parseInt(e.substr(10,2),10),a=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,s,a,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(o,s,a,c)),t};U.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};U.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};U.integerToDer=function(e){var t=dt.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};U.derToInteger=function(e){typeof e=="string"&&(e=dt.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)};U.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&&dt.util.isArray(t.value))for(var o=0,s=0;i&&s<t.value.length;++s)i=t.value[s].optional||!1,e.value[o]&&(i=U.validate(e.value[o],t.value[s],r,n),i?++o:t.value[s].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 a;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 p3=/[^\\u0000-\\u00ff]/;U.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
|
|
2
|
+
"use strict";var Libp2PKadDht=(()=>{var J5=Object.create;var R0=Object.defineProperty;var j5=Object.getOwnPropertyDescriptor;var t8=Object.getOwnPropertyNames;var e8=Object.getPrototypeOf,r8=Object.prototype.hasOwnProperty;var nt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Tt=(e,t)=>{for(var r in t)R0(e,r,{get:t[r],enumerable:!0})},n2=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of t8(t))!r8.call(e,i)&&i!==r&&R0(e,i,{get:()=>t[i],enumerable:!(n=j5(t,i))||n.enumerable});return e};var bt=(e,t,r)=>(r=e!=null?J5(e8(e)):{},n2(t||!e||!e.__esModule?R0(r,"default",{value:e,enumerable:!0}):r,e)),n8=e=>n2(R0({},"__esModule",{value:!0}),e);var aa=nt(e0=>{(function(){var e,t,r,n,i,o,s,a;a=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(".")},s=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=s(f)}catch(g){throw l=g,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=(s(u)&this.maskLong)>>>0}catch(g){throw l=g,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=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(s(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var f,l,p;for(p=s(this.first),l=s(this.last),f=0;p<=l;)u(a(p),p,f),f++,p++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),e0.ip2long=s,e0.long2ip=a,e0.Netmask=e}).call(e0)});var pa=nt((da,Y0)=>{(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,}",s="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${s})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${s})|(?:::)(?:${s})?)${t}\\.${t}\\.${t}\\.${t}(${o})?$`,"i")};function c(d,h){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let g=0,y=-1,m=(d.match(a.zoneIndex)||[])[0],x,v;for(m&&(m=m.substring(1),d=d.replace(/%.+$/,""));(y=d.indexOf(":",y+1))>=0;)g++;if(d.substr(0,2)==="::"&&g--,d.substr(-2,2)==="::"&&g--,g>h)return null;for(v=h-g,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 T=d.split(":"),E=[];for(let S=0;S<T.length;S++)E.push(parseInt(T[S],16));return E}(),{parts:h,zoneId:m}}function u(d,h,g,y){if(d.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let m=0,x;for(;y>0;){if(x=g-y,x<0&&(x=0),d[m]>>x!==h[m]>>x)return!1;y-=g,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 g,y;for(g=0;g<h.length;g++)if(y=h[g],!(0<=y&&y<=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,g){let y;if(g===void 0&&(y=h,h=y[0],g=y[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,g)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,g=!1,y={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 y){if(v=y[x],g&&v!==0)return null;v!==8&&(g=!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),g=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<4;)m.push(parseInt(g[x],10)|parseInt(y[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,g,y,m,x;try{for(h=this.parseCIDR(d),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],g=0;g<4;)m.push(parseInt(y[g],10)&parseInt(x[g],10)),g++;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 g=parseInt(h[2]);if(g>=0&&g<=32){let y=[this.parse(h[1]),g];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},p.IPv4.parser=function(d){let h,g,y;if(h=d.match(r.fourOctet))return function(){let m=h.slice(1,6),x=[];for(let v=0;v<m.length;v++)g=m[v],x.push(f(g));return x}();if(h=d.match(r.longValue)){if(y=f(h[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let m=[],x;for(x=0;x<=24;x+=8)m.push(y>>x&255);return m}().reverse()}else return(h=d.match(r.twoOctet))?function(){let m=h.slice(1,4),x=[];if(y=f(m[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(h=d.match(r.threeOctet))?function(){let m=h.slice(1,5),x=[];if(y=f(m[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(f(m[1])),x.push(y>>8&255),x.push(y&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],g=0,y=Math.floor(d/8);for(;g<y;)h[g]=255,g++;return y<4&&(h[y]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.IPv6=function(){function d(h,g){let y,m;if(h.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(h[y]<<8|h[y+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(m=this.parts[y],!(0<=m&&m<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");g&&(this.zoneId=g)}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,g){let y;if(g===void 0&&(y=h,h=y[0],g=y[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,g)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,g=!1,y={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},m,x;for(let v=7;v>=0;v-=1)if(m=this.parts[v],m in y){if(x=y[m],g&&x!==0)return null;x!==16&&(g=!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,g=[],y=this.parts;for(let m=0;m<y.length;m++)h=y[m],g.push(h>>8),g.push(h&255);return g},d.prototype.toFixedLengthString=function(){let h=function(){let y=[];for(let m=0;m<this.parts.length;m++)y.push(l(this.parts[m].toString(16),4));return y}.call(this).join(":"),g="";return this.zoneId&&(g=`%${this.zoneId}`),h+g},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),g=h[0],y=h[1];return new p.IPv4([g>>8,g&255,y>>8,y&255])},d.prototype.toNormalizedString=function(){let h=function(){let y=[];for(let m=0;m<this.parts.length;m++)y.push(this.parts[m].toString(16));return y}.call(this).join(":"),g="";return this.zoneId&&(g=`%${this.zoneId}`),h+g},d.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,g=this.toNormalizedString(),y=0,m=-1,x;for(;x=h.exec(g);)x[0].length>m&&(y=x.index,m=x[0].length);return m<0?g:`${g.substring(0,y)}::${g.substring(y+m)}`},d.prototype.toString=function(){return this.toRFC5952String()},d}(),p.IPv6.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),g=h[0].toByteArray(),y=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<16;)m.push(parseInt(g[x],10)|parseInt(y[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,g,y,m,x;try{for(h=this.parseCIDR(d),y=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],g=0;g<16;)m.push(parseInt(y[g],10)&parseInt(x[g],10)),g++;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,g,y;if((g=d.match(/^(.+)\/(\d+)$/))&&(h=parseInt(g[2]),h>=0&&h<=128))return y=[this.parse(g[1]),h],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},p.IPv6.parser=function(d){let h,g,y,m,x,v;if(y=d.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(d))return c(d,8);if((y=d.match(a.transitional))&&(v=y[6]||"",h=c(y[1].slice(0,-1)+v,6),h.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],g=0;g<x.length;g++)if(m=x[g],!(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],g=0,y=Math.floor(d/8);for(;g<y;)h[g]=255,g++;return y<16&&(h[y]=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,g){let y,m,x,v;g==null&&(g="unicast");for(m in h)if(Object.prototype.hasOwnProperty.call(h,m)){for(x=h[m],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(v=x[y],d.kind()===v[0].kind()&&d.match.apply(d,v))return m}return g},typeof Y0<"u"&&Y0.exports?Y0.exports=p:e.ipaddr=p})(da)});var Qa=nt((ox,Ya)=>{"use strict";function Ga(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function Ac(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 Ga(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Ga(new i,r)}}Ya.exports=Ac});var ct=nt((Bx,Ja)=>{Ja.exports={options:{usePureJavaScript:!1}}});var e3=nt((Tx,t3)=>{var Uo={};t3.exports=Uo;var ja={};Uo.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=Cc(e,t);else{var i=0,o=t.length,s=t.charAt(0),a=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%o,u=u/o|0;for(;u>0;)a.push(u%o),u=u/o|0}for(i=0;e[i]===0&&i<e.length-1;++i)n+=s;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(r){var f=new RegExp(".{1,"+r+"}","g");n=n.match(f).join(`\r
|
|
3
|
+
`)}return n};Uo.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),s=[0],n=0;n<e.length;n++){var a=r[e.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<s.length;++c)u+=s[c]*i,s[c]=u&255,u>>=8;for(;u>0;)s.push(u&255),u>>=8}for(var f=0;e[f]===o&&f<e.length-1;++f)s.push(0);return typeof Buffer<"u"?Buffer.from(s.reverse()):new Uint8Array(s.reverse())};function Cc(e,t){var r=0,n=t.length,i=t.charAt(0),o=[0];for(r=0;r<e.length();++r){for(var s=0,a=e.at(r);s<o.length;++s)a+=o[s]<<8,o[s]=a%n,a=a/n|0;for(;a>0;)o.push(a%n),a=a/n|0}var c="";for(r=0;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 It=nt((Cx,o3)=>{var r3=ct(),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(a){return setImmediate(a)};return}if(b.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(f){f()})}};var s=a,e="forge.setImmediate",t=[];b.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",a,!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 s0(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 Rc=4096;b.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>Rc&&(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){s0(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){s0(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 _c(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=_c;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){s0(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 s0(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){s0(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="",s=0,a=0;r>0;--r,++s)i=e.charCodeAt(s)^t.charCodeAt(s),a>=10&&(n+=o,o="",a=0),o+=String.fromCharCode(i),++a;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 vr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",br=[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,s,a=0;a<e.length;)i=e.charCodeAt(a++),o=e.charCodeAt(a++),s=e.charCodeAt(a++),r+=vr.charAt(i>>2),r+=vr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=vr.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":vr.charAt(s&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,s=0;s<e.length;)r=br[e.charCodeAt(s++)-43],n=br[e.charCodeAt(s++)-43],i=br[e.charCodeAt(s++)-43],o=br[e.charCodeAt(s++)-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:n3.encode,decode:n3.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,s,a=0;a<e.byteLength;)i=e[a++],o=e[a++],s=e[a++],r+=vr.charAt(i>>2),r+=vr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=vr.charAt((o&15)<<2|s>>6),r+=isNaN(s)?"=":vr.charAt(s&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,s,a,c=0,u=r;c<e.length;)i=br[e.charCodeAt(c++)-43],o=br[e.charCodeAt(c++)-43],s=br[e.charCodeAt(c++)-43],a=br[e.charCodeAt(c++)-43],n[u++]=i<<2|o>>4,s!==64&&(n[u++]=(o&15)<<4|s>>2,a!==64&&(n[u++]=(s&3)<<6|a));return 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,s=r,a=0;a<e.length;++a)i[s++]=e.charCodeAt(a),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 Fo=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}},Mo=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},Pc=function(e,t,r,n){var i=Mo(e,t);i===null&&(i={}),i[r]=n,Fo(e,t,i)},Lc=function(e,t,r){var n=Mo(e,t);return n!==null&&(n=r in n?n[r]:null),n},Nc=function(e,t,r){var n=Mo(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),Fo(e,t,n)}},Dc=function(e,t){Fo(e,t,null)},c1=function(e,t,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,o=!1,s=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(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){s=c}if(o)break}if(!o)throw s;return n};b.setItem=function(e,t,r,n,i){c1(Pc,arguments,i)};b.getItem=function(e,t,r,n){return c1(Lc,arguments,n)};b.removeItem=function(e,t,r,n){c1(Nc,arguments,n)};b.clearItems=function(e,t,r){c1(Dc,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=[],s=0;r=t.exec(e);){n=e.substring(s,t.lastIndex-2),n.length>0&&o.push(n),s=t.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?o.push(arguments[i+++1]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+a+"?>")}}return o.push(e.substring(s)),o.join("")};b.formatNumber=function(e,t,r,n){var i=e,o=isNaN(t=Math.abs(t))?2:t,s=r===void 0?",":r,a=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)+a:"")+u.substr(f).replace(/(\d{3})(?=\d)/g,"$1"+a)+(o?s+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(s){return s.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 s=r[r.length-1],a=t.length;!s||a!==s.end+1?r.push({start:a,end:a}):(s.end=a,s.end-s.start>r[n].end-r[n].start&&(n=r.length-1))}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(s){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(s,a,c){if(a===0){var u=Math.floor(s.reduce(function(f,l){return f+l},0)/s.length);return b.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,b.cores)}i(c,function(f,l){s.push(o(c,l)),n(s,a-1,c)})}function i(s,a){for(var c=[],u=[],f=0;f<s;++f){var l=new Worker(r);l.addEventListener("message",function(p){if(u.push(p.data),u.length===s){for(var d=0;d<s;++d)c[d].terminate();a(null,u)}}),c.push(l)}for(var f=0;f<s;++f)c[f].postMessage(f)}function o(s,a){for(var c=[],u=0;u<s;++u)for(var f=a[u],l=c[u]=[],p=0;p<s;++p)if(u!==p){var d=a[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,g){return Math.max(h,g.length)},0)}}});var Vo=nt((Rx,s3)=>{var kt=ct();It();s3.exports=kt.cipher=kt.cipher||{};kt.cipher.algorithms=kt.cipher.algorithms||{};kt.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=kt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new kt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};kt.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=kt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new kt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};kt.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),kt.cipher.algorithms[e]=t};kt.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in kt.cipher.algorithms?kt.cipher.algorithms[e]:null};var Ko=kt.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=kt.util.createBuffer(),this.output=e.output||kt.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 zo=nt((_x,a3)=>{var Ut=ct();It();Ut.cipher=Ut.cipher||{};var W=a3.exports=Ut.cipher.modes=Ut.cipher.modes||{};W.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)};W.ecb.prototype.start=function(e){};W.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])};W.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])};W.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};W.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)};W.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)};W.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.")};W.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};W.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)};W.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};W.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)};W.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=Ut.util.createBuffer(),this._partialBytes=0};W.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};W.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};W.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};W.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=Ut.util.createBuffer(),this._partialBytes=0};W.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};W.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};W.ofb.prototype.decrypt=W.ofb.prototype.encrypt;W.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=Ut.util.createBuffer(),this._partialBytes=0};W.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};W.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)};W.ctr.prototype.decrypt=W.ctr.prototype.encrypt;W.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=Ut.util.createBuffer(),this._partialBytes=0,this._R=3774873600};W.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Ut.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=Ut.util.createBuffer(e.additionalData):r=Ut.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Ut.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(qo(n*8)))}this._inBlock=this._j0.slice(0),f1(this._inBlock),this._partialBytes=0,r=Ut.util.createBuffer(r),this._aDataLength=qo(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()])};W.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 s=n%this.blockSize;this._cipherLength+=s,this._partialOutput.truncate(this.blockSize-s)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return 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)};W.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};W.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Ut.util.createBuffer();var n=this._aDataLength.concat(qo(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};W.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};W.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)};W.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};W.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)};W.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,i=16*r,o=new Array(i),s=0;s<i;++s){var a=[0,0,0,0],c=s/n|0,u=(n-1-s%n)*t;a[c]=1<<t-1<<u,o[s]=this.generateSubHashTable(this.multiply(a,e),t)}return o};W.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 s=1;s<o;++s){var a=i[o],c=i[s];i[o+s]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}o*=2}for(i[0]=[0,0,0,0],o=n+1;o<r;++o){var u=i[o^n];i[o]=[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=Ut.util.createBuffer(e)),Ut.util.isArray(e)&&e.length>4){var r=e;e=Ut.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(!Ut.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 qo(e){return[e/4294967296|0,e&4294967295]}});var h1=nt((Px,l3)=>{var lt=ct();Vo();zo();It();l3.exports=lt.aes=lt.aes||{};lt.aes.startEncrypting=function(e,t,r,n){var i=l1({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};lt.aes.createEncryptionCipher=function(e,t){return l1({key:e,output:null,decrypt:!1,mode:t})};lt.aes.startDecrypting=function(e,t,r,n){var i=l1({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};lt.aes.createDecryptionCipher=function(e,t){return l1({key:e,output:null,decrypt:!0,mode:t})};lt.aes.Algorithm=function(e,t){Go||u3();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return $o(r._w,n,i,!1)},decrypt:function(n,i){return $o(r._w,n,i,!0)}}}),r._init=!1};lt.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=lt.util.createBuffer(t);else if(lt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=lt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!lt.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(!lt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var o=this.mode.name,s=["CFB","OFB","CTR","GCM"].indexOf(o)!==-1;this._w=f3(t,e.decrypt&&!s),this._init=!0}};lt.aes._expandKey=function(e,t){return Go||u3(),f3(e,t)};lt.aes._updateBlock=$o;Tn("AES-ECB",lt.cipher.modes.ecb);Tn("AES-CBC",lt.cipher.modes.cbc);Tn("AES-CFB",lt.cipher.modes.cfb);Tn("AES-OFB",lt.cipher.modes.ofb);Tn("AES-CTR",lt.cipher.modes.ctr);Tn("AES-GCM",lt.cipher.modes.gcm);function Tn(e,t){var r=function(){return new lt.aes.Algorithm(e,t)};lt.cipher.registerAlgorithm(e,r)}var Go=!1,Bn=4,Jt,Ho,c3,Fr,be;function u3(){Go=!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;Jt=new Array(256),Ho=new Array(256),Fr=new Array(4),be=new Array(4);for(var t=0;t<4;++t)Fr[t]=new Array(256),be[t]=new Array(256);for(var r=0,n=0,i,o,s,a,c,u,f,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,Jt[r]=a,Ho[a]=r,c=e[a],i=e[r],o=e[i],s=e[o],u=c<<24^a<<16^a<<8^(a^c),f=(i^o^s)<<24^(r^s)<<16^(r^o^s)<<8^(r^i^s);for(var l=0;l<4;++l)Fr[l][r]=u,be[l][a]=f,u=u<<24|u>>>8,f=f<<24|f>>>8;r===0?r=n=1:(r=i^e[e[e[i^s]]],n^=e[e[n]])}}function f3(e,t){for(var r=e.slice(0),n,i=1,o=r.length,s=o+6+1,a=Bn*s,c=o;c<a;++c)n=r[c-1],c%o===0?(n=Jt[n>>>16&255]<<24^Jt[n>>>8&255]<<16^Jt[n&255]<<8^Jt[n>>>24]^c3[i]<<24,i++):o>6&&c%o===4&&(n=Jt[n>>>24]<<24^Jt[n>>>16&255]<<16^Jt[n>>>8&255]<<8^Jt[n&255]),r[c]=r[c-o]^n;if(t){var u,f=be[0],l=be[1],p=be[2],d=be[3],h=r.slice(0);a=r.length;for(var c=0,g=a-Bn;c<a;c+=Bn,g-=Bn)if(c===0||c===a-Bn)h[c]=r[g],h[c+1]=r[g+3],h[c+2]=r[g+2],h[c+3]=r[g+1];else for(var y=0;y<Bn;++y)u=r[g+y],h[c+(3&-y)]=f[Jt[u>>>24]]^l[Jt[u>>>16&255]]^p[Jt[u>>>8&255]]^d[Jt[u&255]];r=h}return r}function $o(e,t,r,n){var i=e.length/4-1,o,s,a,c,u;n?(o=be[0],s=be[1],a=be[2],c=be[3],u=Ho):(o=Fr[0],s=Fr[1],a=Fr[2],c=Fr[3],u=Jt);var f,l,p,d,h,g,y;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]^s[l>>>16&255]^a[p>>>8&255]^c[d&255]^e[++m],g=o[l>>>24]^s[p>>>16&255]^a[d>>>8&255]^c[f&255]^e[++m],y=o[p>>>24]^s[d>>>16&255]^a[f>>>8&255]^c[l&255]^e[++m],d=o[d>>>24]^s[f>>>16&255]^a[l>>>8&255]^c[p&255]^e[++m],f=h,l=g,p=y;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=lt.cipher.createDecipher(r,e.key):n=lt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof lt.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var g1=nt((tv,m3)=>{var a0=ct();a0.pki=a0.pki||{};var Qo=m3.exports=a0.pki.oids=a0.oids=a0.oids||{};function R(e,t){Qo[e]=t,Qo[t]=e}function ot(e,t){Qo[e]=t}R("1.2.840.113549.1.1.1","rsaEncryption");R("1.2.840.113549.1.1.4","md5WithRSAEncryption");R("1.2.840.113549.1.1.5","sha1WithRSAEncryption");R("1.2.840.113549.1.1.7","RSAES-OAEP");R("1.2.840.113549.1.1.8","mgf1");R("1.2.840.113549.1.1.9","pSpecified");R("1.2.840.113549.1.1.10","RSASSA-PSS");R("1.2.840.113549.1.1.11","sha256WithRSAEncryption");R("1.2.840.113549.1.1.12","sha384WithRSAEncryption");R("1.2.840.113549.1.1.13","sha512WithRSAEncryption");R("1.3.101.112","EdDSA25519");R("1.2.840.10040.4.3","dsa-with-sha1");R("1.3.14.3.2.7","desCBC");R("1.3.14.3.2.26","sha1");R("1.3.14.3.2.29","sha1WithRSASignature");R("2.16.840.1.101.3.4.2.1","sha256");R("2.16.840.1.101.3.4.2.2","sha384");R("2.16.840.1.101.3.4.2.3","sha512");R("2.16.840.1.101.3.4.2.4","sha224");R("2.16.840.1.101.3.4.2.5","sha512-224");R("2.16.840.1.101.3.4.2.6","sha512-256");R("1.2.840.113549.2.2","md2");R("1.2.840.113549.2.5","md5");R("1.2.840.113549.1.7.1","data");R("1.2.840.113549.1.7.2","signedData");R("1.2.840.113549.1.7.3","envelopedData");R("1.2.840.113549.1.7.4","signedAndEnvelopedData");R("1.2.840.113549.1.7.5","digestedData");R("1.2.840.113549.1.7.6","encryptedData");R("1.2.840.113549.1.9.1","emailAddress");R("1.2.840.113549.1.9.2","unstructuredName");R("1.2.840.113549.1.9.3","contentType");R("1.2.840.113549.1.9.4","messageDigest");R("1.2.840.113549.1.9.5","signingTime");R("1.2.840.113549.1.9.6","counterSignature");R("1.2.840.113549.1.9.7","challengePassword");R("1.2.840.113549.1.9.8","unstructuredAddress");R("1.2.840.113549.1.9.14","extensionRequest");R("1.2.840.113549.1.9.20","friendlyName");R("1.2.840.113549.1.9.21","localKeyId");R("1.2.840.113549.1.9.22.1","x509Certificate");R("1.2.840.113549.1.12.10.1.1","keyBag");R("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");R("1.2.840.113549.1.12.10.1.3","certBag");R("1.2.840.113549.1.12.10.1.4","crlBag");R("1.2.840.113549.1.12.10.1.5","secretBag");R("1.2.840.113549.1.12.10.1.6","safeContentsBag");R("1.2.840.113549.1.5.13","pkcs5PBES2");R("1.2.840.113549.1.5.12","pkcs5PBKDF2");R("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");R("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");R("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");R("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");R("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");R("1.2.840.113549.2.7","hmacWithSHA1");R("1.2.840.113549.2.8","hmacWithSHA224");R("1.2.840.113549.2.9","hmacWithSHA256");R("1.2.840.113549.2.10","hmacWithSHA384");R("1.2.840.113549.2.11","hmacWithSHA512");R("1.2.840.113549.3.7","des-EDE3-CBC");R("2.16.840.1.101.3.4.1.2","aes128-CBC");R("2.16.840.1.101.3.4.1.22","aes192-CBC");R("2.16.840.1.101.3.4.1.42","aes256-CBC");R("2.5.4.3","commonName");R("2.5.4.4","surname");R("2.5.4.5","serialNumber");R("2.5.4.6","countryName");R("2.5.4.7","localityName");R("2.5.4.8","stateOrProvinceName");R("2.5.4.9","streetAddress");R("2.5.4.10","organizationName");R("2.5.4.11","organizationalUnitName");R("2.5.4.12","title");R("2.5.4.13","description");R("2.5.4.15","businessCategory");R("2.5.4.17","postalCode");R("2.5.4.42","givenName");R("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");R("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");R("2.16.840.1.113730.1.1","nsCertType");R("2.16.840.1.113730.1.13","nsComment");ot("2.5.29.1","authorityKeyIdentifier");ot("2.5.29.2","keyAttributes");ot("2.5.29.3","certificatePolicies");ot("2.5.29.4","keyUsageRestriction");ot("2.5.29.5","policyMapping");ot("2.5.29.6","subtreesConstraint");ot("2.5.29.7","subjectAltName");ot("2.5.29.8","issuerAltName");ot("2.5.29.9","subjectDirectoryAttributes");ot("2.5.29.10","basicConstraints");ot("2.5.29.11","nameConstraints");ot("2.5.29.12","policyConstraints");ot("2.5.29.13","basicConstraints");R("2.5.29.14","subjectKeyIdentifier");R("2.5.29.15","keyUsage");ot("2.5.29.16","privateKeyUsagePeriod");R("2.5.29.17","subjectAltName");R("2.5.29.18","issuerAltName");R("2.5.29.19","basicConstraints");ot("2.5.29.20","cRLNumber");ot("2.5.29.21","cRLReason");ot("2.5.29.22","expirationDate");ot("2.5.29.23","instructionCode");ot("2.5.29.24","invalidityDate");ot("2.5.29.25","cRLDistributionPoints");ot("2.5.29.26","issuingDistributionPoint");ot("2.5.29.27","deltaCRLIndicator");ot("2.5.29.28","issuingDistributionPoint");ot("2.5.29.29","certificateIssuer");ot("2.5.29.30","nameConstraints");R("2.5.29.31","cRLDistributionPoints");R("2.5.29.32","certificatePolicies");ot("2.5.29.33","policyMappings");ot("2.5.29.34","policyConstraints");R("2.5.29.35","authorityKeyIdentifier");ot("2.5.29.36","policyConstraints");R("2.5.29.37","extKeyUsage");ot("2.5.29.46","freshestCRL");ot("2.5.29.54","inhibitAnyPolicy");R("1.3.6.1.4.1.11129.2.4.2","timestampList");R("1.3.6.1.5.5.7.1.1","authorityInfoAccess");R("1.3.6.1.5.5.7.3.1","serverAuth");R("1.3.6.1.5.5.7.3.2","clientAuth");R("1.3.6.1.5.5.7.3.3","codeSigning");R("1.3.6.1.5.5.7.3.4","emailProtection");R("1.3.6.1.5.5.7.3.8","timeStamping")});var u0=nt((ev,v3)=>{var ht=ct();It();g1();var U=v3.exports=ht.asn1=ht.asn1||{};U.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};U.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};U.create=function(e,t,r,n,i){if(ht.util.isArray(n)){for(var o=[],s=0;s<n.length;++s)n[s]!==void 0&&o.push(n[s]);n=o}var a={tagClass:e,type:t,constructed:r,composed:r||ht.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=U.copy(a)),a};U.copy=function(e,t){var r;if(ht.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(U.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:U.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};U.equals=function(e,t,r){if(ht.util.isArray(e)){if(!ht.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!U.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&&U.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};U.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 c0(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 Vc=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;c0(e,t,o),n=e.getInt(o<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};U.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=ht.util.createBuffer(e));var r=e.length(),n=y1(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 y1(e,t,r,n){var i;c0(e,t,2);var o=e.getByte();t--;var s=o&192,a=o&31;i=e.length();var c=Vc(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(c0(e,t,2),e.bytes(2)==="\0\0"){e.getBytes(2),t-=2;break}i=e.length(),f.push(y1(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),f.push(y1(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(f===void 0&&s===U.Class.UNIVERSAL&&a===U.Type.BITSTRING&&(l=e.bytes(c)),f===void 0&&n.decodeBitStrings&&s===U.Class.UNIVERSAL&&a===U.Type.BITSTRING&&c>1){var d=e.read,h=t,g=0;if(a===U.Type.BITSTRING&&(c0(e,t,1),g=e.getByte(),t--),g===0)try{i=e.length();var y={strict:!0,decodeBitStrings:!0},m=y1(e,t,r+1,y),x=i-e.length();t-=x,a==U.Type.BITSTRING&&x++;var v=m.tagClass;x===c&&(v===U.Class.UNIVERSAL||v===U.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(a===U.Type.BMPSTRING)for(f="";c>0;c-=2)c0(e,t,2),f+=String.fromCharCode(e.getInt16()),t-=2;else f=e.getBytes(c),t-=c}var T=l===void 0?null:{bitStringContents:l};return U.create(s,a,p,f,T)}U.toDer=function(e){var t=ht.util.createBuffer(),r=e.tagClass|e.type,n=ht.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=U.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(U.toDer(e.value[o]))}else if(e.type===U.Type.BMPSTRING)for(var o=0;o<e.value.length;++o)n.putInt16(e.value.charCodeAt(o));else e.type===U.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 s=n.length(),a="";do a+=String.fromCharCode(s&255),s=s>>>8;while(s>0);t.putByte(a.length|128);for(var o=a.length-1;o>=0;--o)t.putByte(a.charCodeAt(o))}return t.putBuffer(n),t};U.oidToDer=function(e){var t=e.split("."),r=ht.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,o,s,a=2;a<t.length;++a){n=!0,i=[],o=parseInt(t[a],10);do s=o&127,o=o>>>7,n||(s|=128),i.push(s),n=!1;while(o>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};U.derToOid=function(e){var t;typeof e=="string"&&(e=ht.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};U.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),s=parseInt(e.substr(8,2),10),a=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(o,s,a,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};U.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),s=parseInt(e.substr(10,2),10),a=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,s,a,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(o,s,a,c)),t};U.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};U.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};U.integerToDer=function(e){var t=ht.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};U.derToInteger=function(e){typeof e=="string"&&(e=ht.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)};U.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&&ht.util.isArray(t.value))for(var o=0,s=0;i&&s<t.value.length;++s)i=t.value[s].optional||!1,e.value[o]&&(i=U.validate(e.value[o],t.value[s],r,n),i?++o:t.value[s].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 a;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]/;U.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 U.Class.UNIVERSAL:n+="Universal:";break;case U.Class.APPLICATION:n+="Application:";break;case U.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case U.Class.PRIVATE:n+="Private:";break}if(e.tagClass===U.Class.UNIVERSAL)switch(n+=e.type,e.type){case U.Type.NONE:n+=" (None)";break;case U.Type.BOOLEAN:n+=" (Boolean)";break;case U.Type.INTEGER:n+=" (Integer)";break;case U.Type.BITSTRING:n+=" (Bit string)";break;case U.Type.OCTETSTRING:n+=" (Octet string)";break;case U.Type.NULL:n+=" (Null)";break;case U.Type.OID:n+=" (Object Identifier)";break;case U.Type.ODESC:n+=" (Object Descriptor)";break;case U.Type.EXTERNAL:n+=" (External or Instance of)";break;case U.Type.REAL:n+=" (Real)";break;case U.Type.ENUMERATED:n+=" (Enumerated)";break;case U.Type.EMBEDDED:n+=" (Embedded PDV)";break;case U.Type.UTF8:n+=" (UTF8)";break;case U.Type.ROID:n+=" (Relative Object Identifier)";break;case U.Type.SEQUENCE:n+=" (Sequence)";break;case U.Type.SET:n+=" (Set)";break;case U.Type.PRINTABLESTRING:n+=" (Printable String)";break;case U.Type.IA5String:n+=" (IA5String (ASCII))";break;case U.Type.UTCTIME:n+=" (UTC time)";break;case U.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case U.Type.BMPSTRING:n+=" (BMP String)";break}else n+=e.type;if(n+=`
|
|
7
7
|
`,n+=i+"Constructed: "+e.constructed+`
|
|
8
|
-
`,e.composed){for(var s=0,a="",o=0;o<e.value.length;++o)e.value[o]!==void 0&&(s+=1,a+=U.prettyPrint(e.value[o],t+1,r),o+1<e.value.length&&(a+=","));n+=i+"Sub values: "+s+a}else{if(n+=i+"Value: ",e.type===U.Type.OID){var c=U.derToOid(e.value);n+=c,dt.pki&&dt.pki.oids&&c in dt.pki.oids&&(n+=" ("+dt.pki.oids[c]+") ")}if(e.type===U.Type.INTEGER)try{n+=U.derToInteger(e.value)}catch{n+="0x"+dt.util.bytesToHex(e.value)}else if(e.type===U.Type.BITSTRING){if(e.value.length>1?n+="0x"+dt.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===U.Type.OCTETSTRING)p3.test(e.value)||(n+="("+e.value+") "),n+="0x"+dt.util.bytesToHex(e.value);else if(e.type===U.Type.UTF8)try{n+=dt.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")n+="0x"+dt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===U.Type.PRINTABLESTRING||e.type===U.Type.IA5String?n+=e.value:p3.test(e.value)?n+="0x"+dt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var x3=it((Zx,m3)=>{var yt=ut();ko();Oo();Tt();m3.exports=yt.des=yt.des||{};yt.des.startEncrypting=function(e,t,r,n){var i=h1({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};yt.des.createEncryptionCipher=function(e,t){return h1({key:e,output:null,decrypt:!1,mode:t})};yt.des.startDecrypting=function(e,t,r,n){var i=h1({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};yt.des.createDecryptionCipher=function(e,t){return h1({key:e,output:null,decrypt:!0,mode:t})};yt.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return y3(r._keys,n,i,!1)},decrypt:function(n,i){return y3(r._keys,n,i,!0)}}}),r._init=!1};yt.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=yt.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=$c(t),this._init=!0}};De("DES-ECB",yt.cipher.modes.ecb);De("DES-CBC",yt.cipher.modes.cbc);De("DES-CFB",yt.cipher.modes.cfb);De("DES-OFB",yt.cipher.modes.ofb);De("DES-CTR",yt.cipher.modes.ctr);De("3DES-ECB",yt.cipher.modes.ecb);De("3DES-CBC",yt.cipher.modes.cbc);De("3DES-CFB",yt.cipher.modes.cfb);De("3DES-OFB",yt.cipher.modes.ofb);De("3DES-CTR",yt.cipher.modes.ctr);function De(e,t){var r=function(){return new yt.des.Algorithm(e,t)};yt.cipher.registerAlgorithm(e,r)}var Oc=[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],Fc=[-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],Mc=[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],Kc=[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],Vc=[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],qc=[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],zc=[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],Hc=[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 $c(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],s=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],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],g=e.length()>8?3:1,y=[],m=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,v,T=0;T<g;T++){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]|s[E>>>8&15]|a[E>>>4&15],H=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=(H>>>16^N)&65535,y[x++]=N^v,y[x++]=H^v<<16}}return y}function y3(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 s,a=t[0],c=t[1];s=(a>>>4^c)&252645135,c^=s,a^=s<<4,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var 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];s=a,a=c,c=s^(Fc[d>>>24&63]|Kc[d>>>16&63]|qc[d>>>8&63]|Hc[d&63]|Oc[h>>>24&63]|Mc[h>>>16&63]|Vc[h>>>8&63]|zc[h&63])}s=a,a=c,c=s}a=a>>>1|a<<31,c=c>>>1|c<<31,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(a>>>4^c)&252645135,c^=s,a^=s<<4,r[0]=a,r[1]=c}function h1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+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,s){var a=null;s instanceof yt.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var Ur=it((Xx,v3)=>{var d1=ut();v3.exports=d1.md=d1.md||{};d1.md.algorithms=d1.md.algorithms||{}});var w3=it((Jx,b3)=>{var Xe=ut();Ur();Tt();var Gc=b3.exports=Xe.hmac=Xe.hmac||{};Gc.create=function(){var e=null,t=null,r=null,n=null,i={};return i.start=function(o,s){if(o!==null)if(typeof o=="string")if(o=o.toLowerCase(),o in Xe.md.algorithms)t=Xe.md.algorithms[o].create();else throw new Error('Unknown hash algorithm "'+o+'"');else t=o;if(s===null)s=e;else{if(typeof s=="string")s=Xe.util.createBuffer(s);else if(Xe.util.isArray(s)){var a=s;s=Xe.util.createBuffer();for(var c=0;c<a.length;++c)s.putByte(a[c])}var u=s.length();u>t.blockLength&&(t.start(),t.update(s.bytes()),s=t.digest()),r=Xe.util.createBuffer(),n=Xe.util.createBuffer(),u=s.length();for(var c=0;c<u;++c){var a=s.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<t.blockLength)for(var a=t.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);e=s,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 p1=it(()=>{});var qo=it((ev,E3)=>{var Xt=ut();w3();Ur();Tt();var Yc=Xt.pkcs5=Xt.pkcs5||{},Je;Xt.util.isNodejs&&!Xt.options.usePureJavaScript&&(Je=p1());E3.exports=Xt.pbkdf2=Yc.pbkdf2=function(e,t,r,n,i,o){if(typeof i=="function"&&(o=i,i=null),Xt.util.isNodejs&&!Xt.options.usePureJavaScript&&Je.pbkdf2&&(i===null||typeof i!="object")&&(Je.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),o?Je.pbkdf2Sync.length===4?Je.pbkdf2(e,t,r,n,function(v,T){if(v)return o(v);o(null,T.toString("binary"))}):Je.pbkdf2(e,t,r,n,i,function(v,T){if(v)return o(v);o(null,T.toString("binary"))}):Je.pbkdf2Sync.length===4?Je.pbkdf2Sync(e,t,r,n).toString("binary"):Je.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in Xt.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=Xt.md[i].create()}var s=i.digestLength;if(n>4294967295*s){var a=new Error("Derived key is too long.");if(o)return o(a);throw a}var c=Math.ceil(n/s),u=n-(c-1)*s,f=Xt.hmac.create();f.start(i,e);var l="",p,d,h;if(!o){for(var g=1;g<=c;++g){f.start(null,null),f.update(t),f.update(Xt.util.int32ToBytes(g)),p=h=f.digest().getBytes();for(var y=2;y<=r;++y)f.start(null,null),f.update(h),d=f.digest().getBytes(),p=Xt.util.xorBytes(p,d,s),h=d;l+=g<c?p:p.substr(0,u)}return l}var g=1,y;function m(){if(g>c)return o(null,l);f.start(null,null),f.update(t),f.update(Xt.util.int32ToBytes(g)),p=h=f.digest().getBytes(),y=2,x()}function x(){if(y<=r)return f.start(null,null),f.update(h),d=f.digest().getBytes(),p=Xt.util.xorBytes(p,d,s),h=d,++y,Xt.util.setImmediate(x);l+=g<c?p:p.substr(0,u),++g,m()}m()}});var A3=it((rv,I3)=>{var y1=ut();Tt();var S3=I3.exports=y1.pem=y1.pem||{};S3.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 s=0,a="",o=0;o<e.value.length;++o)e.value[o]!==void 0&&(s+=1,a+=U.prettyPrint(e.value[o],t+1,r),o+1<e.value.length&&(a+=","));n+=i+"Sub values: "+s+a}else{if(n+=i+"Value: ",e.type===U.Type.OID){var c=U.derToOid(e.value);n+=c,ht.pki&&ht.pki.oids&&c in ht.pki.oids&&(n+=" ("+ht.pki.oids[c]+") ")}if(e.type===U.Type.INTEGER)try{n+=U.derToInteger(e.value)}catch{n+="0x"+ht.util.bytesToHex(e.value)}else if(e.type===U.Type.BITSTRING){if(e.value.length>1?n+="0x"+ht.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===U.Type.OCTETSTRING)x3.test(e.value)||(n+="("+e.value+") "),n+="0x"+ht.util.bytesToHex(e.value);else if(e.type===U.Type.UTF8)try{n+=ht.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")n+="0x"+ht.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===U.Type.PRINTABLESTRING||e.type===U.Type.IA5String?n+=e.value:x3.test(e.value)?n+="0x"+ht.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var E3=nt((rv,w3)=>{var gt=ct();Vo();zo();It();w3.exports=gt.des=gt.des||{};gt.des.startEncrypting=function(e,t,r,n){var i=m1({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};gt.des.createEncryptionCipher=function(e,t){return m1({key:e,output:null,decrypt:!1,mode:t})};gt.des.startDecrypting=function(e,t,r,n){var i=m1({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};gt.des.createDecryptionCipher=function(e,t){return m1({key:e,output:null,decrypt:!0,mode:t})};gt.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};gt.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=gt.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=Zc(t),this._init=!0}};Ue("DES-ECB",gt.cipher.modes.ecb);Ue("DES-CBC",gt.cipher.modes.cbc);Ue("DES-CFB",gt.cipher.modes.cfb);Ue("DES-OFB",gt.cipher.modes.ofb);Ue("DES-CTR",gt.cipher.modes.ctr);Ue("3DES-ECB",gt.cipher.modes.ecb);Ue("3DES-CBC",gt.cipher.modes.cbc);Ue("3DES-CFB",gt.cipher.modes.cfb);Ue("3DES-OFB",gt.cipher.modes.ofb);Ue("3DES-CTR",gt.cipher.modes.ctr);function Ue(e,t){var r=function(){return new gt.des.Algorithm(e,t)};gt.cipher.registerAlgorithm(e,r)}var qc=[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],zc=[-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],Hc=[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],$c=[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],Gc=[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],Yc=[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],Qc=[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],Wc=[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 Zc(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],s=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],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],g=e.length()>8?3:1,y=[],m=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,v,T=0;T<g;T++){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]|s[E>>>8&15]|a[E>>>4&15],H=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=(H>>>16^N)&65535,y[x++]=N^v,y[x++]=H^v<<16}}return y}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 s,a=t[0],c=t[1];s=(a>>>4^c)&252645135,c^=s,a^=s<<4,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var 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];s=a,a=c,c=s^(zc[d>>>24&63]|$c[d>>>16&63]|Yc[d>>>8&63]|Wc[d&63]|qc[h>>>24&63]|Hc[h>>>16&63]|Gc[h>>>8&63]|Qc[h&63])}s=a,a=c,c=s}a=a>>>1|a<<31,c=c>>>1|c<<31,s=(a>>>1^c)&1431655765,c^=s,a^=s<<1,s=(c>>>8^a)&16711935,a^=s,c^=s<<8,s=(c>>>2^a)&858993459,a^=s,c^=s<<2,s=(a>>>16^c)&65535,c^=s,a^=s<<16,s=(a>>>4^c)&252645135,c^=s,a^=s<<4,r[0]=a,r[1]=c}function m1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=gt.cipher.createDecipher(r,e.key):n=gt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,s){var a=null;s instanceof gt.util.ByteBuffer&&(a=s,s={}),s=s||{},s.output=a,s.iv=o,i.call(n,s)},n}});var Kr=nt((nv,S3)=>{var x1=ct();S3.exports=x1.md=x1.md||{};x1.md.algorithms=x1.md.algorithms||{}});var A3=nt((iv,I3)=>{var tr=ct();Kr();It();var Xc=I3.exports=tr.hmac=tr.hmac||{};Xc.create=function(){var e=null,t=null,r=null,n=null,i={};return i.start=function(o,s){if(o!==null)if(typeof o=="string")if(o=o.toLowerCase(),o in tr.md.algorithms)t=tr.md.algorithms[o].create();else throw new Error('Unknown hash algorithm "'+o+'"');else t=o;if(s===null)s=e;else{if(typeof s=="string")s=tr.util.createBuffer(s);else if(tr.util.isArray(s)){var a=s;s=tr.util.createBuffer();for(var c=0;c<a.length;++c)s.putByte(a[c])}var u=s.length();u>t.blockLength&&(t.start(),t.update(s.bytes()),s=t.digest()),r=tr.util.createBuffer(),n=tr.util.createBuffer(),u=s.length();for(var c=0;c<u;++c){var a=s.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<t.blockLength)for(var a=t.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);e=s,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 v1=nt(()=>{});var Wo=nt((av,B3)=>{var jt=ct();A3();Kr();It();var Jc=jt.pkcs5=jt.pkcs5||{},er;jt.util.isNodejs&&!jt.options.usePureJavaScript&&(er=v1());B3.exports=jt.pbkdf2=Jc.pbkdf2=function(e,t,r,n,i,o){if(typeof i=="function"&&(o=i,i=null),jt.util.isNodejs&&!jt.options.usePureJavaScript&&er.pbkdf2&&(i===null||typeof i!="object")&&(er.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),o?er.pbkdf2Sync.length===4?er.pbkdf2(e,t,r,n,function(v,T){if(v)return o(v);o(null,T.toString("binary"))}):er.pbkdf2(e,t,r,n,i,function(v,T){if(v)return o(v);o(null,T.toString("binary"))}):er.pbkdf2Sync.length===4?er.pbkdf2Sync(e,t,r,n).toString("binary"):er.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in jt.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=jt.md[i].create()}var s=i.digestLength;if(n>4294967295*s){var a=new Error("Derived key is too long.");if(o)return o(a);throw a}var c=Math.ceil(n/s),u=n-(c-1)*s,f=jt.hmac.create();f.start(i,e);var l="",p,d,h;if(!o){for(var g=1;g<=c;++g){f.start(null,null),f.update(t),f.update(jt.util.int32ToBytes(g)),p=h=f.digest().getBytes();for(var y=2;y<=r;++y)f.start(null,null),f.update(h),d=f.digest().getBytes(),p=jt.util.xorBytes(p,d,s),h=d;l+=g<c?p:p.substr(0,u)}return l}var g=1,y;function m(){if(g>c)return o(null,l);f.start(null,null),f.update(t),f.update(jt.util.int32ToBytes(g)),p=h=f.digest().getBytes(),y=2,x()}function x(){if(y<=r)return f.start(null,null),f.update(h),d=f.digest().getBytes(),p=jt.util.xorBytes(p,d,s),h=d,++y,jt.util.setImmediate(x);l+=g<c?p:p.substr(0,u),++g,m()}m()}});var R3=nt((cv,C3)=>{var w1=ct();It();var T3=C3.exports=w1.pem=w1.pem||{};T3.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+=b1(n)),e.contentDomain&&(n={name:"Content-Domain",values:[e.contentDomain]},r+=b1(n)),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),r+=b1(n)),e.headers)for(var i=0;i<e.headers.length;++i)r+=b1(e.headers[i]);return e.procType&&(r+=`\r
|
|
10
|
+
`),r+=w1.util.encode64(e.body,t.maxline||64)+`\r
|
|
11
11
|
`,r+="-----END "+e.type+`-----\r
|
|
12
|
-
`,r};
|
|
12
|
+
`,r};T3.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 s=o[1];s==="NEW CERTIFICATE REQUEST"&&(s="CERTIFICATE REQUEST");var a={type:s,procType:null,contentDomain:null,dekInfo:null,headers:[],body:w1.util.decode64(o[3])};if(t.push(a),!!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(","),g=0;g<h.length;++g)d.values.push(jc(h[g]));if(a.procType)if(!a.contentDomain&&d.name==="Content-Domain")a.contentDomain=h[0]||"";else if(!a.dekInfo&&d.name==="DEK-Info"){if(d.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:h[0],parameters:h[1]||null}}else a.headers.push(d);else{if(d.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(d.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:h[0],type:h[1]}}}++u}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function b1(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,s=-1,i=0;i<t.length;++i,++o)if(o>65&&s!==-1){var a=t[s];a===","?(++s,t=t.substr(0,s)+`\r
|
|
14
14
|
`+t.substr(s)):t=t.substr(0,s)+`\r
|
|
15
|
-
`+a+t.substr(s+1),o=i-s-1,s=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(s=i);return t}function Qc(e){return e.replace(/^\s+/,"")}});var P3=it((nv,_3)=>{var ke=ut();Ur();Tt();var T3=_3.exports=ke.sha256=ke.sha256||{};ke.md.sha256=ke.md.algorithms.sha256=T3;T3.create=function(){C3||Wc();var e=null,t=ke.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=ke.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=ke.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),B3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=ke.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(zo.substr(0,n.blockLength-s));for(var a,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)a=n.fullMessageLength[f+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>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};B3(l,r,i);var p=ke.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 zo=null,C3=!1,R3=null;function Wc(){zo="\x80",zo+=ke.util.fillString("\0",64),R3=[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],C3=!0}function B3(e,t,r){for(var n,i,o,s,a,c,u,f,l,p,d,h,g,y,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,g=e.h5,y=e.h6,m=e.h7,u=0;u<64;++u)s=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),a=y^h&(g^y),o=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),c=f&l|p&(f^l),n=m+s+a+R3[u]+t[u],i=o+c,m=y,y=g,g=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+g|0,e.h6=e.h6+y|0,e.h7=e.h7+m|0,x-=64}}});var N3=it((iv,L3)=>{var Ue=ut();Tt();var m1=null;Ue.util.isNodejs&&!Ue.options.usePureJavaScript&&!process.versions["node-webkit"]&&(m1=p1());var Zc=L3.exports=Ue.prng=Ue.prng||{};Zc.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,g=Ue.util.createBuffer();t.key=null,y();function y(m){if(m)return f(m);if(g.length()>=u)return f(null,g.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return Ue.util.nextTick(function(){o(y)});var x=l(t.key,t.seed);t.generated+=x.length,g.putBytes(x),t.key=d(l(t.key,p(t.seed))),t.seed=h(l(t.key,t.seed)),Ue.util.setImmediate(y)}},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=Ue.util.createBuffer();h.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&s();var g=f(t.key,t.seed);t.generated+=g.length,h.putBytes(g),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 a(),u();var f=32-t.pools[0].messageLength<<5;t.seedFile(f,function(l,p){if(l)return u(l);t.collect(p),a(),u()})}function s(){if(t.pools[0].messageLength>=32)return a();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),a()}function a(){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=Ue.util.globalScope,p=l.crypto||l.msCrypto;p&&p.getRandomValues&&(f=function(E){return p.getRandomValues(E)});var d=Ue.util.createBuffer();if(f)for(;d.length()<u;){var h=Math.max(1,Math.min(u-d.length(),65536)/4),g=new Uint32Array(Math.floor(h));try{f(g);for(var y=0;y<g.length;++y)d.putInt32(g[y])}catch(E){if(!(typeof QuotaExceededError<"u"&&E instanceof QuotaExceededError))throw E}}if(d.length()<u)for(var m,x,v,T=Math.floor(Math.random()*65536);d.length()<u;){x=16807*(T&65535),m=16807*(T>>16),x+=(m&32767)<<16,x+=m>>15,x=(x&2147483647)+(x>>31),T=x&4294967295;for(var y=0;y<3;++y)v=T>>>(y<<3),v^=Math.floor(Math.random()*256),d.putByte(v&255)}return d.getBytes(u)}return m1?(t.seedFile=function(u,f){m1.randomBytes(u,function(l,p){if(l)return f(l);f(null,p.toString())})},t.seedFileSync=function(u){return m1.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 g=h.data;g.forge&&g.forge.prng&&(self.removeEventListener("message",d),p(g.forge.prng.err,g.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 c0=it((ov,Ho)=>{var Mt=ut();u1();P3();N3();Tt();(function(){if(Mt.random&&Mt.random.getBytes){Ho.exports=Mt.random;return}(function(e){var t={},r=new Array(4),n=Mt.util.createBuffer();t.formatKey=function(l){var p=Mt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),Mt.aes._expandKey(l,!1)},t.formatSeed=function(l){var p=Mt.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 Mt.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=Mt.md.sha256;function i(){var l=Mt.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(),s=null,a=Mt.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(s=function(l){return c.getRandomValues(l)}),Mt.options.usePureJavaScript||!Mt.util.isNodejs&&!s){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(!Mt.random)Mt.random=o;else for(var f in o)Mt.random[f]=o[f];Mt.random.createInstance=i,Ho.exports=Mt.random})(typeof jQuery<"u"?jQuery:null)})()});var O3=it((sv,U3)=>{var ne=ut();Tt();var $o=[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],D3=[1,2,3,5],Xc=function(e,t){return e<<t&65535|(e&65535)>>16-t},Jc=function(e,t){return(e&65535)>>t|e<<16-t&65535};U3.exports=ne.rc2=ne.rc2||{};ne.rc2.expandKey=function(e,t){typeof e=="string"&&(e=ne.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,o=Math.ceil(i/8),s=255>>(i&7),a;for(a=n;a<128;a++)r.putByte($o[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-o,$o[r.at(128-o)&s]),a=127-o;a>=0;a--)r.setAt(a,$o[r.at(a+1)^r.at(a+o)]);return r};var k3=function(e,t,r){var n=!1,i=null,o=null,s=null,a,c,u,f,l=[];for(e=ne.rc2.expandKey(e,t),u=0;u<64;u++)l.push(e.getInt16Le());r?(a=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]=Xc(h[u],D3[u]),f++},c=function(h){for(u=0;u<4;u++)h[u]+=l[h[(u+3)%4]&63]}):(a=function(h){for(u=3;u>=0;u--)h[u]=Jc(h[u],D3[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 g=[];for(u=0;u<4;u++){var y=i.getInt16Le();s!==null&&(r?y^=s.getInt16Le():s.putInt16Le(y)),g.push(y&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](g);for(u=0;u<4;u++)s!==null&&(r?s.putInt16Le(g[u]):g[u]^=s.getInt16Le()),o.putInt16Le(g[u])},d=null;return d={start:function(h,g){h&&typeof h=="string"&&(h=ne.util.createBuffer(h)),n=!1,i=ne.util.createBuffer(),o=g||new ne.util.createBuffer,s=h,d.output=o},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)p([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(h){var g=!0;if(r)if(h)g=h(8,i,!r);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(g&&(n=!0,d.update()),!r&&(g=i.length()===0,g))if(h)g=h(8,o,!r);else{var m=o.length(),x=o.at(m-1);x>m?g=!1:o.truncate(x)}return g}},d};ne.rc2.startEncrypting=function(e,t,r){var n=ne.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};ne.rc2.createEncryptionCipher=function(e,t){return k3(e,t,!0)};ne.rc2.startDecrypting=function(e,t,r){var n=ne.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};ne.rc2.createDecryptionCipher=function(e,t){return k3(e,t,!1)}});var b1=it((av,$3)=>{var Go=ut();$3.exports=Go.jsbn=Go.jsbn||{};var je,jc=0xdeadbeefcafe,F3=(jc&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))}Go.jsbn.BigInteger=B;function rt(){return new B(null)}function tu(e,t,r,n,i,o){for(;--o>=0;){var s=t*this.data[e++]+r.data[n]+i;i=Math.floor(s/67108864),r.data[n++]=s&67108863}return i}function eu(e,t,r,n,i,o){for(var s=t&32767,a=t>>15;--o>=0;){var c=this.data[e]&32767,u=this.data[e++]>>15,f=a*c+u*s;c=s*c+((f&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(f>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function M3(e,t,r,n,i,o){for(var s=t&16383,a=t>>14;--o>=0;){var c=this.data[e]&16383,u=this.data[e++]>>14,f=a*c+u*s;c=s*c+((f&16383)<<14)+r.data[n]+i,i=(c>>28)+(f>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(B.prototype.am=M3,je=28):F3&&navigator.appName=="Microsoft Internet Explorer"?(B.prototype.am=eu,je=30):F3&&navigator.appName!="Netscape"?(B.prototype.am=tu,je=26):(B.prototype.am=M3,je=28);B.prototype.DB=je;B.prototype.DM=(1<<je)-1;B.prototype.DV=1<<je;var Yo=52;B.prototype.FV=Math.pow(2,Yo);B.prototype.F1=Yo-je;B.prototype.F2=2*je-Yo;var ru="0123456789abcdefghijklmnopqrstuvwxyz",x1=new Array,An,le;An=48;for(le=0;le<=9;++le)x1[An++]=le;An=97;for(le=10;le<36;++le)x1[An++]=le;An=65;for(le=10;le<36;++le)x1[An++]=le;function K3(e){return ru.charAt(e)}function V3(e,t){var r=x1[e.charCodeAt(t)];return r??-1}function nu(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 iu(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 xr(e){var t=rt();return t.fromInt(e),t}function ou(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 s=r==8?e[n]&255:V3(e,n);if(s<0){e.charAt(n)=="-"&&(i=!0);continue}i=!1,o==0?this.data[this.t++]=s:o+r>this.DB?(this.data[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this.data[this.t++]=s>>this.DB-o):this.data[this.t-1]|=s<<o,o+=r,o>=this.DB&&(o-=this.DB)}r==8&&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 su(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function au(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="",s=this.t,a=this.DB-s*this.DB%t;if(s-- >0)for(a<this.DB&&(n=this.data[s]>>a)>0&&(i=!0,o=K3(n));s>=0;)a<t?(n=(this.data[s]&(1<<a)-1)<<t-a,n|=this.data[--s]>>(a+=this.DB-t)):(n=this.data[s]>>(a-=t)&r,a<=0&&(a+=this.DB,--s)),n>0&&(i=!0),i&&(o+=K3(n));return i?o:"0"}function cu(){var e=rt();return B.ZERO.subTo(this,e),e}function uu(){return this.s<0?this.negate():this}function fu(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 v1(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)+v1(this.data[this.t-1]^this.s&this.DM)}function hu(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 du(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 pu(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,o=Math.floor(e/this.DB),s=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+o+1]=this.data[a]>>n|s,s=(this.data[a]&i)<<r;for(a=o-1;a>=0;--a)t.data[a]=0;t.data[o]=s,t.t=this.t+o+1,t.s=this.s,t.clamp()}function gu(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 s=r+1;s<this.t;++s)t.data[s-r-1]|=(this.data[s]&o)<<i,t.data[s-r]=this.data[s]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&o)<<i),t.t=this.t-r,t.clamp()}function yu(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 mu(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 xu(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 vu(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=rt());var o=rt(),s=this.s,a=e.s,c=this.DB-v1(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,g=r.t,y=g-u,m=t??rt();for(o.dlShiftTo(y,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(;--y>=0;){var x=r.data[--g]==f?this.DM:Math.floor(r.data[g]*p+(r.data[g-1]+h)*d);if((r.data[g]+=o.am(0,x,r,y,0,u))<x)for(o.dlShiftTo(y,m),r.subTo(m,r);r.data[g]<--x;)r.subTo(m,r)}t!=null&&(r.drShiftTo(u,t),s!=a&&B.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),s<0&&B.ZERO.subTo(r,r)}}}function bu(e){var t=rt();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(B.ZERO)>0&&e.subTo(t,t),t}function Or(e){this.m=e}function wu(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function Eu(e){return e}function Su(e){e.divRemTo(this.m,null,e)}function Iu(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function Au(e,t){e.squareTo(t),this.reduce(t)}Or.prototype.convert=wu;Or.prototype.revert=Eu;Or.prototype.reduce=Su;Or.prototype.mulTo=Iu;Or.prototype.sqrTo=Au;function Bu(){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 Fr(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 Tu(e){var t=rt();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 Cu(e){var t=rt();return e.copyTo(t),this.reduce(t),t}function Ru(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 _u(e,t){e.squareTo(t),this.reduce(t)}function Pu(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Fr.prototype.convert=Tu;Fr.prototype.revert=Cu;Fr.prototype.reduce=Ru;Fr.prototype.mulTo=Pu;Fr.prototype.sqrTo=_u;function Lu(){return(this.t>0?this.data[0]&1:this.s)==0}function Nu(e,t){if(e>4294967295||e<1)return B.ONE;var r=rt(),n=rt(),i=t.convert(this),o=v1(e)-1;for(i.copyTo(r);--o>=0;)if(t.sqrTo(r,n),(e&1<<o)>0)t.mulTo(n,i,r);else{var s=r;r=n,n=s}return t.revert(r)}function Du(e,t){var r;return e<256||t.isEven()?r=new Or(t):r=new Fr(t),this.exp(e,r)}B.prototype.copyTo=nu;B.prototype.fromInt=iu;B.prototype.fromString=ou;B.prototype.clamp=su;B.prototype.dlShiftTo=hu;B.prototype.drShiftTo=du;B.prototype.lShiftTo=pu;B.prototype.rShiftTo=gu;B.prototype.subTo=yu;B.prototype.multiplyTo=mu;B.prototype.squareTo=xu;B.prototype.divRemTo=vu;B.prototype.invDigit=Bu;B.prototype.isEven=Lu;B.prototype.exp=Nu;B.prototype.toString=au;B.prototype.negate=cu;B.prototype.abs=uu;B.prototype.compareTo=fu;B.prototype.bitLength=lu;B.prototype.mod=bu;B.prototype.modPowInt=Du;B.ZERO=xr(0);B.ONE=xr(1);function ku(){var e=rt();return this.copyTo(e),e}function Uu(){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 Ou(){return this.t==0?this.s:this.data[0]<<24>>24}function Fu(){return this.t==0?this.s:this.data[0]<<16>>16}function Mu(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function Ku(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Vu(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=xr(r),i=rt(),o=rt(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(e).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(e)+s}function qu(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,o=0,s=0,a=0;a<e.length;++a){var c=V3(e,a);if(c<0){e.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}s=t*s+c,++o>=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0)}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(s,0)),i&&B.ZERO.subTo(this,this)}function zu(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),Qo,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 Hu(){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 $u(e){return this.compareTo(e)==0}function Gu(e){return this.compareTo(e)<0?this:e}function Yu(e){return this.compareTo(e)>0?this:e}function Qu(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 Wu(e,t){return e&t}function Zu(e){var t=rt();return this.bitwiseTo(e,Wu,t),t}function Qo(e,t){return e|t}function Xu(e){var t=rt();return this.bitwiseTo(e,Qo,t),t}function q3(e,t){return e^t}function Ju(e){var t=rt();return this.bitwiseTo(e,q3,t),t}function z3(e,t){return e&~t}function ju(e){var t=rt();return this.bitwiseTo(e,z3,t),t}function tf(){for(var e=rt(),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 ef(e){var t=rt();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function rf(e){var t=rt();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function nf(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 of(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+nf(this.data[e]);return this.s<0?this.t*this.DB:-1}function sf(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function af(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=sf(this.data[r]^t);return e}function cf(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function uf(e,t){var r=B.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function ff(e){return this.changeBit(e,Qo)}function lf(e){return this.changeBit(e,z3)}function hf(e){return this.changeBit(e,q3)}function df(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 pf(e){var t=rt();return this.addTo(e,t),t}function gf(e){var t=rt();return this.subTo(e,t),t}function yf(e){var t=rt();return this.multiplyTo(e,t),t}function mf(e){var t=rt();return this.divRemTo(e,t,null),t}function xf(e){var t=rt();return this.divRemTo(e,null,t),t}function vf(e){var t=rt(),r=rt();return this.divRemTo(e,t,r),new Array(t,r)}function bf(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function wf(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 u0(){}function H3(e){return e}function Ef(e,t,r){e.multiplyTo(t,r)}function Sf(e,t){e.squareTo(t)}u0.prototype.convert=H3;u0.prototype.revert=H3;u0.prototype.mulTo=Ef;u0.prototype.sqrTo=Sf;function If(e){return this.exp(e,new u0)}function Af(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 Bf(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 Bn(e){this.r2=rt(),this.q3=rt(),B.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function Tf(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=rt();return e.copyTo(t),this.reduce(t),t}function Cf(e){return e}function Rf(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 _f(e,t){e.squareTo(t),this.reduce(t)}function Pf(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Bn.prototype.convert=Tf;Bn.prototype.revert=Cf;Bn.prototype.reduce=Rf;Bn.prototype.mulTo=Pf;Bn.prototype.sqrTo=_f;function Lf(e,t){var r=e.bitLength(),n,i=xr(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 Or(t):t.isEven()?o=new Bn(t):o=new Fr(t);var s=new Array,a=3,c=n-1,u=(1<<n)-1;if(s[1]=o.convert(this),n>1){var f=rt();for(o.sqrTo(s[1],f);a<=u;)s[a]=rt(),o.mulTo(f,s[a-2],s[a]),a+=2}var l=e.t-1,p,d=!0,h=rt(),g;for(r=v1(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)),a=n;!(p&1);)p>>=1,--a;if((r-=a)<0&&(r+=this.DB,--l),d)s[p].copyTo(i),d=!1;else{for(;a>1;)o.sqrTo(i,h),o.sqrTo(h,i),a-=2;a>0?o.sqrTo(i,h):(g=i,i=h,h=g),o.mulTo(h,s[p],i)}for(;l>=0&&!(e.data[l]&1<<r);)o.sqrTo(i,h),g=i,i=h,h=g,--r<0&&(r=this.DB-1,--l)}return o.revert(i)}function Nf(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 Df(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 kf(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return B.ZERO;for(var r=e.clone(),n=this.clone(),i=xr(1),o=xr(0),s=xr(0),a=xr(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?((!s.isEven()||!a.isEven())&&(s.addTo(this,s),a.subTo(e,a)),s.rShiftTo(1,s)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),t&&s.subTo(i,s),a.subTo(o,a))}if(n.compareTo(B.ONE)!=0)return B.ZERO;if(a.compareTo(e)>=0)return a.subtract(e);if(a.signum()<0)a.addTo(e,a);else return a;return a.signum()<0?a.add(e):a}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],Uf=(1<<26)/be[be.length-1];function Of(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<Uf;)n*=be[i++];for(n=r.modInt(n);t<i;)if(n%be[t++]==0)return!1}return r.millerRabin(e)}function Ff(e){var t=this.subtract(B.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=Mf(),o,s=0;s<e;++s){do o=new B(this.bitLength(),i);while(o.compareTo(B.ONE)<=0||o.compareTo(t)>=0);var a=o.modPow(n,this);if(a.compareTo(B.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(B.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function Mf(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}B.prototype.chunkSize=Mu;B.prototype.toRadix=Vu;B.prototype.fromRadix=qu;B.prototype.fromNumber=zu;B.prototype.bitwiseTo=Qu;B.prototype.changeBit=uf;B.prototype.addTo=df;B.prototype.dMultiply=bf;B.prototype.dAddOffset=wf;B.prototype.multiplyLowerTo=Af;B.prototype.multiplyUpperTo=Bf;B.prototype.modInt=Df;B.prototype.millerRabin=Ff;B.prototype.clone=ku;B.prototype.intValue=Uu;B.prototype.byteValue=Ou;B.prototype.shortValue=Fu;B.prototype.signum=Ku;B.prototype.toByteArray=Hu;B.prototype.equals=$u;B.prototype.min=Gu;B.prototype.max=Yu;B.prototype.and=Zu;B.prototype.or=Xu;B.prototype.xor=Ju;B.prototype.andNot=ju;B.prototype.not=tf;B.prototype.shiftLeft=ef;B.prototype.shiftRight=rf;B.prototype.getLowestSetBit=of;B.prototype.bitCount=af;B.prototype.testBit=cf;B.prototype.setBit=ff;B.prototype.clearBit=lf;B.prototype.flipBit=hf;B.prototype.add=pf;B.prototype.subtract=gf;B.prototype.multiply=yf;B.prototype.divide=mf;B.prototype.remainder=xf;B.prototype.divideAndRemainder=vf;B.prototype.modPow=Lf;B.prototype.modInverse=kf;B.prototype.pow=If;B.prototype.gcd=Nf;B.prototype.isProbablePrime=Of});var Z3=it((cv,W3)=>{var Oe=ut();Ur();Tt();var Y3=W3.exports=Oe.sha1=Oe.sha1||{};Oe.md.sha1=Oe.md.algorithms.sha1=Y3;Y3.create=function(){Q3||Kf();var e=null,t=Oe.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=Oe.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=Oe.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),G3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Oe.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(Wo.substr(0,n.blockLength-s));for(var a,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)a=n.fullMessageLength[f+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};G3(l,r,i);var p=Oe.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 Wo=null,Q3=!1;function Kf(){Wo="\x80",Wo+=Oe.util.fillString("\0",64),Q3=!0}function G3(e,t,r){for(var n,i,o,s,a,c,u,f,l=r.length();l>=64;){for(i=e.h0,o=e.h1,s=e.h2,a=e.h3,c=e.h4,f=0;f<16;++f)n=r.getInt32(),t[f]=n,u=a^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;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=a^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;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^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;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^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;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&s|a&(o^s),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;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^s^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;e.h0=e.h0+i|0,e.h1=e.h1+o|0,e.h2=e.h2+s|0,e.h3=e.h3+a|0,e.h4=e.h4+c|0,l-=64}}});var j3=it((uv,J3)=>{var Fe=ut();Tt();c0();Z3();var X3=J3.exports=Fe.pkcs1=Fe.pkcs1||{};X3.encode_rsa_oaep=function(e,t,r){var n,i,o,s;typeof r=="string"?(n=r,i=arguments[3]||void 0,o=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,o=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md)),o?o.start():o=Fe.md.sha1.create(),s||(s=o);var a=Math.ceil(e.n.bitLength()/8),c=a-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=Fe.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 g=w1(i,a-o.digestLength-1,s),y=Fe.util.xorBytes(h,g,h.length),m=w1(y,o.digestLength,s),x=Fe.util.xorBytes(i,m,i.length);return"\0"+x+y};X3.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 s=Math.ceil(e.n.bitLength()/8);if(t.length!==s){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=s,y}if(i===void 0?i=Fe.md.sha1.create():i.start(),o||(o=i),s<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=t.charAt(0),u=t.substring(1,i.digestLength+1),f=t.substring(1+i.digestLength),l=w1(f,i.digestLength,o),p=Fe.util.xorBytes(u,l,u.length),d=w1(p,s-i.digestLength-1,o),h=Fe.util.xorBytes(f,d,f.length),g=h.substring(0,i.digestLength),y=c!=="\0",m=0;m<i.digestLength;++m)y|=a.charAt(m)!==g.charAt(m);for(var x=1,v=i.digestLength,T=i.digestLength;T<h.length;T++){var E=h.charCodeAt(T),S=E&1^1,L=x?65534:0;y|=E&L,x=x&S,v+=x}if(y||h.charCodeAt(v)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(v+1)};function w1(e,t,r){r||(r=Fe.md.sha1.create());for(var n="",i=Math.ceil(t/r.digestLength),o=0;o<i;++o){var s=String.fromCharCode(o>>24&255,o>>16&255,o>>8&255,o&255);r.start(),r.update(e+s),n+=r.digest().getBytes()}return n.substring(0,t)}});var t4=it((fv,Zo)=>{var vr=ut();Tt();b1();c0();(function(){if(vr.prime){Zo.exports=vr.prime;return}var e=Zo.exports=vr.prime=vr.prime||{},t=vr.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 g=p.prng||vr.random,y={nextBytes:function(m){for(var x=g.getBytesSync(m.length),v=0;v<m.length;++v)m[v]=x.charCodeAt(v)}};if(h.name==="PRIMEINC")return o(l,y,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):s(l,p,d,h)}function s(l,p,d,h){var g=u(l,p),y=0,m=f(g.bitLength());"millerRabinTests"in d&&(m=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),a(g,l,p,y,m,x,h)}function a(l,p,d,h,g,y,m){var x=+new Date;do{if(l.bitLength()>p&&(l=u(p,d)),l.isProbablePrime(g))return m(null,l);l.dAddOffset(r[h++%8],0)}while(y<0||+new Date-x<y);vr.util.setImmediate(function(){a(l,p,d,h,g,y,m)})}function c(l,p,d,h){if(typeof Worker>"u")return s(l,p,d,h);var g=u(l,p),y=d.workers,m=d.workLoad||100,x=m*30/8,v=d.workerScript||"forge/prime.worker.js";if(y===-1)return vr.util.estimateCores(function(E,S){E&&(S=2),y=S-1,T()});T();function T(){y=Math.max(1,y);for(var E=[],S=0;S<y;++S)E[S]=new Worker(v);for(var L=y,S=0;S<y;++S)E[S].addEventListener("message",H);var N=!1;function H(z){if(!N){--L;var V=z.data;if(V.found){for(var X=0;X<E.length;++X)E[X].terminate();return N=!0,h(null,new t(V.prime,16))}g.bitLength()>l&&(g=u(l,p));var ft=g.toString(16);z.target.postMessage({hex:ft,workLoad:m}),g.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 S1=it((lv,a4)=>{var K=ut();a0();b1();f1();j3();t4();c0();Tt();typeof et>"u"&&(et=K.jsbn.BigInteger);var et,Xo=K.util.isNodejs?p1():null,w=K.asn1,he=K.util;K.pki=K.pki||{};a4.exports=K.pki.rsa=K.rsa=K.rsa||{};var $=K.pki,Vf=[6,4,2,4,2,4,6,2],qf={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"}]},zf={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"}]},Hf={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"}]},$f=K.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"}]}]},Gf={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"}]},Yf=function(e){var t;if(e.algorithm in $.oids)t=$.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 s=w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(o),i.value.push(s),w.toDer(i).getBytes()},o4=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(et.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(et.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new et(K.util.bytesToHex(K.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(et.ONE));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 s=i.subtract(o).multiply(t.qInv).mod(t.p).multiply(t.q).add(o);return s=s.multiply(n.modInverse(t.n)).mod(t.n),s};$.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=s4(e,t,r)):(i=K.util.createBuffer(),i.putBytes(e));for(var s=new et(i.toHex(),16),a=o4(s,t,n),c=a.toString(16),u=K.util.createBuffer(),f=o-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(K.util.hexToBytes(c)),u.getBytes()};$.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 s=new et(K.util.createBuffer(e).toHex(),16);if(s.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=o4(s,t,r),c=a.toString(16),u=K.util.createBuffer(),f=i-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(K.util.hexToBytes(c)),n!==!1?E1(u.getBytes(),t,r):u.getBytes()};$.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||K.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},o=r.algorithm||"PRIMEINC",s;if(o==="PRIMEINC")s={algorithm:o,state:0,bits:e,rng:i,eInt:t||65537,e:new et(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},s.e.fromInt(s.eInt);else throw new Error("Invalid key generation algorithm: "+o);return s};$.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new et(null);r.fromInt(30);for(var n=0,i=function(l,p){return l|p},o=+new Date,s,a=0;e.keys===null&&(t<=0||a<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new et(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(et.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(Wf(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(Vf[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(et.ONE).gcd(e.e).compareTo(et.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(et.ONE),e.q1=e.q.subtract(et.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(et.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:$.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:$.rsa.setPublicKey(e.n,e.e)}}s=+new Date,a+=s-o,o=s}return e.keys!==null};$.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),!K.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(e4("generateKeyPair"))return Xo.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:$.privateKeyFromPem(u),publicKey:$.publicKeyFromPem(c)})});if(r4("generateKey")&&r4("exportKey"))return he.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:i4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return he.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=$.privateKeyFromAsn1(w.fromDer(K.util.createBuffer(a)));n(null,{privateKey:c,publicKey:$.setRsaPublicKey(c.n,c.e)})}});if(n4("generateKey")&&n4("exportKey")){var i=he.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:i4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=he.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(f){var l=f.target.result,p=$.privateKeyFromAsn1(w.fromDer(K.util.createBuffer(l)));n(null,{privateKey:p,publicKey:$.setRsaPublicKey(p.n,p.e)})},u.onerror=function(f){n(f)}},i.onerror=function(a){n(a)};return}}else if(e4("generateKeyPairSync")){var o=Xo.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:$.privateKeyFromPem(o.privateKey),publicKey:$.publicKeyFromPem(o.publicKey)}}}var s=$.rsa.createKeyPairGenerationState(e,t,r);if(!n)return $.rsa.stepKeyPairGenerationState(s,0),s.keys;Qf(s,r,n)};$.setRsaPublicKey=$.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(a,c,u){return s4(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return K.pkcs1.encode_rsa_oaep(c,a,o)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var s=i.encode(n,r,!0);return $.rsa.encrypt(s,r,!0)},r.verify=function(n,i,o,s){typeof o=="string"?o=o.toUpperCase():o===void 0&&(o="RSASSA-PKCS1-V1_5"),s===void 0&&(s={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in s||(s._parseAllDigestBytes=!0),o==="RSASSA-PKCS1-V1_5"?o={verify:function(c,u){u=E1(u,r,!0);var f=w.fromDer(u,{parseAllBytes:s._parseAllDigestBytes}),l={},p=[];if(!w.validate(f,Gf,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===K.oids.md2||h===K.oids.md5||h===K.oids.sha1||h===K.oids.sha224||h===K.oids.sha256||h===K.oids.sha384||h===K.oids.sha512||h===K.oids["sha512-224"]||h===K.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=h,d}if((h===K.oids.md2||h===K.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=E1(u,r,!0),c===u}});var a=$.rsa.decrypt(i,r,!0,!1);return o.verify(n,a,r.n.bitLength())},r};$.setRsaPrivateKey=$.rsa.setPrivateKey=function(e,t,r,n,i,o,s,a){var c={n:e,e:t,d:r,p:n,q:i,dP:o,dQ:s,qInv:a};return c.decrypt=function(u,f,l){typeof f=="string"?f=f.toUpperCase():f===void 0&&(f="RSAES-PKCS1-V1_5");var p=$.rsa.decrypt(u,c,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:E1};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(d,h){return K.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:Yf},l=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return u}},l=1);var p=f.encode(u,c.n.bitLength());return $.rsa.encrypt(p,c,l)},c};$.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($.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())])};$.privateKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,qf,t,r)&&(e=w.fromDer(K.util.createBuffer(t.privateKey))),t={},r=[],!w.validate(e,zf,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,s,a,c,u,f,l;return i=K.util.createBuffer(t.privateKeyModulus).toHex(),o=K.util.createBuffer(t.privateKeyPublicExponent).toHex(),s=K.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=K.util.createBuffer(t.privateKeyPrime1).toHex(),c=K.util.createBuffer(t.privateKeyPrime2).toHex(),u=K.util.createBuffer(t.privateKeyExponent1).toHex(),f=K.util.createBuffer(t.privateKeyExponent2).toHex(),l=K.util.createBuffer(t.privateKeyCoefficient).toHex(),$.setRsaPrivateKey(new et(i,16),new et(o,16),new et(s,16),new et(a,16),new et(c,16),new et(u,16),new et(f,16),new et(l,16))};$.privateKeyToAsn1=$.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,Me(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Me(e.e)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Me(e.d)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Me(e.p)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Me(e.q)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Me(e.dP)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Me(e.dQ)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Me(e.qInv))])};$.publicKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,$f,t,r)){var n=w.derToOid(t.publicKeyOid);if(n!==$.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,Hf,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=K.util.createBuffer(t.publicKeyModulus).toHex(),s=K.util.createBuffer(t.publicKeyExponent).toHex();return $.setRsaPublicKey(new et(o,16),new et(s,16))};$.publicKeyToAsn1=$.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($.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.BITSTRING,!1,[$.publicKeyToRSAPublicKey(e)])])};$.publicKeyToRSAPublicKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Me(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Me(e.e))])};function s4(e,t,r){var n=K.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 s=i-3-e.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<s;++c)n.putByte(a)}else for(;s>0;){for(var u=0,f=K.random.getBytes(s),c=0;c<s;++c)a=f.charCodeAt(c),a===0?++u:n.putByte(a);s=u}return n.putByte(0),n.putBytes(e),n}function E1(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),o=K.util.createBuffer(e),s=o.getByte(),a=o.getByte();if(s!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(o.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;o.length()>1;){if(o.getByte()!==255){--o.read;break}++c}else if(a===2)for(c=0;o.length()>1;){if(o.getByte()===0){--o.read;break}++c}var f=o.getByte();if(f!==0||c!==i-3-o.length())throw new Error("Encryption block is invalid.");return o.getBytes()}function Qf(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(a,c){if(a)return r(a);if(e.p=c,e.q!==null)return s(a,e.q);o(e.qBits,s)})}function o(a,c){K.prime.generateProbablePrime(a,n,c)}function s(a,c){if(a)return r(a);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(et.ONE).gcd(e.e).compareTo(et.ONE)!==0){e.p=null,i();return}if(e.q.subtract(et.ONE).gcd(e.e).compareTo(et.ONE)!==0){e.q=null,o(e.qBits,s);return}if(e.p1=e.p.subtract(et.ONE),e.q1=e.q.subtract(et.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(et.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,s);return}var f=e.e.modInverse(e.phi);e.keys={privateKey:$.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:$.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Me(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=K.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 Wf(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 e4(e){return K.util.isNodejs&&typeof Xo[e]=="function"}function r4(e){return typeof he.globalScope<"u"&&typeof he.globalScope.crypto=="object"&&typeof he.globalScope.crypto.subtle=="object"&&typeof he.globalScope.crypto.subtle[e]=="function"}function n4(e){return typeof he.globalScope<"u"&&typeof he.globalScope.msCrypto=="object"&&typeof he.globalScope.msCrypto.subtle=="object"&&typeof he.globalScope.msCrypto.subtle[e]=="function"}function i4(e){for(var t=K.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var d4=it((hv,h4)=>{var O=ut();u1();a0();x3();Ur();f1();qo();A3();c0();O3();S1();Tt();typeof c4>"u"&&(c4=O.jsbn.BigInteger);var c4,I=O.asn1,G=O.pki=O.pki||{};h4.exports=G.pbe=O.pbe=O.pbe||{};var Mr=G.oids,Zf={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"}]},Xf={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"}]}]},Jf={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"}]};G.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=O.random.getBytesSync(r.saltSize),i=r.count,o=I.integerToDer(i),s,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,f,l;switch(r.algorithm){case"aes128":s=16,u=16,f=Mr["aes128-CBC"],l=O.aes.createEncryptionCipher;break;case"aes192":s=24,u=16,f=Mr["aes192-CBC"],l=O.aes.createEncryptionCipher;break;case"aes256":s=32,u=16,f=Mr["aes256-CBC"],l=O.aes.createEncryptionCipher;break;case"des":s=8,u=8,f=Mr.desCBC,l=O.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=l4(d),g=O.pkcs5.pbkdf2(t,n,i,s,h),y=O.random.getBytesSync(u),m=l(g);m.start(y),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes();var x=jf(n,o,s,d);a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Mr.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(Mr.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,y)])])])}else if(r.algorithm==="3des"){s=24;var v=new O.util.ByteBuffer(n),g=G.pbe.generatePkcs12Key(t,v,1,i,s),y=G.pbe.generatePkcs12Key(t,v,2,i,s),m=O.des.createEncryptionCipher(g);m.start(y),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes(),a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Mr["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 T=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[a,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return T};G.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!I.validate(e,Zf,n,i)){var o=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=I.derToOid(n.encryptionOid),a=G.pbe.getCipher(s,n.encryptionParams,t),c=O.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=I.fromDer(a.output)),r};G.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(e).getBytes()};return O.pem.encode(r,{maxline:t})};G.encryptedPrivateKeyFromPem=function(e){var t=O.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)};G.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=G.wrapRsaPrivateKey(G.privateKeyToAsn1(e));return n=G.encryptPrivateKeyInfo(n,t,r),G.encryptedPrivateKeyToPem(n)}var i,o,s,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",s=16,o=O.random.getBytesSync(16),a=O.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",s=24,o=O.random.getBytesSync(16),a=O.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",s=32,o=O.random.getBytesSync(16),a=O.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",s=24,o=O.random.getBytesSync(8),a=O.des.createEncryptionCipher;break;case"des":i="DES-CBC",s=8,o=O.random.getBytesSync(8),a=O.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=O.pbe.opensslDeriveBytes(t,o.substr(0,8),s),f=a(u);f.start(o),f.update(I.toDer(G.privateKeyToAsn1(e))),f.finish();var l={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:O.util.bytesToHex(o).toUpperCase()},body:f.output.getBytes()};return O.pem.encode(l)};G.decryptRsaPrivateKey=function(e,t){var r=null,n=O.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,s;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,s=O.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,s=O.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,s=O.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,s=O.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,s=O.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,s=function(l){return O.rc2.createDecryptionCipher(l,40)};break;case"RC2-64-CBC":o=8,s=function(l){return O.rc2.createDecryptionCipher(l,64)};break;case"RC2-128-CBC":o=16,s=function(l){return O.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 a=O.util.hexToBytes(n.dekInfo.parameters),c=O.pbe.opensslDeriveBytes(t,a.substr(0,8),o),u=s(c);if(u.start(a),u.update(O.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=G.decryptPrivateKeyInfo(I.fromDer(r),t):r=I.fromDer(r),r!==null&&(r=G.privateKeyFromAsn1(r)),r};G.pbe.generatePkcs12Key=function(e,t,r,n,i,o){var s,a;if(typeof o>"u"||o===null){if(!("sha1"in O.md))throw new Error('"sha1" hash algorithm unavailable.');o=O.md.sha1.create()}var c=o.digestLength,u=o.blockLength,f=new O.util.ByteBuffer,l=new O.util.ByteBuffer;if(e!=null){for(a=0;a<e.length;a++)l.putInt16(e.charCodeAt(a));l.putInt16(0)}var p=l.length(),d=t.length(),h=new O.util.ByteBuffer;h.fillWithByte(r,u);var g=u*Math.ceil(d/u),y=new O.util.ByteBuffer;for(a=0;a<g;a++)y.putByte(t.at(a%d));var m=u*Math.ceil(p/u),x=new O.util.ByteBuffer;for(a=0;a<m;a++)x.putByte(l.at(a%p));var v=y;v.putBuffer(x);for(var T=Math.ceil(i/c),E=1;E<=T;E++){var S=new O.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 O.util.ByteBuffer;for(a=0;a<u;a++)N.putByte(S.at(a%c));var H=Math.ceil(d/u)+Math.ceil(p/u),z=new O.util.ByteBuffer;for(s=0;s<H;s++){var V=new O.util.ByteBuffer(v.getBytes(u)),X=511;for(a=N.length()-1;a>=0;a--)X=X>>8,X+=N.at(a)+V.at(a),V.setAt(a,X&255);z.putBuffer(V)}v=z,f.putBuffer(S)}return f.truncate(f.length()-i),f};G.pbe.getCipher=function(e,t,r){switch(e){case G.oids.pkcs5PBES2:return G.pbe.getCipherForPBES2(e,t,r);case G.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case G.oids["pbewithSHAAnd40BitRC2-CBC"]:return G.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}};G.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!I.validate(t,Xf,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!==G.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!==G.oids["aes128-CBC"]&&e!==G.oids["aes192-CBC"]&&e!==G.oids["aes256-CBC"]&&e!==G.oids["des-EDE3-CBC"]&&e!==G.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 s=n.kdfSalt,a=O.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(G.oids[e]){case"aes128-CBC":c=16,u=O.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=O.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=O.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=O.des.createDecryptionCipher;break;case"desCBC":c=8,u=O.des.createDecryptionCipher;break}var f=f4(n.prfOid),l=O.pkcs5.pbkdf2(r,s,a,c,f),p=n.encIv,d=u(l);return d.start(p),d};G.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!I.validate(t,Jf,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=O.util.createBuffer(n.salt),a=O.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,f;switch(e){case G.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,f=O.des.startDecrypting;break;case G.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,f=function(g,y){var m=O.rc2.createDecryptionCipher(g,40);return m.start(y,null),m};break;default:var o=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw o.oid=e,o}var l=f4(n.prfOid),p=G.pbe.generatePkcs12Key(r,s,1,a,c,l);l.start();var d=G.pbe.generatePkcs12Key(r,s,2,a,u,l);return f(p,d)};G.pbe.opensslDeriveBytes=function(e,t,r,n){if(typeof n>"u"||n===null){if(!("md5"in O.md))throw new Error('"md5" hash algorithm unavailable.');n=O.md.md5.create()}t===null&&(t="");for(var i=[u4(n,e+t)],o=16,s=1;o<r;++s,o+=16)i.push(u4(n,i[s-1]+e+t));return i.join("").substr(0,r)};function u4(e,t){return e.start().update(t).digest().getBytes()}function f4(e){var t;if(!e)t="hmacWithSHA1";else if(t=G.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 l4(t)}function l4(e){var t=O.md;switch(e){case"hmacWithSHA224":t=O.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 jf(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,O.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(G.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var J4=it((Nb,X4)=>{var gt=ut();Ur();Tt();var p0=X4.exports=gt.sha512=gt.sha512||{};gt.md.sha512=gt.md.algorithms.sha512=p0;var W4=gt.sha384=gt.sha512.sha384=gt.sha512.sha384||{};W4.create=function(){return p0.create("SHA-384")};gt.md.sha384=gt.md.algorithms.sha384=W4;gt.sha512.sha256=gt.sha512.sha256||{create:function(){return p0.create("SHA-512/256")}};gt.md["sha512/256"]=gt.md.algorithms["sha512/256"]=gt.sha512.sha256;gt.sha512.sha224=gt.sha512.sha224||{create:function(){return p0.create("SHA-512/224")}};gt.md["sha512/224"]=gt.md.algorithms["sha512/224"]=gt.sha512.sha224;p0.create=function(e){if(Z4||ll(),typeof e>"u"&&(e="SHA-512"),!(e in Hr))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=Hr[e],r=null,n=gt.util.createBuffer(),i=new Array(80),o=0;o<80;++o)i[o]=new Array(2);var s=64;switch(e){case"SHA-384":s=48;break;case"SHA-512/256":s=32;break;case"SHA-512/224":s=28;break}var a={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:s,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=gt.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=gt.util.encodeUtf8(c));var f=c.length;a.messageLength+=f,f=[f/4294967296>>>0,f>>>0];for(var l=a.fullMessageLength.length-1;l>=0;--l)a.fullMessageLength[l]+=f[1],f[1]=f[0]+(a.fullMessageLength[l]/4294967296>>>0),a.fullMessageLength[l]=a.fullMessageLength[l]>>>0,f[0]=f[1]/4294967296>>>0;return n.putBytes(c),Q4(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=gt.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,f=u&a.blockLength-1;c.putBytes(vs.substr(0,a.blockLength-f));for(var l,p,d=a.fullMessageLength[0]*8,h=0;h<a.fullMessageLength.length-1;++h)l=a.fullMessageLength[h+1]*8,p=l/4294967296>>>0,d+=p,c.putInt32(d>>>0),d=l>>>0;c.putInt32(d);for(var g=new Array(r.length),h=0;h<r.length;++h)g[h]=r[h].slice(0);Q4(g,i,c);var y=gt.util.createBuffer(),m;e==="SHA-512"?m=g.length:e==="SHA-384"?m=g.length-2:m=g.length-4;for(var h=0;h<m;++h)y.putInt32(g[h][0]),(h!==m-1||e!=="SHA-512/224")&&y.putInt32(g[h][1]);return y},a};var vs=null,Z4=!1,bs=null,Hr=null;function ll(){vs="\x80",vs+=gt.util.fillString("\0",128),bs=[[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]],Hr={},Hr["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],Hr["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],Hr["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],Hr["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],Z4=!0}function Q4(e,t,r){for(var n,i,o,s,a,c,u,f,l,p,d,h,g,y,m,x,v,T,E,S,L,N,H,z,V,X,ft,Kt,C,k,P,D,A,F,M,q=r.length();q>=128;){for(C=0;C<16;++C)t[C][0]=r.getInt32()>>>0,t[C][1]=r.getInt32()>>>0;for(;C<80;++C)D=t[C-2],k=D[0],P=D[1],n=((k>>>19|P<<13)^(P>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|P>>>19)^(P<<3|k>>>29)^(k<<26|P>>>6))>>>0,F=t[C-15],k=F[0],P=F[1],o=((k>>>1|P<<31)^(k>>>8|P<<24)^k>>>7)>>>0,s=((k<<31|P>>>1)^(k<<24|P>>>8)^(k<<25|P>>>7))>>>0,A=t[C-7],M=t[C-16],P=i+A[1]+s+M[1],t[C][0]=n+A[0]+o+M[0]+(P/4294967296>>>0)>>>0,t[C][1]=P>>>0;for(g=e[0][0],y=e[0][1],m=e[1][0],x=e[1][1],v=e[2][0],T=e[2][1],E=e[3][0],S=e[3][1],L=e[4][0],N=e[4][1],H=e[5][0],z=e[5][1],V=e[6][0],X=e[6][1],ft=e[7][0],Kt=e[7][1],C=0;C<80;++C)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=(V^L&(H^V))>>>0,p=(X^N&(z^X))>>>0,a=((g>>>28|y<<4)^(y>>>2|g<<30)^(y>>>7|g<<25))>>>0,c=((g<<4|y>>>28)^(y<<30|g>>>2)^(y<<25|g>>>7))>>>0,d=(g&m|v&(g^m))>>>0,h=(y&x|T&(y^x))>>>0,P=Kt+f+p+bs[C][1]+t[C][1],n=ft+u+l+bs[C][0]+t[C][0]+(P/4294967296>>>0)>>>0,i=P>>>0,P=c+h,o=a+d+(P/4294967296>>>0)>>>0,s=P>>>0,ft=V,Kt=X,V=H,X=z,H=L,z=N,P=S+i,L=E+n+(P/4294967296>>>0)>>>0,N=P>>>0,E=v,S=T,v=m,T=x,m=g,x=y,P=i+s,g=n+o+(P/4294967296>>>0)>>>0,y=P>>>0;P=e[0][1]+y,e[0][0]=e[0][0]+g+(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]+T,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]+z,e[5][0]=e[5][0]+H+(P/4294967296>>>0)>>>0,e[5][1]=P>>>0,P=e[6][1]+X,e[6][0]=e[6][0]+V+(P/4294967296>>>0)>>>0,e[6][1]=P>>>0,P=e[7][1]+Kt,e[7][0]=e[7][0]+ft+(P/4294967296>>>0)>>>0,e[7][1]=P>>>0,q-=128}}});var I5=it((dE,S5)=>{S5.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,s){r[o]=s,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 s=r[o];if(s!==void 0)return s;if((s=n[o])!==void 0)return i(o,s),s},set:function(o,s){r[o]!==void 0?r[o]=s:i(o,s)},clear:function(){r=Object.create(null),n=Object.create(null)}}}});var B5=it((pE,Ls)=>{"use strict";var $l=Object.prototype.hasOwnProperty,Jt="~";function b0(){}Object.create&&(b0.prototype=Object.create(null),new b0().__proto__||(Jt=!1));function Gl(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function A5(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new Gl(r,n||e,i),s=Jt?Jt+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],o]:e._events[s].push(o):(e._events[s]=o,e._eventsCount++),e}function G1(e,t){--e._eventsCount===0?e._events=new b0:delete e._events[t]}function Yt(){this._events=new b0,this._eventsCount=0}Yt.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)$l.call(r,n)&&t.push(Jt?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};Yt.prototype.listeners=function(t){var r=Jt?Jt+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s};Yt.prototype.listenerCount=function(t){var r=Jt?Jt+t:t,n=this._events[r];return n?n.fn?1:n.length:0};Yt.prototype.emit=function(t,r,n,i,o,s){var a=Jt?Jt+t:t;if(!this._events[a])return!1;var c=this._events[a],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,s),!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};Yt.prototype.on=function(t,r,n){return A5(this,t,r,n,!1)};Yt.prototype.once=function(t,r,n){return A5(this,t,r,n,!0)};Yt.prototype.removeListener=function(t,r,n,i){var o=Jt?Jt+t:t;if(!this._events[o])return this;if(!r)return G1(this,o),this;var s=this._events[o];if(s.fn)s.fn===r&&(!i||s.once)&&(!n||s.context===n)&&G1(this,o);else{for(var a=0,c=[],u=s.length;a<u;a++)(s[a].fn!==r||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:G1(this,o)}return this};Yt.prototype.removeAllListeners=function(t){var r;return t?(r=Jt?Jt+t:t,this._events[r]&&G1(this,r)):(this._events=new b0,this._eventsCount=0),this};Yt.prototype.off=Yt.prototype.removeListener;Yt.prototype.addListener=Yt.prototype.on;Yt.prefixed=Jt;Yt.EventEmitter=Yt;typeof Ls<"u"&&(Ls.exports=Yt)});var b9={};_t(b9,{EventTypes:()=>Ks,MessageType:()=>Vs,Record:()=>kt,kadDHT:()=>v9,passthroughMapper:()=>fa,removePrivateAddressesMapper:()=>$0,removePublicAddressesMapper:()=>ua});var E9=Symbol.for("@libp2p/connection");var Xs=Symbol.for("@libp2p/content-routing");var Js=Symbol.for("@libp2p/peer-discovery");var js=Symbol.for("@libp2p/peer-id");var t2=Symbol.for("@libp2p/peer-routing");var e2;(function(e){e.Accept="accept",e.Ignore="ignore",e.Reject="reject"})(e2||(e2={}));var P9=Symbol.for("@libp2p/transport");var r2;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(r2||(r2={}));var C0=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"},_=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var di="ERR_INVALID_PARAMETERS";var jt=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 Qt(t,r))}},pi=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},Qt=globalThis.CustomEvent??pi;var Zr=(e,...t)=>{try{[...t]}catch{}};function t8(e){return e[Symbol.asyncIterator]!=null}function e8(e){if(t8(e))return(async()=>{for await(let t of e);})();for(let t of e);}var gi=e8;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 n2=r8;function n8(e){return e[Symbol.asyncIterator]!=null}function i8(e,t){if(n8(e))return async function*(){for await(let a of e)yield t(a)}();let r=n2(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 a of r)yield t(a)}();let s=t;return function*(){yield o;for(let a of r)yield s(a)}()}var Xr=i8;function Pt(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var R0=globalThis.CustomEvent??Event;async function*ur(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=[],s=Pt(),a=Pt(),c=!1,u,f=!1;i.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of e){if(o.length===r&&(s=Pt(),await s.promise),f)break;let g={done:!1};o.push(g),h().then(y=>{g.done=!0,g.ok=!0,g.value=y,i.dispatchEvent(new R0("task-complete"))},y=>{g.done=!0,g.err=y,i.dispatchEvent(new R0("task-complete"))})}c=!0,i.dispatchEvent(new R0("task-complete"))}catch(h){u=h,i.dispatchEvent(new R0("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,s.resolve(),h.err;s.resolve()}}function*d(){for(;l();)for(let h=0;h<o.length;h++)if(o[h].done){let g=o[h];if(o.splice(h,1),h--,g.ok)yield g.value;else throw f=!0,s.resolve(),g.err;s.resolve()}}for(;;){if(l()||(a=Pt(),await a.promise),u!=null)throw u;if(n?yield*p():yield*d(),c&&o.length===0)break}}var i2="/ipfs/kad/1.0.0",o2="/dht/record",yi="/dht/provider";var _0=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}},Jr=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new _0(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 _0(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 mi=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function jr(e={}){return o8(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 o8(e,t){t=t??{};let r=t.onEnd,n=new Jr,i,o,s,a=Pt(),c=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((y,m)=>{o=x=>{o=null,n.push(x);try{y(e(n))}catch(v){m(v)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Pt()})}},u=y=>o!=null?o(y):(n.push(y),i),f=y=>(n=new Jr,o!=null?o({error:y}):(n.push({error:y}),i)),l=y=>{if(s)return i;if(t?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:y})},p=y=>s?i:(s=!0,y!=null?f(y):u({done:!0})),d=()=>(n=new Jr,p(),{done:!0}),h=y=>(p(y),{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 y=>{let m=y?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let x,v;m!=null&&(x=new Promise((T,E)=>{v=()=>{E(new mi)},m.addEventListener("abort",v)}));try{await Promise.race([a.promise,x])}finally{v!=null&&m!=null&&m?.removeEventListener("abort",v)}}},r==null)return i;let g=i;return i={[Symbol.asyncIterator](){return this},next(){return g.next()},throw(y){return g.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return g.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(y){return g.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return g.readableLength},onEmpty:y=>g.onEmpty(y)},i}function s8(e){return e[Symbol.asyncIterator]!=null}function a8(...e){let t=[];for(let r of e)s8(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=jr({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 P0=a8;function fr(e,...t){if(e==null)throw new Error("Empty pipeline");if(xi(e)){let n=e;e=()=>n.source}else if(a2(e)||s2(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&xi(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++)xi(r[n])&&(r[n]=u8(r[n]));return c8(...r)}var c8=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},s2=e=>e?.[Symbol.asyncIterator]!=null,a2=e=>e?.[Symbol.iterator]!=null,xi=e=>e==null?!1:e.sink!=null&&e.source!=null,u8=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=jr({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=e.source;if(s2(o))i=async function*(){yield*o,n.end()};else if(a2(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return P0(n,i())}return e.source};function vt(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 vi=new Float32Array([-0]),lr=new Uint8Array(vi.buffer);function c2(e,t,r){vi[0]=e,t[r]=lr[0],t[r+1]=lr[1],t[r+2]=lr[2],t[r+3]=lr[3]}function u2(e,t){return lr[0]=e[t],lr[1]=e[t+1],lr[2]=e[t+2],lr[3]=e[t+3],vi[0]}var bi=new Float64Array([-0]),Ht=new Uint8Array(bi.buffer);function f2(e,t,r){bi[0]=e,t[r]=Ht[0],t[r+1]=Ht[1],t[r+2]=Ht[2],t[r+3]=Ht[3],t[r+4]=Ht[4],t[r+5]=Ht[5],t[r+6]=Ht[6],t[r+7]=Ht[7]}function l2(e,t){return Ht[0]=e[t],Ht[1]=e[t+1],Ht[2]=e[t+2],Ht[3]=e[t+3],Ht[4]=e[t+4],Ht[5]=e[t+5],Ht[6]=e[t+6],Ht[7]=e[t+7],bi[0]}var f8=BigInt(Number.MAX_SAFE_INTEGER),l8=BigInt(Number.MIN_SAFE_INTEGER),te=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 Cr;if(t<f8&&t>l8)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>h2&&(i=0n,++n>h2&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return Cr;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):Cr}},Cr=new te(0,0);Cr.toBigInt=function(){return 0n};Cr.zzEncode=Cr.zzDecode=function(){return this};Cr.length=function(){return 1};var h2=4294967296n;function d2(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 p2(e,t,r){if(r-t<1)return"";let i,o=[],s=0,a;for(;t<r;)a=e[t++],a<128?o[s++]=a:a>191&&a<224?o[s++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,o[s++]=55296+(a>>10),o[s++]=56320+(a&1023)):o[s++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&63,s>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,o)),s=0);return i!=null?(s>0&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))}function wi(e,t,r){let n=r,i,o;for(let s=0;s<e.length;++s)i=e.charCodeAt(s),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((o=e.charCodeAt(s+1))&64512)===56320?(i=65536+((i&1023)<<10)+(o&1023),++s,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 ge(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function L0(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var Ei=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,ge(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 ge(this,4);return L0(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw ge(this,4);return L0(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw ge(this,4);let t=u2(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw ge(this,4);let t=l2(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 ge(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return p2(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw ge(this,t);this.pos+=t}else do if(this.pos>=this.len)throw ge(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 te(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 ge(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 ge(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 ge(this,8);let t=L0(this.buf,this.pos+=4),r=L0(this.buf,this.pos+=4);return new te(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 Si(e){return new Ei(e instanceof Uint8Array?e:e.subarray())}function Ce(e,t){let r=Si(e);return t.decode(r)}function N0(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Rr(e=0){return globalThis.Buffer?.allocUnsafe!=null?N0(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}var Ci={};_t(Ci,{base10:()=>m8});function h8(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),s=o.charCodeAt(0);if(r[s]!==255)throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);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 g=0,y=0,m=0,x=h.length;m!==x&&h[m]===0;)m++,g++;for(var v=(x-m)*f+1>>>0,T=new Uint8Array(v);m!==x;){for(var E=h[m],S=0,L=v-1;(E!==0||S<y)&&L!==-1;L--,S++)E+=256*T[L]>>>0,T[L]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");y=S,m++}for(var N=v-y;N!==v&&T[N]===0;)N++;for(var H=c.repeat(g);N<v;++N)H+=e.charAt(T[N]);return H}function p(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var g=0;if(h[g]!==" "){for(var y=0,m=0;h[g]===c;)y++,g++;for(var x=(h.length-g)*u+1>>>0,v=new Uint8Array(x);h[g];){var T=r[h.charCodeAt(g)];if(T===255)return;for(var E=0,S=x-1;(T!==0||E<m)&&S!==-1;S--,E++)T+=a*v[S]>>>0,v[S]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=E,g++}if(h[g]!==" "){for(var L=x-m;L!==x&&v[L]===0;)L++;for(var N=new Uint8Array(y+(x-L)),H=y;L!==x;)N[H++]=v[L++];return N}}}function d(h){var g=p(h);if(g)return g;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:p,decode:d}}var d8=h8,p8=d8,y2=p8;var Fh=new Uint8Array(0);var m2=(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},ze=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 x2=e=>new TextEncoder().encode(e),v2=e=>new TextDecoder().decode(e);var Ii=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")}},Ai=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 w2(this,t)}},Bi=class{constructor(t){this.decoders=t}or(t){return w2(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`)}},w2=(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 Ii(t,r,n),this.decoder=new Ai(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},tn=({name:e,prefix:t,encode:r,decode:n})=>new Ti(e,t,r,n),hr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=y2(r,t);return tn({prefix:e,name:t,encode:n,decode:o=>ze(i(o))})},g8=(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 s=new Uint8Array(o*r/8|0),a=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,a+=r,a>=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},y8=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o},St=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>tn({prefix:t,name:e,encode(i){return y8(i,n,r)},decode(i){return g8(i,n,r,e)}});var m8=hr({prefix:"9",name:"base10",alphabet:"0123456789"});var Ri={};_t(Ri,{base16:()=>x8,base16upper:()=>v8});var x8=St({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),v8=St({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var _i={};_t(_i,{base2:()=>b8});var b8=St({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Pi={};_t(Pi,{base256emoji:()=>A8});var E2=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}"),w8=E2.reduce((e,t,r)=>(e[r]=t,e),[]),E8=E2.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function S8(e){return e.reduce((t,r)=>(t+=w8[r],t),"")}function I8(e){let t=[];for(let r of e){let n=E8[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var A8=tn({prefix:"\u{1F680}",name:"base256emoji",encode:S8,decode:I8});var Li={};_t(Li,{base32:()=>He,base32hex:()=>R8,base32hexpad:()=>P8,base32hexpadupper:()=>L8,base32hexupper:()=>_8,base32pad:()=>T8,base32padupper:()=>C8,base32upper:()=>B8,base32z:()=>N8});var He=St({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),B8=St({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),T8=St({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),C8=St({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),R8=St({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),_8=St({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),P8=St({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),L8=St({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),N8=St({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ni={};_t(Ni,{base36:()=>D8,base36upper:()=>k8});var D8=hr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),k8=hr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Di={};_t(Di,{base58btc:()=>Dt,base58flickr:()=>U8});var Dt=hr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),U8=hr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ki={};_t(ki,{base64:()=>Mn,base64pad:()=>O8,base64url:()=>F8,base64urlpad:()=>M8});var Mn=St({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),O8=St({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),F8=St({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),M8=St({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ui={};_t(Ui,{base8:()=>K8});var K8=St({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Oi={};_t(Oi,{identity:()=>V8});var V8=tn({prefix:"\0",name:"identity",encode:e=>v2(e),decode:e=>x2(e)});var jh=new TextEncoder,td=new TextDecoder;var Mi={};_t(Mi,{identity:()=>dr});var H8=A2,S2=128,$8=127,G8=~$8,Y8=Math.pow(2,31);function A2(e,t,r){t=t||[],r=r||0;for(var n=r;e>=Y8;)t[r++]=e&255|S2,e/=128;for(;e&G8;)t[r++]=e&255|S2,e>>>=7;return t[r]=e|0,A2.bytes=r-n+1,t}var Q8=Fi,W8=128,I2=127;function Fi(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a)throw Fi.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&I2)<<i:(s&I2)*Math.pow(2,i),i+=7}while(s>=W8);return Fi.bytes=o-n,r}var Z8=Math.pow(2,7),X8=Math.pow(2,14),J8=Math.pow(2,21),j8=Math.pow(2,28),t6=Math.pow(2,35),e6=Math.pow(2,42),r6=Math.pow(2,49),n6=Math.pow(2,56),i6=Math.pow(2,63),o6=function(e){return e<Z8?1:e<X8?2:e<J8?3:e<j8?4:e<t6?5:e<e6?6:e<r6?7:e<n6?8:e<i6?9:10},s6={encode:H8,decode:Q8,encodingLength:o6},a6=s6,Kn=a6;var Vn=(e,t=0)=>[Kn.decode(e,t),Kn.decode.bytes],en=(e,t,r=0)=>(Kn.encode(e,t,r),t),rn=e=>Kn.encodingLength(e);var Re=(e,t)=>{let r=t.byteLength,n=rn(e),i=n+rn(r),o=new Uint8Array(i+r);return en(e,o,0),en(r,o,n),o.set(t,i),new nn(e,r,t,o)},_r=e=>{let t=ze(e),[r,n]=Vn(t),[i,o]=Vn(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new nn(r,i,s,t)},B2=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&m2(e.bytes,r.bytes)}},nn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var T2=0,c6="identity",C2=ze,u6=e=>Re(T2,C2(e)),dr={code:T2,name:c6,encode:C2,digest:u6};var qi={};_t(qi,{sha256:()=>bt,sha512:()=>f6});var Vi=({name:e,code:t,encode:r})=>new Ki(e,t,r),Ki=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?Re(this.code,r):r.then(n=>Re(this.code,n))}else throw Error("Unknown type, must be binary type")}};var _2=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),bt=Vi({name:"sha2-256",code:18,encode:_2("SHA-256")}),f6=Vi({name:"sha2-512",code:19,encode:_2("SHA-512")});var P2=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return h6(r,zi(e),t||Dt.encoder);default:return d6(r,zi(e),t||He.encoder)}};var L2=new WeakMap,zi=e=>{let t=L2.get(e);if(t==null){let r=new Map;return L2.set(e,r),r}return t},Wt=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!==qn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==p6)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=Re(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&&B2(t.multihash,n.multihash)}toString(t){return P2(this,t)}toJSON(){return{"/":P2(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:s}=r;return new e(n,i,o,s||N2(n,i,o.bytes))}else if(r[g6]===!0){let{version:n,multihash:i,code:o}=r,s=_r(i);return e.create(n,o,s)}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!==qn)throw new Error(`Version 0 CID must use dag-pb (code: ${qn}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=N2(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,qn,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=ze(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),s=new nn(r.multihashCode,r.digestSize,o,i);return[r.version===0?e.createV0(s):e.createV1(r.codec,s),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[l,p]=Vn(t.subarray(r));return r+=p,l},i=n(),o=qn;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=r,a=n(),c=n(),u=r+c,f=u-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(t,r){let[n,i]=l6(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}},l6=(e,t)=>{switch(e[0]){case"Q":{let r=t||Dt;return[Dt.prefix,r.decode(`${Dt.prefix}${e}`)]}case Dt.prefix:{let r=t||Dt;return[Dt.prefix,r.decode(e)]}case He.prefix:{let r=t||He;return[He.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)]}}},h6=(e,t,r)=>{let{prefix:n}=r;if(n!==Dt.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},d6=(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},qn=112,p6=18,N2=(e,t,r)=>{let n=rn(e),i=n+rn(t),o=new Uint8Array(i+r.byteLength);return en(e,o,0),en(t,o,n),o.set(r,i),o},g6=Symbol.for("@ipld/js-cid/CID");var ee={...Oi,..._i,...Ui,...Ci,...Ri,...Li,...Ni,...Di,...ki,...Pi},yd={...qi,...Mi};function k2(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var D2=k2("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Hi=k2("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=Rr(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),y6={utf8:D2,"utf-8":D2,hex:ee.base16,latin1:Hi,ascii:Hi,binary:Hi,...ee},U2=y6;function O2(e,t="utf8"){let r=U2[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?N0(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function $i(e){let t=e??8192,r=t>>>1,n,i=t;return function(s){if(s<1||s>r)return Rr(s);i+s>t&&(n=Rr(t),i=0);let a=n.subarray(i,i+=s);return i&7&&(i=(i|7)+1),a}}var Lr=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Gi(){}var Qi=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},m6=$i();function x6(e){return globalThis.Buffer!=null?Rr(e):m6(e)}var $n=class{len;head;tail;states;constructor(){this.len=0,this.head=new Lr(Gi,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new Lr(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Wi((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(zn,10,te.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=te.fromBigInt(t);return this._push(zn,r.length(),r)}uint64Number(t){let r=te.fromNumber(t);return this._push(zn,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=te.fromBigInt(t).zzEncode();return this._push(zn,r.length(),r)}sint64Number(t){let r=te.fromNumber(t).zzEncode();return this._push(zn,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Yi,1,t?1:0)}fixed32(t){return this._push(Hn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=te.fromBigInt(t);return this._push(Hn,4,r.lo)._push(Hn,4,r.hi)}fixed64Number(t){let r=te.fromNumber(t);return this._push(Hn,4,r.lo)._push(Hn,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(c2,4,t)}double(t){return this._push(f2,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Yi,1,0):this.uint32(r)._push(b6,r,t)}string(t){let r=d2(t);return r!==0?this.uint32(r)._push(wi,r,t):this._push(Yi,1,0)}fork(){return this.states=new Qi(this),this.head=this.tail=new Lr(Gi,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 Lr(Gi,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=x6(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Yi(e,t,r){t[r]=e&255}function v6(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var Wi=class extends Lr{next;constructor(t,r){super(v6,t,r),this.next=void 0}};function zn(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 Hn(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 b6(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&($n.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(w6,t,e),this},$n.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(E6,t,e),this});function w6(e,t,r){t.set(e,r)}function E6(e,t,r){e.length<40?wi(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(O2(e),r)}function Zi(){return new $n}function _e(e,t){let r=Zi();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var on;(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"})(on||(on={}));function k0(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function sn(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(o,s){let a=t(o);s.int32(a)},n=function(o){let s=o.int32();return t(s)};return k0("enum",on.VARINT,r,n)}function Pe(e,t){return k0("message",on.LENGTH_DELIMITED,e,t)}var Gn=class extends Error{code;constructor(t,r,n){super(t,n),this.code=r}};function Le(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function F2(e=0){return globalThis.Buffer?.alloc!=null?Le(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function an(e=0){return globalThis.Buffer?.allocUnsafe!=null?Le(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}var M2;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((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 s=r.uint32();switch(s>>>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(s&7);break}}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Ce(r,e.codec())})(M2||(M2={}));var J;(function(e){e.PUT_VALUE="PUT_VALUE",e.GET_VALUE="GET_VALUE",e.ADD_PROVIDER="ADD_PROVIDER",e.GET_PROVIDERS="GET_PROVIDERS",e.FIND_NODE="FIND_NODE",e.PING="PING"})(J||(J={}));var U0;(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"})(U0||(U0={}));(function(e){e.codec=()=>sn(U0)})(J||(J={}));var un;(function(e){e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTED="CONNECTED",e.CAN_CONNECT="CAN_CONNECT",e.CANNOT_CONNECT="CANNOT_CONNECT"})(un||(un={}));var Xi;(function(e){e[e.NOT_CONNECTED=0]="NOT_CONNECTED",e[e.CONNECTED=1]="CONNECTED",e[e.CAN_CONNECT=2]="CAN_CONNECT",e[e.CANNOT_CONNECT=3]="CANNOT_CONNECT"})(Xi||(Xi={}));(function(e){e.codec=()=>sn(Xi)})(un||(un={}));var cn;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.id!=null&&r.id.byteLength>0&&(n.uint32(10),n.bytes(r.id)),r.multiaddrs!=null)for(let o of r.multiaddrs)n.uint32(18),n.bytes(o);r.connection!=null&&(n.uint32(24),un.codec().encode(r.connection,n)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={id:F2(0),multiaddrs:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:{i.id=r.bytes();break}case 2:{i.multiaddrs.push(r.bytes());break}case 3:{i.connection=un.codec().decode(r);break}default:{r.skipType(s&7);break}}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Ce(r,e.codec())})(cn||(cn={}));var ue;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.type!=null&&U0[r.type]!==0&&(n.uint32(8),J.codec().encode(r.type,n)),r.clusterLevel!=null&&(n.uint32(80),n.int32(r.clusterLevel)),r.key!=null&&(n.uint32(18),n.bytes(r.key)),r.record!=null&&(n.uint32(26),n.bytes(r.record)),r.closer!=null)for(let o of r.closer)n.uint32(66),cn.codec().encode(o,n);if(r.providers!=null)for(let o of r.providers)n.uint32(74),cn.codec().encode(o,n);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={type:J.PUT_VALUE,closer:[],providers:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:{i.type=J.codec().decode(r);break}case 10:{i.clusterLevel=r.int32();break}case 2:{i.key=r.bytes();break}case 3:{i.record=r.bytes();break}case 8:{i.closer.push(cn.codec().decode(r,r.uint32()));break}case 9:{i.providers.push(cn.codec().decode(r,r.uint32()));break}default:{r.skipType(s&7);break}}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Ce(r,e.codec())})(ue||(ue={}));function Ji(e,t={}){let r={...e,name:"SEND_QUERY",type:0,messageName:e.type,messageType:J[e.type]};return t.onProgress?.(new Qt("kad-dht:query:send-query",{detail:r})),r}function Yn(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 Qt("kad-dht:query:peer-response",{detail:r})),r}function O0(e,t={}){let r={...e,name:"FINAL_PEER",type:2};return t.onProgress?.(new Qt("kad-dht:query:final-peer",{detail:r})),r}function ie(e,t={}){let r={...e,name:"QUERY_ERROR",type:3};return t.onProgress?.(new Qt("kad-dht:query:query-error",{detail:r})),r}function ji(e,t={}){let r={...e,name:"PROVIDER",type:4};return t.onProgress?.(new Qt("kad-dht:query:provider",{detail:r})),r}function Qn(e,t={}){let r={...e,name:"VALUE",type:5};return t.onProgress?.(new Qt("kad-dht:query:value",{detail:r})),r}function to(e,t={}){let r={...e,name:"DIAL_PEER",type:7};return t.onProgress?.(new Qt("kad-dht:query:dial-peer",{detail:r})),r}var Wn;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((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 s=r.uint32();switch(s>>>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(s&7);break}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Ce(r,e.codec())})(Wn||(Wn={}));function K2(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"),s=String(e.getUTCSeconds()).padStart(2,"0"),a=e.getUTCMilliseconds(),c=String(a*1e3*1e3).padStart(9,"0");return`${t}-${r}-${n}T${i}:${o}:${s}.${c}Z`}function V2(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),s=parseInt(r[4],10),a=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,s,a,c,u))}var kt=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 Wn.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:K2(this.timeReceived)}}static deserialize(t){let r=Wn.decode(t);return new e(r.key,r.value,new Date(r.timeReceived))}static fromDeserialized(t){let r=V2(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)}};function z2(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var q2=z2("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),eo=z2("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=an(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),I6={utf8:q2,"utf-8":q2,hex:ee.base16,latin1:eo,ascii:eo,binary:eo,...ee},F0=I6;function W(e,t="utf8"){let r=F0[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)}function H2(e,t,r){if(r.length===0){let s="No records given";throw new _(s,"ERR_NO_RECORDS_RECEIVED")}let i=W(t).split("/");if(i.length<3){let s="Record key does not have a selector function";throw new _(s,"ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")}let o=e[i[1].toString()];if(o==null){let s=`No selector function configured for key type "${i[1]}"`;throw new _(s,"ERR_UNRECOGNIZED_KEY_PREFIX")}return r.length===1?0:o(t,r)}function A6(e,t){return 0}var $2={pk:A6};async function fn(e,t){let r=t.key,i=W(r).split("/");if(i.length<3)return;let o=e[i[1].toString()];if(o==null){let s=`No validator available for key type "${i[1]}"`;throw new _(s,"ERR_INVALID_RECORD_KEY_TYPE")}await o(r,t.value)}var B6=async(e,t)=>{if(!(e instanceof Uint8Array))throw new _('"key" must be a Uint8Array',"ERR_INVALID_RECORD_KEY_NOT_BUFFER");if(e.byteLength<5)throw new _("invalid public key record","ERR_INVALID_RECORD_KEY_TOO_SHORT");if(W(e.subarray(0,4))!=="/pk/")throw new _("key was not prefixed with /pk/","ERR_INVALID_RECORD_KEY_BAD_PREFIX");let n=e.slice(4),i=await bt.digest(t);if(!vt(n,i.bytes))throw new _("public key does not match passed in key","ERR_INVALID_RECORD_HASH_MISMATCH")},G2={pk:B6};var T6=Symbol.for("nodejs.util.inspect.custom"),Y2=Object.values(ee).map(e=>e.decoder).reduce((e,t)=>e.or(t),ee.identity.decoder),Q2=114,ro=36,no=37,Zn=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()})`}[js]=!0;toString(){return this.string==null&&(this.string=Dt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Wt.createV1(Q2,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return vt(this.multihash.bytes,t);if(typeof t=="string")return It(t).equals(this);if(t?.multihash?.bytes!=null)return vt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[T6](){return`PeerId(${this.toString()})`}},ln=class extends Zn{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},hn=class extends Zn{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},dn=class extends Zn{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function It(e,t){if(t=t??Y2,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=_r(Dt.decode(`z${e}`));return e.startsWith("12D")?new hn({multihash:r}):e.startsWith("16U")?new dn({multihash:r}):new ln({multihash:r})}return $e(Y2.decode(e))}function $e(e){try{let t=_r(e);if(t.code===dr.code){if(t.digest.length===ro)return new hn({multihash:t});if(t.digest.length===no)return new dn({multihash:t})}if(t.code===bt.code)return new ln({multihash:t})}catch{return C6(Wt.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function C6(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==Q2)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===bt.code)return new ln({multihash:e.multihash});if(t.code===dr.code){if(t.digest.length===ro)return new hn({multihash:e.multihash});if(t.digest.length===no)return new dn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function W2(e,t){return e.length===ro?new hn({multihash:Re(dr.code,e),privateKey:t}):e.length===no?new dn({multihash:Re(dr.code,e),privateKey:t}):new ln({multihash:await bt.digest(e),publicKey:e,privateKey:t})}function Bt(e,t="utf8"){let r=F0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Le(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var Ge="/",Z2=new TextEncoder().encode(Ge),M0=Z2[0],pn=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=Bt(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]!==M0)throw new Error("Invalid key")}toString(t="utf8"){return W(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join(Ge))}static random(){return new e(Math.random().toString().substring(2))}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=Z2),this._buf[0]!==M0){let t=new Uint8Array(this._buf.byteLength+1);t.fill(M0,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===M0;)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],s=n[i];if(o<s)return!0;if(o>s)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(Ge).slice(1)}type(){return R6(this.baseNamespace())}name(){return _6(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(Ge)||(t+=Ge),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(Ge):new e(t.slice(0,-1).join(Ge))}child(t){return this.toString()===Ge?t:t.toString()===Ge?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(),...P6(t.map(r=>r.namespaces()))])}};function R6(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function _6(e){let t=e.split(":");return t[t.length-1]}function P6(e){return[].concat(...e)}var sa=Et(X2(),1);var J2="[a-fA-F\\d:]",pr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${J2})|(?<=${J2})(?=\\s|$))`:"",ye="(?: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}",Lt="[a-fA-F\\d]{1,4}",K0=`
|
|
15
|
+
`+a+t.substr(s+1),o=i-s-1,s=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(s=i);return t}function jc(e){return e.replace(/^\s+/,"")}});var k3=nt((uv,D3)=>{var Oe=ct();Kr();It();var P3=D3.exports=Oe.sha256=Oe.sha256||{};Oe.md.sha256=Oe.md.algorithms.sha256=P3;P3.create=function(){L3||tu();var e=null,t=Oe.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=Oe.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=Oe.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),_3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Oe.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,s=o&n.blockLength-1;i.putBytes(Zo.substr(0,n.blockLength-s));for(var a,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)a=n.fullMessageLength[f+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>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};_3(l,r,i);var p=Oe.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 Zo=null,L3=!1,N3=null;function tu(){Zo="\x80",Zo+=Oe.util.fillString("\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 _3(e,t,r){for(var n,i,o,s,a,c,u,f,l,p,d,h,g,y,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,g=e.h5,y=e.h6,m=e.h7,u=0;u<64;++u)s=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),a=y^h&(g^y),o=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),c=f&l|p&(f^l),n=m+s+a+N3[u]+t[u],i=o+c,m=y,y=g,g=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+g|0,e.h6=e.h6+y|0,e.h7=e.h7+m|0,x-=64}}});var O3=nt((fv,U3)=>{var Fe=ct();It();var E1=null;Fe.util.isNodejs&&!Fe.options.usePureJavaScript&&!process.versions["node-webkit"]&&(E1=v1());var eu=U3.exports=Fe.prng=Fe.prng||{};eu.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,g=Fe.util.createBuffer();t.key=null,y();function y(m){if(m)return f(m);if(g.length()>=u)return f(null,g.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return Fe.util.nextTick(function(){o(y)});var x=l(t.key,t.seed);t.generated+=x.length,g.putBytes(x),t.key=d(l(t.key,p(t.seed))),t.seed=h(l(t.key,t.seed)),Fe.util.setImmediate(y)}},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=Fe.util.createBuffer();h.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&s();var g=f(t.key,t.seed);t.generated+=g.length,h.putBytes(g),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 a(),u();var f=32-t.pools[0].messageLength<<5;t.seedFile(f,function(l,p){if(l)return u(l);t.collect(p),a(),u()})}function s(){if(t.pools[0].messageLength>=32)return a();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),a()}function a(){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=Fe.util.globalScope,p=l.crypto||l.msCrypto;p&&p.getRandomValues&&(f=function(E){return p.getRandomValues(E)});var d=Fe.util.createBuffer();if(f)for(;d.length()<u;){var h=Math.max(1,Math.min(u-d.length(),65536)/4),g=new Uint32Array(Math.floor(h));try{f(g);for(var y=0;y<g.length;++y)d.putInt32(g[y])}catch(E){if(!(typeof QuotaExceededError<"u"&&E instanceof QuotaExceededError))throw E}}if(d.length()<u)for(var m,x,v,T=Math.floor(Math.random()*65536);d.length()<u;){x=16807*(T&65535),m=16807*(T>>16),x+=(m&32767)<<16,x+=m>>15,x=(x&2147483647)+(x>>31),T=x&4294967295;for(var y=0;y<3;++y)v=T>>>(y<<3),v^=Math.floor(Math.random()*256),d.putByte(v&255)}return d.getBytes(u)}return E1?(t.seedFile=function(u,f){E1.randomBytes(u,function(l,p){if(l)return f(l);f(null,p.toString())})},t.seedFileSync=function(u){return E1.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 g=h.data;g.forge&&g.forge.prng&&(self.removeEventListener("message",d),p(g.forge.prng.err,g.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 f0=nt((lv,Xo)=>{var Ot=ct();h1();k3();O3();It();(function(){if(Ot.random&&Ot.random.getBytes){Xo.exports=Ot.random;return}(function(e){var t={},r=new Array(4),n=Ot.util.createBuffer();t.formatKey=function(l){var p=Ot.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),Ot.aes._expandKey(l,!1)},t.formatSeed=function(l){var p=Ot.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 Ot.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=Ot.md.sha256;function i(){var l=Ot.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(),s=null,a=Ot.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(s=function(l){return c.getRandomValues(l)}),Ot.options.usePureJavaScript||!Ot.util.isNodejs&&!s){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(!Ot.random)Ot.random=o;else for(var f in o)Ot.random[f]=o[f];Ot.random.createInstance=i,Xo.exports=Ot.random})(typeof jQuery<"u"?jQuery:null)})()});var V3=nt((hv,K3)=>{var ie=ct();It();var Jo=[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],ru=function(e,t){return e<<t&65535|(e&65535)>>16-t},nu=function(e,t){return(e&65535)>>t|e<<16-t&65535};K3.exports=ie.rc2=ie.rc2||{};ie.rc2.expandKey=function(e,t){typeof e=="string"&&(e=ie.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,o=Math.ceil(i/8),s=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(Jo[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-o,Jo[r.at(128-o)&s]),a=127-o;a>=0;a--)r.setAt(a,Jo[r.at(a+1)^r.at(a+o)]);return r};var M3=function(e,t,r){var n=!1,i=null,o=null,s=null,a,c,u,f,l=[];for(e=ie.rc2.expandKey(e,t),u=0;u<64;u++)l.push(e.getInt16Le());r?(a=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]=ru(h[u],F3[u]),f++},c=function(h){for(u=0;u<4;u++)h[u]+=l[h[(u+3)%4]&63]}):(a=function(h){for(u=3;u>=0;u--)h[u]=nu(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 g=[];for(u=0;u<4;u++){var y=i.getInt16Le();s!==null&&(r?y^=s.getInt16Le():s.putInt16Le(y)),g.push(y&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](g);for(u=0;u<4;u++)s!==null&&(r?s.putInt16Le(g[u]):g[u]^=s.getInt16Le()),o.putInt16Le(g[u])},d=null;return d={start:function(h,g){h&&typeof h=="string"&&(h=ie.util.createBuffer(h)),n=!1,i=ie.util.createBuffer(),o=g||new ie.util.createBuffer,s=h,d.output=o},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)p([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(h){var g=!0;if(r)if(h)g=h(8,i,!r);else{var y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(g&&(n=!0,d.update()),!r&&(g=i.length()===0,g))if(h)g=h(8,o,!r);else{var m=o.length(),x=o.at(m-1);x>m?g=!1:o.truncate(x)}return g}},d};ie.rc2.startEncrypting=function(e,t,r){var n=ie.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};ie.rc2.createEncryptionCipher=function(e,t){return M3(e,t,!0)};ie.rc2.startDecrypting=function(e,t,r){var n=ie.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};ie.rc2.createDecryptionCipher=function(e,t){return M3(e,t,!1)}});var A1=nt((dv,W3)=>{var jo=ct();W3.exports=jo.jsbn=jo.jsbn||{};var rr,iu=0xdeadbeefcafe,q3=(iu&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))}jo.jsbn.BigInteger=B;function et(){return new B(null)}function ou(e,t,r,n,i,o){for(;--o>=0;){var s=t*this.data[e++]+r.data[n]+i;i=Math.floor(s/67108864),r.data[n++]=s&67108863}return i}function su(e,t,r,n,i,o){for(var s=t&32767,a=t>>15;--o>=0;){var c=this.data[e]&32767,u=this.data[e++]>>15,f=a*c+u*s;c=s*c+((f&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(f>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function z3(e,t,r,n,i,o){for(var s=t&16383,a=t>>14;--o>=0;){var c=this.data[e]&16383,u=this.data[e++]>>14,f=a*c+u*s;c=s*c+((f&16383)<<14)+r.data[n]+i,i=(c>>28)+(f>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(B.prototype.am=z3,rr=28):q3&&navigator.appName=="Microsoft Internet Explorer"?(B.prototype.am=su,rr=30):q3&&navigator.appName!="Netscape"?(B.prototype.am=ou,rr=26):(B.prototype.am=z3,rr=28);B.prototype.DB=rr;B.prototype.DM=(1<<rr)-1;B.prototype.DV=1<<rr;var ts=52;B.prototype.FV=Math.pow(2,ts);B.prototype.F1=ts-rr;B.prototype.F2=2*rr-ts;var au="0123456789abcdefghijklmnopqrstuvwxyz",S1=new Array,Cn,he;Cn=48;for(he=0;he<=9;++he)S1[Cn++]=he;Cn=97;for(he=10;he<36;++he)S1[Cn++]=he;Cn=65;for(he=10;he<36;++he)S1[Cn++]=he;function H3(e){return au.charAt(e)}function $3(e,t){var r=S1[e.charCodeAt(t)];return r??-1}function cu(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 uu(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 wr(e){var t=et();return t.fromInt(e),t}function fu(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 s=r==8?e[n]&255:$3(e,n);if(s<0){e.charAt(n)=="-"&&(i=!0);continue}i=!1,o==0?this.data[this.t++]=s:o+r>this.DB?(this.data[this.t-1]|=(s&(1<<this.DB-o)-1)<<o,this.data[this.t++]=s>>this.DB-o):this.data[this.t-1]|=s<<o,o+=r,o>=this.DB&&(o-=this.DB)}r==8&&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 lu(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function hu(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="",s=this.t,a=this.DB-s*this.DB%t;if(s-- >0)for(a<this.DB&&(n=this.data[s]>>a)>0&&(i=!0,o=H3(n));s>=0;)a<t?(n=(this.data[s]&(1<<a)-1)<<t-a,n|=this.data[--s]>>(a+=this.DB-t)):(n=this.data[s]>>(a-=t)&r,a<=0&&(a+=this.DB,--s)),n>0&&(i=!0),i&&(o+=H3(n));return i?o:"0"}function du(){var e=et();return B.ZERO.subTo(this,e),e}function pu(){return this.s<0?this.negate():this}function gu(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 I1(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 yu(){return this.t<=0?0:this.DB*(this.t-1)+I1(this.data[this.t-1]^this.s&this.DM)}function mu(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 xu(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 vu(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,o=Math.floor(e/this.DB),s=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+o+1]=this.data[a]>>n|s,s=(this.data[a]&i)<<r;for(a=o-1;a>=0;--a)t.data[a]=0;t.data[o]=s,t.t=this.t+o+1,t.s=this.s,t.clamp()}function bu(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 s=r+1;s<this.t;++s)t.data[s-r-1]|=(this.data[s]&o)<<i,t.data[s-r]=this.data[s]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&o)<<i),t.t=this.t-r,t.clamp()}function wu(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 Eu(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 Su(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 Iu(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=et());var o=et(),s=this.s,a=e.s,c=this.DB-I1(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,g=r.t,y=g-u,m=t??et();for(o.dlShiftTo(y,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(;--y>=0;){var x=r.data[--g]==f?this.DM:Math.floor(r.data[g]*p+(r.data[g-1]+h)*d);if((r.data[g]+=o.am(0,x,r,y,0,u))<x)for(o.dlShiftTo(y,m),r.subTo(m,r);r.data[g]<--x;)r.subTo(m,r)}t!=null&&(r.drShiftTo(u,t),s!=a&&B.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),s<0&&B.ZERO.subTo(r,r)}}}function Au(e){var t=et();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(B.ZERO)>0&&e.subTo(t,t),t}function Vr(e){this.m=e}function Bu(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function Tu(e){return e}function Cu(e){e.divRemTo(this.m,null,e)}function Ru(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function _u(e,t){e.squareTo(t),this.reduce(t)}Vr.prototype.convert=Bu;Vr.prototype.revert=Tu;Vr.prototype.reduce=Cu;Vr.prototype.mulTo=Ru;Vr.prototype.sqrTo=_u;function Pu(){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 qr(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 Lu(e){var t=et();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 Nu(e){var t=et();return e.copyTo(t),this.reduce(t),t}function Du(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 ku(e,t){e.squareTo(t),this.reduce(t)}function Uu(e,t,r){e.multiplyTo(t,r),this.reduce(r)}qr.prototype.convert=Lu;qr.prototype.revert=Nu;qr.prototype.reduce=Du;qr.prototype.mulTo=Uu;qr.prototype.sqrTo=ku;function Ou(){return(this.t>0?this.data[0]&1:this.s)==0}function Fu(e,t){if(e>4294967295||e<1)return B.ONE;var r=et(),n=et(),i=t.convert(this),o=I1(e)-1;for(i.copyTo(r);--o>=0;)if(t.sqrTo(r,n),(e&1<<o)>0)t.mulTo(n,i,r);else{var s=r;r=n,n=s}return t.revert(r)}function Mu(e,t){var r;return e<256||t.isEven()?r=new Vr(t):r=new qr(t),this.exp(e,r)}B.prototype.copyTo=cu;B.prototype.fromInt=uu;B.prototype.fromString=fu;B.prototype.clamp=lu;B.prototype.dlShiftTo=mu;B.prototype.drShiftTo=xu;B.prototype.lShiftTo=vu;B.prototype.rShiftTo=bu;B.prototype.subTo=wu;B.prototype.multiplyTo=Eu;B.prototype.squareTo=Su;B.prototype.divRemTo=Iu;B.prototype.invDigit=Pu;B.prototype.isEven=Ou;B.prototype.exp=Fu;B.prototype.toString=hu;B.prototype.negate=du;B.prototype.abs=pu;B.prototype.compareTo=gu;B.prototype.bitLength=yu;B.prototype.mod=Au;B.prototype.modPowInt=Mu;B.ZERO=wr(0);B.ONE=wr(1);function Ku(){var e=et();return this.copyTo(e),e}function Vu(){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 qu(){return this.t==0?this.s:this.data[0]<<24>>24}function zu(){return this.t==0?this.s:this.data[0]<<16>>16}function Hu(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function $u(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Gu(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=wr(r),i=et(),o=et(),s="";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(e).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(e)+s}function Yu(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,o=0,s=0,a=0;a<e.length;++a){var c=$3(e,a);if(c<0){e.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}s=t*s+c,++o>=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0)}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(s,0)),i&&B.ZERO.subTo(this,this)}function Qu(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),es,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 Wu(){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 Zu(e){return this.compareTo(e)==0}function Xu(e){return this.compareTo(e)<0?this:e}function Ju(e){return this.compareTo(e)>0?this:e}function ju(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 tf(e,t){return e&t}function ef(e){var t=et();return this.bitwiseTo(e,tf,t),t}function es(e,t){return e|t}function rf(e){var t=et();return this.bitwiseTo(e,es,t),t}function G3(e,t){return e^t}function nf(e){var t=et();return this.bitwiseTo(e,G3,t),t}function Y3(e,t){return e&~t}function of(e){var t=et();return this.bitwiseTo(e,Y3,t),t}function sf(){for(var e=et(),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 af(e){var t=et();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function cf(e){var t=et();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function uf(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 ff(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+uf(this.data[e]);return this.s<0?this.t*this.DB:-1}function lf(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function hf(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=lf(this.data[r]^t);return e}function df(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function pf(e,t){var r=B.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function gf(e){return this.changeBit(e,es)}function yf(e){return this.changeBit(e,Y3)}function mf(e){return this.changeBit(e,G3)}function xf(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 vf(e){var t=et();return this.addTo(e,t),t}function bf(e){var t=et();return this.subTo(e,t),t}function wf(e){var t=et();return this.multiplyTo(e,t),t}function Ef(e){var t=et();return this.divRemTo(e,t,null),t}function Sf(e){var t=et();return this.divRemTo(e,null,t),t}function If(e){var t=et(),r=et();return this.divRemTo(e,t,r),new Array(t,r)}function Af(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function Bf(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 l0(){}function Q3(e){return e}function Tf(e,t,r){e.multiplyTo(t,r)}function Cf(e,t){e.squareTo(t)}l0.prototype.convert=Q3;l0.prototype.revert=Q3;l0.prototype.mulTo=Tf;l0.prototype.sqrTo=Cf;function Rf(e){return this.exp(e,new l0)}function _f(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 Pf(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 Rn(e){this.r2=et(),this.q3=et(),B.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function Lf(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=et();return e.copyTo(t),this.reduce(t),t}function Nf(e){return e}function Df(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 kf(e,t){e.squareTo(t),this.reduce(t)}function Uf(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Rn.prototype.convert=Lf;Rn.prototype.revert=Nf;Rn.prototype.reduce=Df;Rn.prototype.mulTo=Uf;Rn.prototype.sqrTo=kf;function Of(e,t){var r=e.bitLength(),n,i=wr(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 Vr(t):t.isEven()?o=new Rn(t):o=new qr(t);var s=new Array,a=3,c=n-1,u=(1<<n)-1;if(s[1]=o.convert(this),n>1){var f=et();for(o.sqrTo(s[1],f);a<=u;)s[a]=et(),o.mulTo(f,s[a-2],s[a]),a+=2}var l=e.t-1,p,d=!0,h=et(),g;for(r=I1(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)),a=n;!(p&1);)p>>=1,--a;if((r-=a)<0&&(r+=this.DB,--l),d)s[p].copyTo(i),d=!1;else{for(;a>1;)o.sqrTo(i,h),o.sqrTo(h,i),a-=2;a>0?o.sqrTo(i,h):(g=i,i=h,h=g),o.mulTo(h,s[p],i)}for(;l>=0&&!(e.data[l]&1<<r);)o.sqrTo(i,h),g=i,i=h,h=g,--r<0&&(r=this.DB-1,--l)}return o.revert(i)}function Ff(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 Mf(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 Kf(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return B.ZERO;for(var r=e.clone(),n=this.clone(),i=wr(1),o=wr(0),s=wr(0),a=wr(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?((!s.isEven()||!a.isEven())&&(s.addTo(this,s),a.subTo(e,a)),s.rShiftTo(1,s)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),t&&s.subTo(i,s),a.subTo(o,a))}if(n.compareTo(B.ONE)!=0)return B.ZERO;if(a.compareTo(e)>=0)return a.subtract(e);if(a.signum()<0)a.addTo(e,a);else return a;return a.signum()<0?a.add(e):a}var we=[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],Vf=(1<<26)/we[we.length-1];function qf(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=we[we.length-1]){for(t=0;t<we.length;++t)if(r.data[0]==we[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<we.length;){for(var n=we[t],i=t+1;i<we.length&&n<Vf;)n*=we[i++];for(n=r.modInt(n);t<i;)if(n%we[t++]==0)return!1}return r.millerRabin(e)}function zf(e){var t=this.subtract(B.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=Hf(),o,s=0;s<e;++s){do o=new B(this.bitLength(),i);while(o.compareTo(B.ONE)<=0||o.compareTo(t)>=0);var a=o.modPow(n,this);if(a.compareTo(B.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(B.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function Hf(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}B.prototype.chunkSize=Hu;B.prototype.toRadix=Gu;B.prototype.fromRadix=Yu;B.prototype.fromNumber=Qu;B.prototype.bitwiseTo=ju;B.prototype.changeBit=pf;B.prototype.addTo=xf;B.prototype.dMultiply=Af;B.prototype.dAddOffset=Bf;B.prototype.multiplyLowerTo=_f;B.prototype.multiplyUpperTo=Pf;B.prototype.modInt=Mf;B.prototype.millerRabin=zf;B.prototype.clone=Ku;B.prototype.intValue=Vu;B.prototype.byteValue=qu;B.prototype.shortValue=zu;B.prototype.signum=$u;B.prototype.toByteArray=Wu;B.prototype.equals=Zu;B.prototype.min=Xu;B.prototype.max=Ju;B.prototype.and=ef;B.prototype.or=rf;B.prototype.xor=nf;B.prototype.andNot=of;B.prototype.not=sf;B.prototype.shiftLeft=af;B.prototype.shiftRight=cf;B.prototype.getLowestSetBit=ff;B.prototype.bitCount=hf;B.prototype.testBit=df;B.prototype.setBit=gf;B.prototype.clearBit=yf;B.prototype.flipBit=mf;B.prototype.add=vf;B.prototype.subtract=bf;B.prototype.multiply=wf;B.prototype.divide=Ef;B.prototype.remainder=Sf;B.prototype.divideAndRemainder=If;B.prototype.modPow=Of;B.prototype.modInverse=Kf;B.prototype.pow=Rf;B.prototype.gcd=Ff;B.prototype.isProbablePrime=qf});var t4=nt((pv,j3)=>{var Me=ct();Kr();It();var X3=j3.exports=Me.sha1=Me.sha1||{};Me.md.sha1=Me.md.algorithms.sha1=X3;X3.create=function(){J3||$f();var e=null,t=Me.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=Me.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=Me.util.encodeUtf8(i));var s=i.length;n.messageLength+=s,s=[s/4294967296>>>0,s>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=s[1],s[1]=s[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,s[0]=s[1]/4294967296>>>0;return t.putBytes(i),Z3(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,s=o&n.blockLength-1;i.putBytes(rs.substr(0,n.blockLength-s));for(var a,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)a=n.fullMessageLength[f+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>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=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},n};var rs=null,J3=!1;function $f(){rs="\x80",rs+=Me.util.fillString("\0",64),J3=!0}function Z3(e,t,r){for(var n,i,o,s,a,c,u,f,l=r.length();l>=64;){for(i=e.h0,o=e.h1,s=e.h2,a=e.h3,c=e.h4,f=0;f<16;++f)n=r.getInt32(),t[f]=n,u=a^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;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=a^o&(s^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;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^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;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^s^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;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&s|a&(o^s),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;for(;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^s^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=s,s=(o<<30|o>>>2)>>>0,o=i,i=n;e.h0=e.h0+i|0,e.h1=e.h1+o|0,e.h2=e.h2+s|0,e.h3=e.h3+a|0,e.h4=e.h4+c|0,l-=64}}});var n4=nt((gv,r4)=>{var Ke=ct();It();f0();t4();var e4=r4.exports=Ke.pkcs1=Ke.pkcs1||{};e4.encode_rsa_oaep=function(e,t,r){var n,i,o,s;typeof r=="string"?(n=r,i=arguments[3]||void 0,o=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,o=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md)),o?o.start():o=Ke.md.sha1.create(),s||(s=o);var a=Math.ceil(e.n.bitLength()/8),c=a-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=Ke.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 g=B1(i,a-o.digestLength-1,s),y=Ke.util.xorBytes(h,g,h.length),m=B1(y,o.digestLength,s),x=Ke.util.xorBytes(i,m,i.length);return"\0"+x+y};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 s=Math.ceil(e.n.bitLength()/8);if(t.length!==s){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=s,y}if(i===void 0?i=Ke.md.sha1.create():i.start(),o||(o=i),s<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=t.charAt(0),u=t.substring(1,i.digestLength+1),f=t.substring(1+i.digestLength),l=B1(f,i.digestLength,o),p=Ke.util.xorBytes(u,l,u.length),d=B1(p,s-i.digestLength-1,o),h=Ke.util.xorBytes(f,d,f.length),g=h.substring(0,i.digestLength),y=c!=="\0",m=0;m<i.digestLength;++m)y|=a.charAt(m)!==g.charAt(m);for(var x=1,v=i.digestLength,T=i.digestLength;T<h.length;T++){var E=h.charCodeAt(T),S=E&1^1,L=x?65534:0;y|=E&L,x=x&S,v+=x}if(y||h.charCodeAt(v)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(v+1)};function B1(e,t,r){r||(r=Ke.md.sha1.create());for(var n="",i=Math.ceil(t/r.digestLength),o=0;o<i;++o){var s=String.fromCharCode(o>>24&255,o>>16&255,o>>8&255,o&255);r.start(),r.update(e+s),n+=r.digest().getBytes()}return n.substring(0,t)}});var i4=nt((yv,ns)=>{var Er=ct();It();A1();f0();(function(){if(Er.prime){ns.exports=Er.prime;return}var e=ns.exports=Er.prime=Er.prime||{},t=Er.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 g=p.prng||Er.random,y={nextBytes:function(m){for(var x=g.getBytesSync(m.length),v=0;v<m.length;++v)m[v]=x.charCodeAt(v)}};if(h.name==="PRIMEINC")return o(l,y,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):s(l,p,d,h)}function s(l,p,d,h){var g=u(l,p),y=0,m=f(g.bitLength());"millerRabinTests"in d&&(m=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),a(g,l,p,y,m,x,h)}function a(l,p,d,h,g,y,m){var x=+new Date;do{if(l.bitLength()>p&&(l=u(p,d)),l.isProbablePrime(g))return m(null,l);l.dAddOffset(r[h++%8],0)}while(y<0||+new Date-x<y);Er.util.setImmediate(function(){a(l,p,d,h,g,y,m)})}function c(l,p,d,h){if(typeof Worker>"u")return s(l,p,d,h);var g=u(l,p),y=d.workers,m=d.workLoad||100,x=m*30/8,v=d.workerScript||"forge/prime.worker.js";if(y===-1)return Er.util.estimateCores(function(E,S){E&&(S=2),y=S-1,T()});T();function T(){y=Math.max(1,y);for(var E=[],S=0;S<y;++S)E[S]=new Worker(v);for(var L=y,S=0;S<y;++S)E[S].addEventListener("message",H);var N=!1;function H(z){if(!N){--L;var V=z.data;if(V.found){for(var Z=0;Z<E.length;++Z)E[Z].terminate();return N=!0,h(null,new t(V.prime,16))}g.bitLength()>l&&(g=u(l,p));var ut=g.toString(16);z.target.postMessage({hex:ut,workLoad:m}),g.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((mv,l4)=>{var K=ct();u0();A1();g1();n4();i4();f0();It();typeof tt>"u"&&(tt=K.jsbn.BigInteger);var tt,is=K.util.isNodejs?v1():null,w=K.asn1,de=K.util;K.pki=K.pki||{};l4.exports=K.pki.rsa=K.rsa=K.rsa||{};var $=K.pki,Gf=[6,4,2,4,2,4,6,2],Yf={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"}]},Qf={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"}]},Wf={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"}]},Zf=K.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"}]}]},Xf={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"}]},Jf=function(e){var t;if(e.algorithm in $.oids)t=$.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 s=w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(o),i.value.push(s),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(tt.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(tt.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new tt(K.util.bytesToHex(K.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(tt.ONE));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 s=i.subtract(o).multiply(t.qInv).mod(t.p).multiply(t.q).add(o);return s=s.multiply(n.modInverse(t.n)).mod(t.n),s};$.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=K.util.createBuffer(),i.putBytes(e));for(var s=new tt(i.toHex(),16),a=u4(s,t,n),c=a.toString(16),u=K.util.createBuffer(),f=o-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(K.util.hexToBytes(c)),u.getBytes()};$.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 s=new tt(K.util.createBuffer(e).toHex(),16);if(s.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=u4(s,t,r),c=a.toString(16),u=K.util.createBuffer(),f=i-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(K.util.hexToBytes(c)),n!==!1?T1(u.getBytes(),t,r):u.getBytes()};$.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||K.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},o=r.algorithm||"PRIMEINC",s;if(o==="PRIMEINC")s={algorithm:o,state:0,bits:e,rng:i,eInt:t||65537,e:new tt(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},s.e.fromInt(s.eInt);else throw new Error("Invalid key generation algorithm: "+o);return s};$.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new tt(null);r.fromInt(30);for(var n=0,i=function(l,p){return l|p},o=+new Date,s,a=0;e.keys===null&&(t<=0||a<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new tt(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(tt.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(t7(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(Gf[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(tt.ONE).gcd(e.e).compareTo(tt.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(tt.ONE),e.q1=e.q.subtract(tt.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(tt.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:$.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:$.rsa.setPublicKey(e.n,e.e)}}s=+new Date,a+=s-o,o=s}return e.keys!==null};$.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),!K.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(o4("generateKeyPair"))return is.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:$.privateKeyFromPem(u),publicKey:$.publicKeyFromPem(c)})});if(s4("generateKey")&&s4("exportKey"))return de.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:c4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return de.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=$.privateKeyFromAsn1(w.fromDer(K.util.createBuffer(a)));n(null,{privateKey:c,publicKey:$.setRsaPublicKey(c.n,c.e)})}});if(a4("generateKey")&&a4("exportKey")){var i=de.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:c4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=de.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(f){var l=f.target.result,p=$.privateKeyFromAsn1(w.fromDer(K.util.createBuffer(l)));n(null,{privateKey:p,publicKey:$.setRsaPublicKey(p.n,p.e)})},u.onerror=function(f){n(f)}},i.onerror=function(a){n(a)};return}}else if(o4("generateKeyPairSync")){var o=is.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:$.privateKeyFromPem(o.privateKey),publicKey:$.publicKeyFromPem(o.publicKey)}}}var s=$.rsa.createKeyPairGenerationState(e,t,r);if(!n)return $.rsa.stepKeyPairGenerationState(s,0),s.keys;jf(s,r,n)};$.setRsaPublicKey=$.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(a,c,u){return f4(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return K.pkcs1.encode_rsa_oaep(c,a,o)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var s=i.encode(n,r,!0);return $.rsa.encrypt(s,r,!0)},r.verify=function(n,i,o,s){typeof o=="string"?o=o.toUpperCase():o===void 0&&(o="RSASSA-PKCS1-V1_5"),s===void 0&&(s={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in s||(s._parseAllDigestBytes=!0),o==="RSASSA-PKCS1-V1_5"?o={verify:function(c,u){u=T1(u,r,!0);var f=w.fromDer(u,{parseAllBytes:s._parseAllDigestBytes}),l={},p=[];if(!w.validate(f,Xf,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===K.oids.md2||h===K.oids.md5||h===K.oids.sha1||h===K.oids.sha224||h===K.oids.sha256||h===K.oids.sha384||h===K.oids.sha512||h===K.oids["sha512-224"]||h===K.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=h,d}if((h===K.oids.md2||h===K.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=T1(u,r,!0),c===u}});var a=$.rsa.decrypt(i,r,!0,!1);return o.verify(n,a,r.n.bitLength())},r};$.setRsaPrivateKey=$.rsa.setPrivateKey=function(e,t,r,n,i,o,s,a){var c={n:e,e:t,d:r,p:n,q:i,dP:o,dQ:s,qInv:a};return c.decrypt=function(u,f,l){typeof f=="string"?f=f.toUpperCase():f===void 0&&(f="RSAES-PKCS1-V1_5");var p=$.rsa.decrypt(u,c,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:T1};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(d,h){return K.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:Jf},l=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return u}},l=1);var p=f.encode(u,c.n.bitLength());return $.rsa.encrypt(p,c,l)},c};$.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($.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())])};$.privateKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,Yf,t,r)&&(e=w.fromDer(K.util.createBuffer(t.privateKey))),t={},r=[],!w.validate(e,Qf,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,s,a,c,u,f,l;return i=K.util.createBuffer(t.privateKeyModulus).toHex(),o=K.util.createBuffer(t.privateKeyPublicExponent).toHex(),s=K.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=K.util.createBuffer(t.privateKeyPrime1).toHex(),c=K.util.createBuffer(t.privateKeyPrime2).toHex(),u=K.util.createBuffer(t.privateKeyExponent1).toHex(),f=K.util.createBuffer(t.privateKeyExponent2).toHex(),l=K.util.createBuffer(t.privateKeyCoefficient).toHex(),$.setRsaPrivateKey(new tt(i,16),new tt(o,16),new tt(s,16),new tt(a,16),new tt(c,16),new tt(u,16),new tt(f,16),new tt(l,16))};$.privateKeyToAsn1=$.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,Ve(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.e)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.d)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.p)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.q)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.dP)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.dQ)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.qInv))])};$.publicKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,Zf,t,r)){var n=w.derToOid(t.publicKeyOid);if(n!==$.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,Wf,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=K.util.createBuffer(t.publicKeyModulus).toHex(),s=K.util.createBuffer(t.publicKeyExponent).toHex();return $.setRsaPublicKey(new tt(o,16),new tt(s,16))};$.publicKeyToAsn1=$.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($.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.BITSTRING,!1,[$.publicKeyToRSAPublicKey(e)])])};$.publicKeyToRSAPublicKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.e))])};function f4(e,t,r){var n=K.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 s=i-3-e.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<s;++c)n.putByte(a)}else for(;s>0;){for(var u=0,f=K.random.getBytes(s),c=0;c<s;++c)a=f.charCodeAt(c),a===0?++u:n.putByte(a);s=u}return n.putByte(0),n.putBytes(e),n}function T1(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),o=K.util.createBuffer(e),s=o.getByte(),a=o.getByte();if(s!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(o.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;o.length()>1;){if(o.getByte()!==255){--o.read;break}++c}else if(a===2)for(c=0;o.length()>1;){if(o.getByte()===0){--o.read;break}++c}var f=o.getByte();if(f!==0||c!==i-3-o.length())throw new Error("Encryption block is invalid.");return o.getBytes()}function jf(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(a,c){if(a)return r(a);if(e.p=c,e.q!==null)return s(a,e.q);o(e.qBits,s)})}function o(a,c){K.prime.generateProbablePrime(a,n,c)}function s(a,c){if(a)return r(a);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(tt.ONE).gcd(e.e).compareTo(tt.ONE)!==0){e.p=null,i();return}if(e.q.subtract(tt.ONE).gcd(e.e).compareTo(tt.ONE)!==0){e.q=null,o(e.qBits,s);return}if(e.p1=e.p.subtract(tt.ONE),e.q1=e.q.subtract(tt.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(tt.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,s);return}var f=e.e.modInverse(e.phi);e.keys={privateKey:$.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:$.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Ve(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=K.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 t7(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 K.util.isNodejs&&typeof is[e]=="function"}function s4(e){return typeof de.globalScope<"u"&&typeof de.globalScope.crypto=="object"&&typeof de.globalScope.crypto.subtle=="object"&&typeof de.globalScope.crypto.subtle[e]=="function"}function a4(e){return typeof de.globalScope<"u"&&typeof de.globalScope.msCrypto=="object"&&typeof de.globalScope.msCrypto.subtle=="object"&&typeof de.globalScope.msCrypto.subtle[e]=="function"}function c4(e){for(var t=K.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((xv,y4)=>{var O=ct();h1();u0();E3();Kr();g1();Wo();R3();f0();V3();C1();It();typeof h4>"u"&&(h4=O.jsbn.BigInteger);var h4,I=O.asn1,G=O.pki=O.pki||{};y4.exports=G.pbe=O.pbe=O.pbe||{};var zr=G.oids,e7={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"}]},r7={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"}]}]},n7={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"}]};G.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=O.random.getBytesSync(r.saltSize),i=r.count,o=I.integerToDer(i),s,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,f,l;switch(r.algorithm){case"aes128":s=16,u=16,f=zr["aes128-CBC"],l=O.aes.createEncryptionCipher;break;case"aes192":s=24,u=16,f=zr["aes192-CBC"],l=O.aes.createEncryptionCipher;break;case"aes256":s=32,u=16,f=zr["aes256-CBC"],l=O.aes.createEncryptionCipher;break;case"des":s=8,u=8,f=zr.desCBC,l=O.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=g4(d),g=O.pkcs5.pbkdf2(t,n,i,s,h),y=O.random.getBytesSync(u),m=l(g);m.start(y),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes();var x=i7(n,o,s,d);a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(zr.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(zr.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,y)])])])}else if(r.algorithm==="3des"){s=24;var v=new O.util.ByteBuffer(n),g=G.pbe.generatePkcs12Key(t,v,1,i,s),y=G.pbe.generatePkcs12Key(t,v,2,i,s),m=O.des.createEncryptionCipher(g);m.start(y),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes(),a=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(zr["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 T=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[a,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return T};G.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!I.validate(e,e7,n,i)){var o=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=I.derToOid(n.encryptionOid),a=G.pbe.getCipher(s,n.encryptionParams,t),c=O.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=I.fromDer(a.output)),r};G.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(e).getBytes()};return O.pem.encode(r,{maxline:t})};G.encryptedPrivateKeyFromPem=function(e){var t=O.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)};G.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=G.wrapRsaPrivateKey(G.privateKeyToAsn1(e));return n=G.encryptPrivateKeyInfo(n,t,r),G.encryptedPrivateKeyToPem(n)}var i,o,s,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",s=16,o=O.random.getBytesSync(16),a=O.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",s=24,o=O.random.getBytesSync(16),a=O.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",s=32,o=O.random.getBytesSync(16),a=O.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",s=24,o=O.random.getBytesSync(8),a=O.des.createEncryptionCipher;break;case"des":i="DES-CBC",s=8,o=O.random.getBytesSync(8),a=O.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=O.pbe.opensslDeriveBytes(t,o.substr(0,8),s),f=a(u);f.start(o),f.update(I.toDer(G.privateKeyToAsn1(e))),f.finish();var l={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:O.util.bytesToHex(o).toUpperCase()},body:f.output.getBytes()};return O.pem.encode(l)};G.decryptRsaPrivateKey=function(e,t){var r=null,n=O.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,s;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,s=O.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,s=O.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,s=O.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,s=O.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,s=O.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,s=function(l){return O.rc2.createDecryptionCipher(l,40)};break;case"RC2-64-CBC":o=8,s=function(l){return O.rc2.createDecryptionCipher(l,64)};break;case"RC2-128-CBC":o=16,s=function(l){return O.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 a=O.util.hexToBytes(n.dekInfo.parameters),c=O.pbe.opensslDeriveBytes(t,a.substr(0,8),o),u=s(c);if(u.start(a),u.update(O.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=G.decryptPrivateKeyInfo(I.fromDer(r),t):r=I.fromDer(r),r!==null&&(r=G.privateKeyFromAsn1(r)),r};G.pbe.generatePkcs12Key=function(e,t,r,n,i,o){var s,a;if(typeof o>"u"||o===null){if(!("sha1"in O.md))throw new Error('"sha1" hash algorithm unavailable.');o=O.md.sha1.create()}var c=o.digestLength,u=o.blockLength,f=new O.util.ByteBuffer,l=new O.util.ByteBuffer;if(e!=null){for(a=0;a<e.length;a++)l.putInt16(e.charCodeAt(a));l.putInt16(0)}var p=l.length(),d=t.length(),h=new O.util.ByteBuffer;h.fillWithByte(r,u);var g=u*Math.ceil(d/u),y=new O.util.ByteBuffer;for(a=0;a<g;a++)y.putByte(t.at(a%d));var m=u*Math.ceil(p/u),x=new O.util.ByteBuffer;for(a=0;a<m;a++)x.putByte(l.at(a%p));var v=y;v.putBuffer(x);for(var T=Math.ceil(i/c),E=1;E<=T;E++){var S=new O.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 O.util.ByteBuffer;for(a=0;a<u;a++)N.putByte(S.at(a%c));var H=Math.ceil(d/u)+Math.ceil(p/u),z=new O.util.ByteBuffer;for(s=0;s<H;s++){var V=new O.util.ByteBuffer(v.getBytes(u)),Z=511;for(a=N.length()-1;a>=0;a--)Z=Z>>8,Z+=N.at(a)+V.at(a),V.setAt(a,Z&255);z.putBuffer(V)}v=z,f.putBuffer(S)}return f.truncate(f.length()-i),f};G.pbe.getCipher=function(e,t,r){switch(e){case G.oids.pkcs5PBES2:return G.pbe.getCipherForPBES2(e,t,r);case G.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case G.oids["pbewithSHAAnd40BitRC2-CBC"]:return G.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}};G.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!I.validate(t,r7,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!==G.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!==G.oids["aes128-CBC"]&&e!==G.oids["aes192-CBC"]&&e!==G.oids["aes256-CBC"]&&e!==G.oids["des-EDE3-CBC"]&&e!==G.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 s=n.kdfSalt,a=O.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(G.oids[e]){case"aes128-CBC":c=16,u=O.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=O.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=O.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=O.des.createDecryptionCipher;break;case"desCBC":c=8,u=O.des.createDecryptionCipher;break}var f=p4(n.prfOid),l=O.pkcs5.pbkdf2(r,s,a,c,f),p=n.encIv,d=u(l);return d.start(p),d};G.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!I.validate(t,n7,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var s=O.util.createBuffer(n.salt),a=O.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,f;switch(e){case G.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,f=O.des.startDecrypting;break;case G.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,f=function(g,y){var m=O.rc2.createDecryptionCipher(g,40);return m.start(y,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=G.pbe.generatePkcs12Key(r,s,1,a,c,l);l.start();var d=G.pbe.generatePkcs12Key(r,s,2,a,u,l);return f(p,d)};G.pbe.opensslDeriveBytes=function(e,t,r,n){if(typeof n>"u"||n===null){if(!("md5"in O.md))throw new Error('"md5" hash algorithm unavailable.');n=O.md.md5.create()}t===null&&(t="");for(var i=[d4(n,e+t)],o=16,s=1;o<r;++s,o+=16)i.push(d4(n,i[s-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=G.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 g4(t)}function g4(e){var t=O.md;switch(e){case"hmacWithSHA224":t=O.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 i7(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,O.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(G.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var r5=nt((zb,e5)=>{var pt=ct();Kr();It();var y0=e5.exports=pt.sha512=pt.sha512||{};pt.md.sha512=pt.md.algorithms.sha512=y0;var j4=pt.sha384=pt.sha512.sha384=pt.sha512.sha384||{};j4.create=function(){return y0.create("SHA-384")};pt.md.sha384=pt.md.algorithms.sha384=j4;pt.sha512.sha256=pt.sha512.sha256||{create:function(){return y0.create("SHA-512/256")}};pt.md["sha512/256"]=pt.md.algorithms["sha512/256"]=pt.sha512.sha256;pt.sha512.sha224=pt.sha512.sha224||{create:function(){return y0.create("SHA-512/224")}};pt.md["sha512/224"]=pt.md.algorithms["sha512/224"]=pt.sha512.sha224;y0.create=function(e){if(t5||yl(),typeof e>"u"&&(e="SHA-512"),!(e in Qr))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=Qr[e],r=null,n=pt.util.createBuffer(),i=new Array(80),o=0;o<80;++o)i[o]=new Array(2);var s=64;switch(e){case"SHA-384":s=48;break;case"SHA-512/256":s=32;break;case"SHA-512/224":s=28;break}var a={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:s,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=pt.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=pt.util.encodeUtf8(c));var f=c.length;a.messageLength+=f,f=[f/4294967296>>>0,f>>>0];for(var l=a.fullMessageLength.length-1;l>=0;--l)a.fullMessageLength[l]+=f[1],f[1]=f[0]+(a.fullMessageLength[l]/4294967296>>>0),a.fullMessageLength[l]=a.fullMessageLength[l]>>>0,f[0]=f[1]/4294967296>>>0;return n.putBytes(c),J4(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=pt.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,f=u&a.blockLength-1;c.putBytes(Bs.substr(0,a.blockLength-f));for(var l,p,d=a.fullMessageLength[0]*8,h=0;h<a.fullMessageLength.length-1;++h)l=a.fullMessageLength[h+1]*8,p=l/4294967296>>>0,d+=p,c.putInt32(d>>>0),d=l>>>0;c.putInt32(d);for(var g=new Array(r.length),h=0;h<r.length;++h)g[h]=r[h].slice(0);J4(g,i,c);var y=pt.util.createBuffer(),m;e==="SHA-512"?m=g.length:e==="SHA-384"?m=g.length-2:m=g.length-4;for(var h=0;h<m;++h)y.putInt32(g[h][0]),(h!==m-1||e!=="SHA-512/224")&&y.putInt32(g[h][1]);return y},a};var Bs=null,t5=!1,Ts=null,Qr=null;function yl(){Bs="\x80",Bs+=pt.util.fillString("\0",128),Ts=[[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]],Qr={},Qr["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],Qr["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],Qr["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],Qr["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],t5=!0}function J4(e,t,r){for(var n,i,o,s,a,c,u,f,l,p,d,h,g,y,m,x,v,T,E,S,L,N,H,z,V,Z,ut,Ft,C,k,P,D,A,F,M,q=r.length();q>=128;){for(C=0;C<16;++C)t[C][0]=r.getInt32()>>>0,t[C][1]=r.getInt32()>>>0;for(;C<80;++C)D=t[C-2],k=D[0],P=D[1],n=((k>>>19|P<<13)^(P>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|P>>>19)^(P<<3|k>>>29)^(k<<26|P>>>6))>>>0,F=t[C-15],k=F[0],P=F[1],o=((k>>>1|P<<31)^(k>>>8|P<<24)^k>>>7)>>>0,s=((k<<31|P>>>1)^(k<<24|P>>>8)^(k<<25|P>>>7))>>>0,A=t[C-7],M=t[C-16],P=i+A[1]+s+M[1],t[C][0]=n+A[0]+o+M[0]+(P/4294967296>>>0)>>>0,t[C][1]=P>>>0;for(g=e[0][0],y=e[0][1],m=e[1][0],x=e[1][1],v=e[2][0],T=e[2][1],E=e[3][0],S=e[3][1],L=e[4][0],N=e[4][1],H=e[5][0],z=e[5][1],V=e[6][0],Z=e[6][1],ut=e[7][0],Ft=e[7][1],C=0;C<80;++C)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=(V^L&(H^V))>>>0,p=(Z^N&(z^Z))>>>0,a=((g>>>28|y<<4)^(y>>>2|g<<30)^(y>>>7|g<<25))>>>0,c=((g<<4|y>>>28)^(y<<30|g>>>2)^(y<<25|g>>>7))>>>0,d=(g&m|v&(g^m))>>>0,h=(y&x|T&(y^x))>>>0,P=Ft+f+p+Ts[C][1]+t[C][1],n=ut+u+l+Ts[C][0]+t[C][0]+(P/4294967296>>>0)>>>0,i=P>>>0,P=c+h,o=a+d+(P/4294967296>>>0)>>>0,s=P>>>0,ut=V,Ft=Z,V=H,Z=z,H=L,z=N,P=S+i,L=E+n+(P/4294967296>>>0)>>>0,N=P>>>0,E=v,S=T,v=m,T=x,m=g,x=y,P=i+s,g=n+o+(P/4294967296>>>0)>>>0,y=P>>>0;P=e[0][1]+y,e[0][0]=e[0][0]+g+(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]+T,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]+z,e[5][0]=e[5][0]+H+(P/4294967296>>>0)>>>0,e[5][1]=P>>>0,P=e[6][1]+Z,e[6][0]=e[6][0]+V+(P/4294967296>>>0)>>>0,e[6][1]=P>>>0,P=e[7][1]+Ft,e[7][0]=e[7][0]+ut+(P/4294967296>>>0)>>>0,e[7][1]=P>>>0,q-=128}}});var C5=nt((SE,T5)=>{T5.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,s){r[o]=s,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 s=r[o];if(s!==void 0)return s;if((s=n[o])!==void 0)return i(o,s),s},set:function(o,s){r[o]!==void 0?r[o]=s:i(o,s)},clear:function(){r=Object.create(null),n=Object.create(null)}}}});var _5=nt((IE,Ms)=>{"use strict";var Zl=Object.prototype.hasOwnProperty,te="~";function E0(){}Object.create&&(E0.prototype=Object.create(null),new E0().__proto__||(te=!1));function Xl(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function R5(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new Xl(r,n||e,i),s=te?te+t:t;return e._events[s]?e._events[s].fn?e._events[s]=[e._events[s],o]:e._events[s].push(o):(e._events[s]=o,e._eventsCount++),e}function X1(e,t){--e._eventsCount===0?e._events=new E0:delete e._events[t]}function Wt(){this._events=new E0,this._eventsCount=0}Wt.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)Zl.call(r,n)&&t.push(te?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};Wt.prototype.listeners=function(t){var r=te?te+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,s=new Array(o);i<o;i++)s[i]=n[i].fn;return s};Wt.prototype.listenerCount=function(t){var r=te?te+t:t,n=this._events[r];return n?n.fn?1:n.length:0};Wt.prototype.emit=function(t,r,n,i,o,s){var a=te?te+t:t;if(!this._events[a])return!1;var c=this._events[a],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,s),!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};Wt.prototype.on=function(t,r,n){return R5(this,t,r,n,!1)};Wt.prototype.once=function(t,r,n){return R5(this,t,r,n,!0)};Wt.prototype.removeListener=function(t,r,n,i){var o=te?te+t:t;if(!this._events[o])return this;if(!r)return X1(this,o),this;var s=this._events[o];if(s.fn)s.fn===r&&(!i||s.once)&&(!n||s.context===n)&&X1(this,o);else{for(var a=0,c=[],u=s.length;a<u;a++)(s[a].fn!==r||i&&!s[a].once||n&&s[a].context!==n)&&c.push(s[a]);c.length?this._events[o]=c.length===1?c[0]:c:X1(this,o)}return this};Wt.prototype.removeAllListeners=function(t){var r;return t?(r=te?te+t:t,this._events[r]&&X1(this,r)):(this._events=new E0,this._eventsCount=0),this};Wt.prototype.off=Wt.prototype.removeListener;Wt.prototype.addListener=Wt.prototype.on;Wt.prefixed=te;Wt.EventEmitter=Wt;typeof Ms<"u"&&(Ms.exports=Wt)});var A9={};Tt(A9,{EventTypes:()=>Ys,MessageType:()=>Qs,Record:()=>Lt,kadDHT:()=>I9,passthroughMapper:()=>ba,removePrivateAddressesMapper:()=>W0,removePublicAddressesMapper:()=>va});var T9=Symbol.for("@libp2p/connection");var i2=Symbol.for("@libp2p/content-routing");var o2=Symbol.for("@libp2p/peer-discovery");var s2=Symbol.for("@libp2p/peer-id");var a2=Symbol.for("@libp2p/peer-routing");var c2;(function(e){e.Accept="accept",e.Ignore="ignore",e.Reject="reject"})(c2||(c2={}));var U9=Symbol.for("@libp2p/transport");var u2;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(u2||(u2={}));var _0=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"},_=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var xi="ERR_INVALID_PARAMETERS";var ee=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 Zt(t,r))}},vi=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},Zt=globalThis.CustomEvent??vi;var tn=(e,...t)=>{try{[...t]}catch{}};function i8(e){return e[Symbol.asyncIterator]!=null}function o8(e){if(i8(e))return(async()=>{for await(let t of e);})();for(let t of e);}var bi=o8;function s8(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 f2=s8;function a8(e){return e[Symbol.asyncIterator]!=null}function c8(e,t){if(a8(e))return async function*(){for await(let a of e)yield t(a)}();let r=f2(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 a of r)yield t(a)}();let s=t;return function*(){yield o;for(let a of r)yield s(a)}()}var en=c8;function Ct(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var P0=globalThis.CustomEvent??Event;async function*hr(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=[],s=Ct(),a=Ct(),c=!1,u,f=!1;i.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of e){if(o.length===r&&(s=Ct(),await s.promise),f)break;let g={done:!1};o.push(g),h().then(y=>{g.done=!0,g.ok=!0,g.value=y,i.dispatchEvent(new P0("task-complete"))},y=>{g.done=!0,g.err=y,i.dispatchEvent(new P0("task-complete"))})}c=!0,i.dispatchEvent(new P0("task-complete"))}catch(h){u=h,i.dispatchEvent(new P0("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,s.resolve(),h.err;s.resolve()}}function*d(){for(;l();)for(let h=0;h<o.length;h++)if(o[h].done){let g=o[h];if(o.splice(h,1),h--,g.ok)yield g.value;else throw f=!0,s.resolve(),g.err;s.resolve()}}for(;;){if(l()||(a=Ct(),await a.promise),u!=null)throw u;if(n?yield*p():yield*d(),c&&o.length===0)break}}var l2="/ipfs/kad/1.0.0",h2="/dht/record",wi="/dht/provider";var L0=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}},rn=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new L0(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 L0(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 Ei=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function nn(e={}){return u8(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 u8(e,t){t=t??{};let r=t.onEnd,n=new rn,i,o,s,a=Ct(),c=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((y,m)=>{o=x=>{o=null,n.push(x);try{y(e(n))}catch(v){m(v)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Ct()})}},u=y=>o!=null?o(y):(n.push(y),i),f=y=>(n=new rn,o!=null?o({error:y}):(n.push({error:y}),i)),l=y=>{if(s)return i;if(t?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:y})},p=y=>s?i:(s=!0,y!=null?f(y):u({done:!0})),d=()=>(n=new rn,p(),{done:!0}),h=y=>(p(y),{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 y=>{let m=y?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let x,v;m!=null&&(x=new Promise((T,E)=>{v=()=>{E(new Ei)},m.addEventListener("abort",v)}));try{await Promise.race([a.promise,x])}finally{v!=null&&m!=null&&m?.removeEventListener("abort",v)}}},r==null)return i;let g=i;return i={[Symbol.asyncIterator](){return this},next(){return g.next()},throw(y){return g.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return g.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(y){return g.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return g.readableLength},onEmpty:y=>g.onEmpty(y)},i}function f8(e){return e[Symbol.asyncIterator]!=null}function l8(...e){let t=[];for(let r of e)f8(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=nn({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 N0=l8;function dr(e,...t){if(e==null)throw new Error("Empty pipeline");if(Si(e)){let n=e;e=()=>n.source}else if(p2(e)||d2(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&Si(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++)Si(r[n])&&(r[n]=d8(r[n]));return h8(...r)}var h8=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},d2=e=>e?.[Symbol.asyncIterator]!=null,p2=e=>e?.[Symbol.iterator]!=null,Si=e=>e==null?!1:e.sink!=null&&e.source!=null,d8=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=nn({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=e.source;if(d2(o))i=async function*(){yield*o,n.end()};else if(p2(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return N0(n,i())}return e.source};function Ge(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 Ii=new Float32Array([-0]),pr=new Uint8Array(Ii.buffer);function g2(e,t,r){Ii[0]=e,t[r]=pr[0],t[r+1]=pr[1],t[r+2]=pr[2],t[r+3]=pr[3]}function y2(e,t){return pr[0]=e[t],pr[1]=e[t+1],pr[2]=e[t+2],pr[3]=e[t+3],Ii[0]}var Ai=new Float64Array([-0]),Ht=new Uint8Array(Ai.buffer);function m2(e,t,r){Ai[0]=e,t[r]=Ht[0],t[r+1]=Ht[1],t[r+2]=Ht[2],t[r+3]=Ht[3],t[r+4]=Ht[4],t[r+5]=Ht[5],t[r+6]=Ht[6],t[r+7]=Ht[7]}function x2(e,t){return Ht[0]=e[t],Ht[1]=e[t+1],Ht[2]=e[t+2],Ht[3]=e[t+3],Ht[4]=e[t+4],Ht[5]=e[t+5],Ht[6]=e[t+6],Ht[7]=e[t+7],Ai[0]}var p8=BigInt(Number.MAX_SAFE_INTEGER),g8=BigInt(Number.MIN_SAFE_INTEGER),re=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 Pr;if(t<p8&&t>g8)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>v2&&(i=0n,++n>v2&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return Pr;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):Pr}},Pr=new re(0,0);Pr.toBigInt=function(){return 0n};Pr.zzEncode=Pr.zzDecode=function(){return this};Pr.length=function(){return 1};var v2=4294967296n;function b2(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 w2(e,t,r){if(r-t<1)return"";let i,o=[],s=0,a;for(;t<r;)a=e[t++],a<128?o[s++]=a:a>191&&a<224?o[s++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,o[s++]=55296+(a>>10),o[s++]=56320+(a&1023)):o[s++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&63,s>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,o)),s=0);return i!=null?(s>0&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))}function Bi(e,t,r){let n=r,i,o;for(let s=0;s<e.length;++s)i=e.charCodeAt(s),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((o=e.charCodeAt(s+1))&64512)===56320?(i=65536+((i&1023)<<10)+(o&1023),++s,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 ye(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function D0(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var Ti=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,ye(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 ye(this,4);return D0(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw ye(this,4);return D0(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw ye(this,4);let t=y2(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw ye(this,4);let t=x2(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 ye(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return w2(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw ye(this,t);this.pos+=t}else do if(this.pos>=this.len)throw ye(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 re(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 ye(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 ye(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 ye(this,8);let t=D0(this.buf,this.pos+=4),r=D0(this.buf,this.pos+=4);return new re(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 Ci(e){return new Ti(e instanceof Uint8Array?e:e.subarray())}function _e(e,t){let r=Ci(e);return t.decode(r)}function Lr(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Ye(e=0){return globalThis.Buffer?.alloc!=null?Lr(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function $t(e=0){return globalThis.Buffer?.allocUnsafe!=null?Lr(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}var Ni={};Tt(Ni,{base10:()=>w8});function y8(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),s=o.charCodeAt(0);if(r[s]!==255)throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);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 g=0,y=0,m=0,x=h.length;m!==x&&h[m]===0;)m++,g++;for(var v=(x-m)*f+1>>>0,T=new Uint8Array(v);m!==x;){for(var E=h[m],S=0,L=v-1;(E!==0||S<y)&&L!==-1;L--,S++)E+=256*T[L]>>>0,T[L]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");y=S,m++}for(var N=v-y;N!==v&&T[N]===0;)N++;for(var H=c.repeat(g);N<v;++N)H+=e.charAt(T[N]);return H}function p(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var g=0;if(h[g]!==" "){for(var y=0,m=0;h[g]===c;)y++,g++;for(var x=(h.length-g)*u+1>>>0,v=new Uint8Array(x);h[g];){var T=r[h.charCodeAt(g)];if(T===255)return;for(var E=0,S=x-1;(T!==0||E<m)&&S!==-1;S--,E++)T+=a*v[S]>>>0,v[S]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=E,g++}if(h[g]!==" "){for(var L=x-m;L!==x&&v[L]===0;)L++;for(var N=new Uint8Array(y+(x-L)),H=y;L!==x;)N[H++]=v[L++];return N}}}function d(h){var g=p(h);if(g)return g;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:p,decode:d}}var m8=y8,x8=m8,S2=x8;var zh=new Uint8Array(0);var I2=(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},Qe=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 A2=e=>new TextEncoder().encode(e),B2=e=>new TextDecoder().decode(e);var Ri=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")}},_i=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 C2(this,t)}},Pi=class{constructor(t){this.decoders=t}or(t){return C2(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`)}},C2=(e,t)=>new Pi({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Li=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Ri(t,r,n),this.decoder=new _i(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},on=({name:e,prefix:t,encode:r,decode:n})=>new Li(e,t,r,n),gr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=S2(r,t);return on({prefix:e,name:t,encode:n,decode:o=>Qe(i(o))})},v8=(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 s=new Uint8Array(o*r/8|0),a=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,a+=r,a>=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},b8=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o},wt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>on({prefix:t,name:e,encode(i){return b8(i,n,r)},decode(i){return v8(i,n,r,e)}});var w8=gr({prefix:"9",name:"base10",alphabet:"0123456789"});var Di={};Tt(Di,{base16:()=>E8,base16upper:()=>S8});var E8=wt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),S8=wt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ki={};Tt(ki,{base2:()=>I8});var I8=wt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ui={};Tt(Ui,{base256emoji:()=>R8});var R2=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}"),A8=R2.reduce((e,t,r)=>(e[r]=t,e),[]),B8=R2.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function T8(e){return e.reduce((t,r)=>(t+=A8[r],t),"")}function C8(e){let t=[];for(let r of e){let n=B8[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var R8=on({prefix:"\u{1F680}",name:"base256emoji",encode:T8,decode:C8});var Oi={};Tt(Oi,{base32:()=>We,base32hex:()=>N8,base32hexpad:()=>k8,base32hexpadupper:()=>U8,base32hexupper:()=>D8,base32pad:()=>P8,base32padupper:()=>L8,base32upper:()=>_8,base32z:()=>O8});var We=wt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),_8=wt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),P8=wt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),L8=wt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),N8=wt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),D8=wt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),k8=wt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),U8=wt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),O8=wt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Fi={};Tt(Fi,{base36:()=>F8,base36upper:()=>M8});var F8=gr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),M8=gr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Mi={};Tt(Mi,{base58btc:()=>Pt,base58flickr:()=>K8});var Pt=gr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),K8=gr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ki={};Tt(Ki,{base64:()=>qn,base64pad:()=>V8,base64url:()=>q8,base64urlpad:()=>z8});var qn=wt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),V8=wt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),q8=wt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),z8=wt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Vi={};Tt(Vi,{base8:()=>H8});var H8=wt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var qi={};Tt(qi,{identity:()=>$8});var $8=on({prefix:"\0",name:"identity",encode:e=>B2(e),decode:e=>A2(e)});var id=new TextEncoder,od=new TextDecoder;var Hi={};Tt(Hi,{identity:()=>yr});var Q8=L2,_2=128,W8=127,Z8=~W8,X8=Math.pow(2,31);function L2(e,t,r){t=t||[],r=r||0;for(var n=r;e>=X8;)t[r++]=e&255|_2,e/=128;for(;e&Z8;)t[r++]=e&255|_2,e>>>=7;return t[r]=e|0,L2.bytes=r-n+1,t}var J8=zi,j8=128,P2=127;function zi(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a)throw zi.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&P2)<<i:(s&P2)*Math.pow(2,i),i+=7}while(s>=j8);return zi.bytes=o-n,r}var t6=Math.pow(2,7),e6=Math.pow(2,14),r6=Math.pow(2,21),n6=Math.pow(2,28),i6=Math.pow(2,35),o6=Math.pow(2,42),s6=Math.pow(2,49),a6=Math.pow(2,56),c6=Math.pow(2,63),u6=function(e){return e<t6?1:e<e6?2:e<r6?3:e<n6?4:e<i6?5:e<o6?6:e<s6?7:e<a6?8:e<c6?9:10},f6={encode:Q8,decode:J8,encodingLength:u6},l6=f6,zn=l6;var Hn=(e,t=0)=>[zn.decode(e,t),zn.decode.bytes],sn=(e,t,r=0)=>(zn.encode(e,t,r),t),an=e=>zn.encodingLength(e);var Pe=(e,t)=>{let r=t.byteLength,n=an(e),i=n+an(r),o=new Uint8Array(i+r);return sn(e,o,0),sn(r,o,n),o.set(t,i),new cn(e,r,t,o)},Nr=e=>{let t=Qe(e),[r,n]=Hn(t),[i,o]=Hn(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new cn(r,i,s,t)},N2=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&I2(e.bytes,r.bytes)}},cn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var D2=0,h6="identity",k2=Qe,d6=e=>Pe(D2,k2(e)),yr={code:D2,name:h6,encode:k2,digest:d6};var Yi={};Tt(Yi,{sha256:()=>xt,sha512:()=>p6});var Gi=({name:e,code:t,encode:r})=>new $i(e,t,r),$i=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?Pe(this.code,r):r.then(n=>Pe(this.code,n))}else throw Error("Unknown type, must be binary type")}};var O2=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),xt=Gi({name:"sha2-256",code:18,encode:O2("SHA-256")}),p6=Gi({name:"sha2-512",code:19,encode:O2("SHA-512")});var F2=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return y6(r,Qi(e),t||Pt.encoder);default:return m6(r,Qi(e),t||We.encoder)}};var M2=new WeakMap,Qi=e=>{let t=M2.get(e);if(t==null){let r=new Map;return M2.set(e,r),r}return t},Xt=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!==$n)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==x6)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=Pe(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&&N2(t.multihash,n.multihash)}toString(t){return F2(this,t)}toJSON(){return{"/":F2(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:s}=r;return new e(n,i,o,s||K2(n,i,o.bytes))}else if(r[v6]===!0){let{version:n,multihash:i,code:o}=r,s=Nr(i);return e.create(n,o,s)}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!==$n)throw new Error(`Version 0 CID must use dag-pb (code: ${$n}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=K2(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,$n,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=Qe(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),s=new cn(r.multihashCode,r.digestSize,o,i);return[r.version===0?e.createV0(s):e.createV1(r.codec,s),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[l,p]=Hn(t.subarray(r));return r+=p,l},i=n(),o=$n;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=r,a=n(),c=n(),u=r+c,f=u-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(t,r){let[n,i]=g6(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 Qi(o).set(n,t),o}},g6=(e,t)=>{switch(e[0]){case"Q":{let r=t||Pt;return[Pt.prefix,r.decode(`${Pt.prefix}${e}`)]}case Pt.prefix:{let r=t||Pt;return[Pt.prefix,r.decode(e)]}case We.prefix:{let r=t||We;return[We.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)]}}},y6=(e,t,r)=>{let{prefix:n}=r;if(n!==Pt.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},m6=(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},$n=112,x6=18,K2=(e,t,r)=>{let n=an(e),i=n+an(t),o=new Uint8Array(i+r.byteLength);return sn(e,o,0),sn(t,o,n),o.set(r,i),o},v6=Symbol.for("@ipld/js-cid/CID");var Vt={...qi,...ki,...Vi,...Ni,...Di,...Oi,...Fi,...Mi,...Ki,...Ui},wd={...Yi,...Hi};function q2(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var V2=q2("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Wi=q2("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=$t(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),b6={utf8:V2,"utf-8":V2,hex:Vt.base16,latin1:Wi,ascii:Wi,binary:Wi,...Vt},U0=b6;function Gn(e,t="utf8"){let r=U0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Lr(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function Zi(e){let t=e??8192,r=t>>>1,n,i=t;return function(s){if(s<1||s>r)return $t(s);i+s>t&&(n=$t(t),i=0);let a=n.subarray(i,i+=s);return i&7&&(i=(i|7)+1),a}}var kr=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Xi(){}var ji=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},w6=Zi();function E6(e){return globalThis.Buffer!=null?$t(e):w6(e)}var Wn=class{len;head;tail;states;constructor(){this.len=0,this.head=new kr(Xi,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new kr(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new to((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(Yn,10,re.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=re.fromBigInt(t);return this._push(Yn,r.length(),r)}uint64Number(t){let r=re.fromNumber(t);return this._push(Yn,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=re.fromBigInt(t).zzEncode();return this._push(Yn,r.length(),r)}sint64Number(t){let r=re.fromNumber(t).zzEncode();return this._push(Yn,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Ji,1,t?1:0)}fixed32(t){return this._push(Qn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=re.fromBigInt(t);return this._push(Qn,4,r.lo)._push(Qn,4,r.hi)}fixed64Number(t){let r=re.fromNumber(t);return this._push(Qn,4,r.lo)._push(Qn,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(g2,4,t)}double(t){return this._push(m2,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Ji,1,0):this.uint32(r)._push(I6,r,t)}string(t){let r=b2(t);return r!==0?this.uint32(r)._push(Bi,r,t):this._push(Ji,1,0)}fork(){return this.states=new ji(this),this.head=this.tail=new kr(Xi,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 kr(Xi,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=E6(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Ji(e,t,r){t[r]=e&255}function S6(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var to=class extends kr{next;constructor(t,r){super(S6,t,r),this.next=void 0}};function Yn(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 Qn(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 I6(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(Wn.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(A6,t,e),this},Wn.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(B6,t,e),this});function A6(e,t,r){t.set(e,r)}function B6(e,t,r){e.length<40?Bi(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(Gn(e),r)}function eo(){return new Wn}function Le(e,t){let r=eo();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var un;(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"})(un||(un={}));function O0(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function fn(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(o,s){let a=t(o);s.int32(a)},n=function(o){let s=o.int32();return t(s)};return O0("enum",un.VARINT,r,n)}function Ne(e,t){return O0("message",un.LENGTH_DELIMITED,e,t)}var Zn=class extends Error{code;constructor(t,r,n){super(t,n),this.code=r}};function De(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function z2(e=0){return globalThis.Buffer?.alloc!=null?De(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function ln(e=0){return globalThis.Buffer?.allocUnsafe!=null?De(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}var H2;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((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 s=r.uint32();switch(s>>>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(s&7);break}}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(H2||(H2={}));var X;(function(e){e.PUT_VALUE="PUT_VALUE",e.GET_VALUE="GET_VALUE",e.ADD_PROVIDER="ADD_PROVIDER",e.GET_PROVIDERS="GET_PROVIDERS",e.FIND_NODE="FIND_NODE",e.PING="PING"})(X||(X={}));var F0;(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"})(F0||(F0={}));(function(e){e.codec=()=>fn(F0)})(X||(X={}));var dn;(function(e){e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTED="CONNECTED",e.CAN_CONNECT="CAN_CONNECT",e.CANNOT_CONNECT="CANNOT_CONNECT"})(dn||(dn={}));var ro;(function(e){e[e.NOT_CONNECTED=0]="NOT_CONNECTED",e[e.CONNECTED=1]="CONNECTED",e[e.CAN_CONNECT=2]="CAN_CONNECT",e[e.CANNOT_CONNECT=3]="CANNOT_CONNECT"})(ro||(ro={}));(function(e){e.codec=()=>fn(ro)})(dn||(dn={}));var hn;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.id!=null&&r.id.byteLength>0&&(n.uint32(10),n.bytes(r.id)),r.multiaddrs!=null)for(let o of r.multiaddrs)n.uint32(18),n.bytes(o);r.connection!=null&&(n.uint32(24),dn.codec().encode(r.connection,n)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={id:z2(0),multiaddrs:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:{i.id=r.bytes();break}case 2:{i.multiaddrs.push(r.bytes());break}case 3:{i.connection=dn.codec().decode(r);break}default:{r.skipType(s&7);break}}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(hn||(hn={}));var ue;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.type!=null&&F0[r.type]!==0&&(n.uint32(8),X.codec().encode(r.type,n)),r.clusterLevel!=null&&(n.uint32(80),n.int32(r.clusterLevel)),r.key!=null&&(n.uint32(18),n.bytes(r.key)),r.record!=null&&(n.uint32(26),n.bytes(r.record)),r.closer!=null)for(let o of r.closer)n.uint32(66),hn.codec().encode(o,n);if(r.providers!=null)for(let o of r.providers)n.uint32(74),hn.codec().encode(o,n);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={type:X.PUT_VALUE,closer:[],providers:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:{i.type=X.codec().decode(r);break}case 10:{i.clusterLevel=r.int32();break}case 2:{i.key=r.bytes();break}case 3:{i.record=r.bytes();break}case 8:{i.closer.push(hn.codec().decode(r,r.uint32()));break}case 9:{i.providers.push(hn.codec().decode(r,r.uint32()));break}default:{r.skipType(s&7);break}}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(ue||(ue={}));function no(e,t={}){let r={...e,name:"SEND_QUERY",type:0,messageName:e.type,messageType:X[e.type]};return t.onProgress?.(new Zt("kad-dht:query:send-query",{detail:r})),r}function Xn(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 Zt("kad-dht:query:peer-response",{detail:r})),r}function M0(e,t={}){let r={...e,name:"FINAL_PEER",type:2};return t.onProgress?.(new Zt("kad-dht:query:final-peer",{detail:r})),r}function oe(e,t={}){let r={...e,name:"QUERY_ERROR",type:3};return t.onProgress?.(new Zt("kad-dht:query:query-error",{detail:r})),r}function io(e,t={}){let r={...e,name:"PROVIDER",type:4};return t.onProgress?.(new Zt("kad-dht:query:provider",{detail:r})),r}function Jn(e,t={}){let r={...e,name:"VALUE",type:5};return t.onProgress?.(new Zt("kad-dht:query:value",{detail:r})),r}function oo(e,t={}){let r={...e,name:"DIAL_PEER",type:7};return t.onProgress?.(new Zt("kad-dht:query:dial-peer",{detail:r})),r}var jn;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((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 s=r.uint32();switch(s>>>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(s&7);break}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(jn||(jn={}));function $2(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"),s=String(e.getUTCSeconds()).padStart(2,"0"),a=e.getUTCMilliseconds(),c=String(a*1e3*1e3).padStart(9,"0");return`${t}-${r}-${n}T${i}:${o}:${s}.${c}Z`}function G2(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),s=parseInt(r[4],10),a=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,s,a,c,u))}var Lt=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 jn.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:$2(this.timeReceived)}}static deserialize(t){let r=jn.decode(t);return new e(r.key,r.value,new Date(r.timeReceived))}static fromDeserialized(t){let r=G2(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)}};function Q2(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var Y2=Q2("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),so=Q2("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=ln(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),C6={utf8:Y2,"utf-8":Y2,hex:Vt.base16,latin1:so,ascii:so,binary:so,...Vt},K0=C6;function Dt(e,t="utf8"){let r=K0[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)}function W2(e,t,r){if(r.length===0){let s="No records given";throw new _(s,"ERR_NO_RECORDS_RECEIVED")}let i=Dt(t).split("/");if(i.length<3){let s="Record key does not have a selector function";throw new _(s,"ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")}let o=e[i[1].toString()];if(o==null){let s=`No selector function configured for key type "${i[1]}"`;throw new _(s,"ERR_UNRECOGNIZED_KEY_PREFIX")}return r.length===1?0:o(t,r)}function R6(e,t){return 0}var Z2={pk:R6};async function pn(e,t){let r=t.key,i=Dt(r).split("/");if(i.length<3)return;let o=e[i[1].toString()];if(o==null){let s=`No validator available for key type "${i[1]}"`;throw new _(s,"ERR_INVALID_RECORD_KEY_TYPE")}await o(r,t.value)}var _6=async(e,t)=>{if(!(e instanceof Uint8Array))throw new _('"key" must be a Uint8Array',"ERR_INVALID_RECORD_KEY_NOT_BUFFER");if(e.byteLength<5)throw new _("invalid public key record","ERR_INVALID_RECORD_KEY_TOO_SHORT");if(Dt(e.subarray(0,4))!=="/pk/")throw new _("key was not prefixed with /pk/","ERR_INVALID_RECORD_KEY_BAD_PREFIX");let n=e.slice(4),i=await xt.digest(t);if(!Ge(n,i.bytes))throw new _("public key does not match passed in key","ERR_INVALID_RECORD_HASH_MISMATCH")},X2={pk:_6};function ao(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 P6=Symbol.for("nodejs.util.inspect.custom"),J2=Object.values(Vt).map(e=>e.decoder).reduce((e,t)=>e.or(t),Vt.identity.decoder),j2=114,co=36,uo=37,t0=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()})`}[s2]=!0;toString(){return this.string==null&&(this.string=Pt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Xt.createV1(j2,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return ao(this.multihash.bytes,t);if(typeof t=="string")return Et(t).equals(this);if(t?.multihash?.bytes!=null)return ao(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[P6](){return`PeerId(${this.toString()})`}},gn=class extends t0{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},yn=class extends t0{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},mn=class extends t0{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function Et(e,t){if(t=t??J2,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Nr(Pt.decode(`z${e}`));return e.startsWith("12D")?new yn({multihash:r}):e.startsWith("16U")?new mn({multihash:r}):new gn({multihash:r})}return Ze(J2.decode(e))}function Ze(e){try{let t=Nr(e);if(t.code===yr.code){if(t.digest.length===co)return new yn({multihash:t});if(t.digest.length===uo)return new mn({multihash:t})}if(t.code===xt.code)return new gn({multihash:t})}catch{return L6(Xt.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function L6(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==j2)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===xt.code)return new gn({multihash:e.multihash});if(t.code===yr.code){if(t.digest.length===co)return new yn({multihash:e.multihash});if(t.digest.length===uo)return new mn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function ta(e,t){return e.length===co?new yn({multihash:Pe(yr.code,e),privateKey:t}):e.length===uo?new mn({multihash:Pe(yr.code,e),privateKey:t}):new gn({multihash:await xt.digest(e),publicKey:e,privateKey:t})}function V0(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function ea(e=0){return globalThis.Buffer?.allocUnsafe!=null?V0(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function na(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var ra=na("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),fo=na("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=ea(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),N6={utf8:ra,"utf-8":ra,hex:Vt.base16,latin1:fo,ascii:fo,binary:fo,...Vt},q0=N6;function ia(e,t="utf8"){let r=q0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?V0(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function oa(e,t="utf8"){let r=q0[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 Xe="/",sa=new TextEncoder().encode(Xe),z0=sa[0],xn=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=ia(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]!==z0)throw new Error("Invalid key")}toString(t="utf8"){return oa(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(Math.random().toString().substring(2))}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=sa),this._buf[0]!==z0){let t=new Uint8Array(this._buf.byteLength+1);t.fill(z0,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===z0;)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],s=n[i];if(o<s)return!0;if(o>s)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 D6(this.baseNamespace())}name(){return k6(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(),...U6(t.map(r=>r.namespaces()))])}};function D6(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function k6(e){let t=e.split(":");return t[t.length-1]}function U6(e){return[].concat(...e)}var ya=bt(aa(),1);var ca="[a-fA-F\\d:]",mr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${ca})|(?<=${ca})(?=\\s|$))`:"",me="(?: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}",Rt="[a-fA-F\\d]{1,4}",H0=`
|
|
16
16
|
(?:
|
|
17
|
-
(?:${
|
|
18
|
-
(?:${
|
|
19
|
-
(?:${
|
|
20
|
-
(?:${
|
|
21
|
-
(?:${
|
|
22
|
-
(?:${
|
|
23
|
-
(?:${
|
|
24
|
-
(?::(?:(?::${
|
|
17
|
+
(?:${Rt}:){7}(?:${Rt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
|
|
18
|
+
(?:${Rt}:){6}(?:${me}|:${Rt}|:)| // 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
|
|
19
|
+
(?:${Rt}:){5}(?::${me}|(?::${Rt}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
|
|
20
|
+
(?:${Rt}:){4}(?:(?::${Rt}){0,1}:${me}|(?::${Rt}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
|
|
21
|
+
(?:${Rt}:){3}(?:(?::${Rt}){0,2}:${me}|(?::${Rt}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
|
|
22
|
+
(?:${Rt}:){2}(?:(?::${Rt}){0,3}:${me}|(?::${Rt}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
|
|
23
|
+
(?:${Rt}:){1}(?:(?::${Rt}){0,4}:${me}|(?::${Rt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
|
|
24
|
+
(?::(?:(?::${Rt}){0,5}:${me}|(?::${Rt}){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(),L6=new RegExp(`(?:^${ye}$)|(?:^${K0}$)`),N6=new RegExp(`^${ye}$`),D6=new RegExp(`^${K0}$`),io=e=>e&&e.exact?L6:new RegExp(`(?:${pr(e)}${ye}${pr(e)})|(?:${pr(e)}${K0}${pr(e)})`,"g");io.v4=e=>e&&e.exact?N6:new RegExp(`${pr(e)}${ye}${pr(e)}`,"g");io.v6=e=>e&&e.exact?D6:new RegExp(`${pr(e)}${K0}${pr(e)}`,"g");var j2=io;var V0=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,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="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||(s+=1,r!==void 0&&s>r))return}if(s!==0)return!n&&c&&s>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 s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return r[i]=s[0],r[i+1]=s[1],r[i+2]=s[2],r[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(n+2),[a]=t(o.subarray(0,s));return r.set(o.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var ta=45,k6=15,gn=new V0;function oo(e){if(!(e.length>k6))return gn.new(e).parseWith(()=>gn.readIPv4Addr())}function so(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>ta))return gn.new(e).parseWith(()=>gn.readIPv6Addr())}function q0(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>ta))return gn.new(e).parseWith(()=>gn.readIPAddr())}function ea(e){return!!oo(e)}function ra(e){return!!so(e)}function yn(e){return!!q0(e)}var aa=Et(ia(),1),{isValid:U6,parse:O6}=aa.default,F6=["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"],M6=F6.map(e=>new sa.Netmask(e));function K6(e){for(let t of M6)if(t.contains(e))return!0;return!1}function oa(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 ca=e=>{if(U6(e)){let t=O6(e);if(t.kind()==="ipv4")return K6(t.toNormalizedString());if(t.kind()==="ipv6")return oa(e)}else if(yn(e)&&j2.v6().test(e))return oa(e)};var H0=ca;function oe(e,t){if(globalThis.Buffer!=null)return Le(globalThis.Buffer.concat(e,t));t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=an(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return Le(r)}var V6=Bt("/pk/");function $0(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=H0(n);return i==null?!0:!i})}}function ua(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=H0(n);return i??!1})}}function fa(e){return e}async function gr(e){return(await bt.digest(e)).digest}async function me(e){return gr(e.toBytes())}function Ye(e){return new pn(`${o2}/${W(e,"base32")}`,!1)}function la(e){return oe([V6,e.toBytes()])}function ha(e){return W(e.subarray(0,4))==="/pk/"}function da(e){return $e(e.subarray(4))}function ao(e,t){let r=new Date;return new kt(e,t,r).serialize()}function pa(e,t=100){let r;return()=>{clearTimeout(r),r=setTimeout(()=>{e()},t)}}var q6=290,z6=54,H6=55,$6=56,G6=4,Y6=41;function ga(e){let t=e.stringTuples();for(let r of t)if(r[0]===q6)return!1;if(t[0][0]===z6||t[0][0]===H6||t[0][0]===$6)return!0;if(t[0][0]===G6||t[0][0]===Y6){let r=H0(`${t[0][1]}`);return r==null||!r}return!1}var G0=class{log;components;validators;selectors;peerRouting;queryManager;network;constructor(t,r){let{validators:n,selectors:i,peerRouting:o,queryManager:s,network:a,logPrefix:c}=r;this.components=t,this.log=t.logger.forComponent(`${c}:content-fetching`),this.validators=n,this.selectors=i,this.peerRouting=o,this.queryManager=s,this.network=a}async putLocal(t,r){let n=Ye(t);await this.components.datastore.put(n,r)}async getLocal(t){this.log("getLocal %b",t);let r=Ye(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=kt.deserialize(n);return await fn(this.validators,i),i}async*sendCorrectionRecord(t,r,n,i={}){this.log("sendCorrection for %b",t);let o=ao(t,n);for(let{value:s,from:a}of r){if(vt(s,n)){this.log("record was ok");continue}if(this.components.peerId.equals(a)){try{let f=Ye(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={type:J.PUT_VALUE,key:t,record:o};for await(let f of this.network.sendRequest(a,u,i))f.name==="PEER_RESPONSE"&&f.record!=null&&vt(f.record.value,kt.deserialize(o).value)&&(c=!0),yield f;c||(yield ie({from:a,error:new _("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=ao(t,r),o=Ye(t);this.log(`storing record for key ${o.toString()}`),await this.components.datastore.put(o,i.subarray()),yield*fr(this.peerRouting.getClosestPeers(t,{signal:n.signal}),s=>Xr(s,a=>async()=>{if(a.name!=="FINAL_PEER")return[a];let c=[],u={type:J.PUT_VALUE,key:t,record:i};this.log("send put to %p",a.peer.id);for await(let f of this.network.sendRequest(a.peer.id,u,n))c.push(f),f.name==="PEER_RESPONSE"&&(f.record!=null&&vt(f.record.value,kt.deserialize(i).value)||c.push(ie({from:a.peer.id,error:new _("value not put correctly","ERR_PUT_VALUE_INVALID")},n)));return c}),s=>ur(s,{ordered:!1,concurrency:3}),async function*(s){for await(let a of s)yield*a})}async*get(t,r={}){this.log("get %b",t);let n=[];for await(let a of this.getMany(t,r))a.name==="VALUE"&&n.push(a),yield a;if(n.length===0)return;let i=n.map(a=>a.value),o=0;try{o=H2(this.selectors,t,i)}catch(a){if(a.code!=="ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")throw a}let s=i[o];if(this.log("GetValue %b %b",t,s),s==null)throw new _("best value was not found","ERR_NOT_FOUND");yield*this.sendCorrectionRecord(t,n,s,r),yield n[o]}async*getMany(t,r={}){this.log("getMany values for %b",t);try{let o=await this.getLocal(t);yield Qn({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:s}){for await(let a of n.peerRouting.getValueOrPeers(o,t,{signal:s}))yield a,a.name==="PEER_RESPONSE"&&a.record!=null&&(yield Qn({from:o,value:a.record.value},r))};yield*this.queryManager.run(t,i,r)}};function Qe(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 xn=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){return this.map.delete(t.toString())}entries(){return Qe(this.map.entries(),t=>[It(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,It(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 Qe(this.map.keys(),t=>It(t))}values(){return this.map.values()}get size(){return this.map.size}};var xe=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 Qe(this.set.entries(),t=>{let r=It(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=It(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Qe(this.set.values(),t=>It(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 Y0=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return Qe(this.list.entries(),t=>It(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return Qe(this.list.entries(),t=>[t[0],It(t[1])])}every(t){return this.list.every((r,n)=>t(It(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let o=It(n);t(o,i,this)&&r.push(o)}),r}find(t){let r=this.list.find((n,i)=>t(It(n),i,this));if(r!=null)return It(r)}findIndex(t){return this.list.findIndex((r,n)=>t(It(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(It(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 It(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return It(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}clear(){this.list=[]}get length(){return this.list.length}};function ya(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}function vn(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Q0(e=0){return globalThis.Buffer?.allocUnsafe!=null?vn(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function xa(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var ma=xa("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),uo=xa("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=Q0(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),Q6={utf8:ma,"utf-8":ma,hex:ee.base16,latin1:uo,ascii:uo,binary:uo,...ee},W0=Q6;function re(e,t="utf8"){let r=W0[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)}function va(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function ba(e=0){return globalThis.Buffer?.allocUnsafe!=null?va(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}var W6=Math.pow(2,7),Z6=Math.pow(2,14),X6=Math.pow(2,21),fo=Math.pow(2,28),lo=Math.pow(2,35),ho=Math.pow(2,42),po=Math.pow(2,49),ot=128,$t=127;function Gt(e){if(e<W6)return 1;if(e<Z6)return 2;if(e<X6)return 3;if(e<fo)return 4;if(e<lo)return 5;if(e<ho)return 6;if(e<po)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function J6(e,t,r=0){switch(Gt(e)){case 8:t[r++]=e&255|ot,e/=128;case 7:t[r++]=e&255|ot,e/=128;case 6:t[r++]=e&255|ot,e/=128;case 5:t[r++]=e&255|ot,e/=128;case 4:t[r++]=e&255|ot,e>>>=7;case 3:t[r++]=e&255|ot,e>>>=7;case 2:t[r++]=e&255|ot,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function j6(e,t,r=0){switch(Gt(e)){case 8:t.set(r++,e&255|ot),e/=128;case 7:t.set(r++,e&255|ot),e/=128;case 6:t.set(r++,e&255|ot),e/=128;case 5:t.set(r++,e&255|ot),e/=128;case 4:t.set(r++,e&255|ot),e>>>=7;case 3:t.set(r++,e&255|ot),e>>>=7;case 2:t.set(r++,e&255|ot),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&$t,r<ot||(r=e[t+1],n+=(r&$t)<<7,r<ot)||(r=e[t+2],n+=(r&$t)<<14,r<ot)||(r=e[t+3],n+=(r&$t)<<21,r<ot)||(r=e[t+4],n+=(r&$t)*fo,r<ot)||(r=e[t+5],n+=(r&$t)*lo,r<ot)||(r=e[t+6],n+=(r&$t)*ho,r<ot)||(r=e[t+7],n+=(r&$t)*po,r<ot))return n;throw new RangeError("Could not decode varint")}function ec(e,t){let r=e.get(t),n=0;if(n+=r&$t,r<ot||(r=e.get(t+1),n+=(r&$t)<<7,r<ot)||(r=e.get(t+2),n+=(r&$t)<<14,r<ot)||(r=e.get(t+3),n+=(r&$t)<<21,r<ot)||(r=e.get(t+4),n+=(r&$t)*fo,r<ot)||(r=e.get(t+5),n+=(r&$t)*lo,r<ot)||(r=e.get(t+6),n+=(r&$t)*ho,r<ot)||(r=e.get(t+7),n+=(r&$t)*po,r<ot))return n;throw new RangeError("Could not decode varint")}function Ne(e,t,r=0){return t==null&&(t=ba(Gt(e))),t instanceof Uint8Array?J6(e,t,r):j6(e,t,r)}function se(e,t=0){return e instanceof Uint8Array?tc(e,t):ec(e,t)}function We(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=Q0(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return vn(r)}var dy=parseInt("0xFFFF",16),py=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function go(e,t="utf8"){let r=W0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?vn(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var Sa=ea,sc=ra,yo=function(e){let t=0;if(e=e.toString().trim(),Sa(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=Sa(r[n]),s;o&&(s=yo(r[n]),r[n]=re(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,re(s.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(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")},Ia=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 wn={},mo={},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);mo[t.code]=t,wn[t.name]=t});function uc(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function ct(e){if(typeof e=="number"){if(mo[e]!=null)return mo[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(wn[e]!=null)return wn[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var Jy=ct("ip4"),jy=ct("ip6"),tm=ct("ipcidr");function vo(e,t){switch(ct(e).code){case 4:case 41:return lc(t);case 42:return Ta(t);case 6:case 273:case 33:case 132:return Ra(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Ta(t);case 421:return gc(t);case 444:return Ca(t);case 445:return Ca(t);case 466:return pc(t);default:return re(t,"base16")}}function bo(e,t){switch(ct(e).code){case 4:return Aa(t);case 41:return Aa(t);case 42:return Ba(t);case 6:case 273:case 33:case 132:return wo(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Ba(t);case 421:return hc(t);case 444:return yc(t);case 445:return mc(t);case 466:return dc(t);default:return go(t,"base16")}}var xo=Object.values(ee).map(e=>e.decoder),fc=function(){let e=xo[0].or(xo[1]);return xo.slice(2).forEach(t=>e=e.or(t)),e}();function Aa(e){if(!yn(e))throw new Error("invalid ip address");return yo(e)}function lc(e){let t=Ia(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!yn(t))throw new Error("invalid ip address");return t}function wo(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function Ra(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function Ba(e){let t=go(e),r=Uint8Array.from(Ne(t.length));return We([r,t],r.length+t.length)}function Ta(e){let t=se(e);if(e=e.slice(Gt(t)),e.length!==t)throw new Error("inconsistent lengths");return re(e)}function hc(e){let t;e[0]==="Q"||e[0]==="1"?t=_r(Dt.decode(`z${e}`)).bytes:t=Wt.parse(e).multihash.bytes;let r=Uint8Array.from(Ne(t.length));return We([r,t],r.length+t.length)}function dc(e){let t=fc.decode(e),r=Uint8Array.from(Ne(t.length));return We([r,t],r.length+t.length)}function pc(e){let t=se(e),r=e.slice(Gt(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+re(r,"base64url")}function gc(e){let t=se(e),r=e.slice(Gt(t));if(r.length!==t)throw new Error("inconsistent lengths");return re(r,"base58btc")}function yc(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=He.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=wo(n);return We([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=He.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=wo(n);return We([r,i],r.length+i.length)}function Ca(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=re(t,"base32"),i=Ra(r);return`${n}:${i}`}function _a(e){e=Eo(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 s=i[o],a=ct(s);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(o++,o>=i.length)throw La("invalid address: "+e);if(a.path===!0){n=Eo(i.slice(o).join("/")),t.push([a.code,bo(a.code,n)]),r.push([a.code,n]);break}let c=bo(a.code,i[o]);t.push([a.code,c]),r.push([a.code,vo(a.code,c)])}return{string:Pa(r),bytes:Io(t),tuples:t,stringTuples:r,path:n}}function So(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=se(e,i),s=Gt(o),a=ct(o),c=xc(a,e.slice(i+s));if(c===0){t.push([o]),r.push([o]),i+=s;continue}let u=e.slice(i+s,i+s+c);if(i+=c+s,i>e.length)throw La("Invalid address Uint8Array: "+re(e,"base16"));t.push([o,u]);let f=vo(o,u);if(r.push([o,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(e),string:Pa(r),tuples:t,stringTuples:r,path:n}}function Pa(e){let t=[];return e.map(r=>{let n=ct(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),Eo(t.join("/"))}function Io(e){return We(e.map(t=>{let r=ct(t[0]),n=Uint8Array.from(Ne(r.code));return t.length>1&&t[1]!=null&&(n=We([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+Gt(r)}}function Eo(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function La(e){return new Error("Error parsing address: "+e)}var vc=Symbol.for("nodejs.util.inspect.custom"),Ao=Symbol.for("@multiformats/js-multiaddr/multiaddr"),bc=[ct("dns").code,ct("dns4").code,ct("dns6").code,ct("dnsaddr").code],Z0=class e{bytes;#t;#o;#i;#a;[Ao]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=So(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=_a(t)}else if(Da(t))r=So(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#o=r.tuples,this.#i=r.stringTuples,this.#a=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",s=ct("tcp"),a=ct("udp"),c=ct("ip4"),u=ct("ip6"),f=ct("dns6"),l=ct("ip6zone");for(let[d,h]of this.stringTuples())d===l.code&&(o=`%${h??""}`),bc.includes(d)&&(r=s.name,i=443,n=`${h??""}${o}`,t=d===f.code?6:4),(d===s.code||d===a.code)&&(r=ct(d).name,i=parseInt(h??"")),(d===c.code||d===u.code)&&(r=ct(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.#o.map(([t])=>Object.assign({},ct(t)))}protoCodes(){return this.#o.map(([t])=>t)}protoNames(){return this.#o.map(([t])=>ct(t).name)}tuples(){return this.#o}stringTuples(){return this.#i}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(Io(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===wn.p2p.code&&t.push([n,i]),n===wn["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?re(Dt.decode(`z${n}`),"base58btc"):re(Wt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(t){return ya(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=Na.get(r.name);if(n==null)throw new _(`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})`}};var Na=new Map;function Da(e){return!!e?.[Ao]}function Jn(e){return new Z0(e)}function ka(e,t){return{id:e.id.toBytes(),multiaddrs:(e.multiaddrs??[]).map(n=>n.bytes),connection:t}}function jn(e){if(e.id==null)throw new Error("Invalid peer in message");return{id:$e(e.id),multiaddrs:(e.multiaddrs??[]).map(t=>Jn(t))}}var X0=class{log;components;network;peerRouting;queryManager;routingTable;providers;constructor(t,r){let{network:n,peerRouting:i,queryManager:o,routingTable:s,providers:a,logPrefix:c}=r;this.components=t,this.log=t.logger.forComponent(`${c}:content-routing`),this.network=n,this.peerRouting=i,this.queryManager=o,this.routingTable=s,this.providers=a}async*provide(t,r,n={}){this.log("provide %s",t),await this.providers.addProvider(t,this.components.peerId);let i={type:J.ADD_PROVIDER,key:t.multihash.bytes,providers:[ka({id:this.components.peerId,multiaddrs:r})]},o=0,s=a=>async()=>{if(a.name!=="FINAL_PEER")return[a];let c=[];this.log("putProvider %s to %p",t,a.peer.id);try{this.log("sending provider record for %s to %p",t,a.peer.id);for await(let u of this.network.sendMessage(a.peer.id,i,n))u.name==="PEER_RESPONSE"&&(this.log("sent provider record for %s to %p",t,a.peer.id),o++),c.push(u)}catch(u){this.log.error("error sending provide record to peer %p",a.peer.id,u),c.push(ie({from:a.peer.id,error:u},n))}return c};yield*fr(this.peerRouting.getClosestPeers(t.multihash.bytes,n),a=>Xr(a,c=>s(c)),a=>ur(a,{ordered:!1,concurrency:3}),async function*(a){for await(let c of a)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 s=await this.providers.getProviders(t);if(s.length>0){let u=[];for(let f of s.slice(0,n))try{let l=await this.components.peerStore.get(f);u.push({id:f,multiaddrs:l.addresses.map(({multiaddr:p})=>p)})}catch(l){if(l.code!=="ERR_NOT_FOUND")throw l;this.log("no peer store entry for %p",f)}yield Yn({from:this.components.peerId,messageType:J.GET_PROVIDERS,providers:u},r),yield ji({from:this.components.peerId,providers:u},r)}if(s.length>=n)return;let a=async function*({peer:u,signal:f}){let l={type:J.GET_PROVIDERS,key:i};yield*o.network.sendRequest(u,l,{...r,signal:f})},c=new xe(s);for await(let u of this.queryManager.run(i,a,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)||(c.add(l.id),f.push(l));if(f.length>0&&(yield ji({from:u.from,providers:f},r)),c.size===n)return}}};function t0(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Ze(e=0){return globalThis.Buffer?.alloc!=null?t0(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function e0(e=0){return globalThis.Buffer?.allocUnsafe!=null?t0(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function Bo(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=e0(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return t0(r)}function Ua(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 Fa=Symbol.for("@achingbrain/uint8arraylist");function Oa(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 J0(e){return!!e?.[Fa]}var fe=class e{bufs;length;[Fa]=!0;constructor(...t){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(J0(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(J0(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=Oa(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Oa(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(J0(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 Bo(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:Bo(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 s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let u=t>=a&&t<c,f=r>a&&r<=c;if(u&&f){if(t===a&&r===c){n.push(s);break}let l=t-a;n.push(s.subarray(l,l+(r-t)));break}if(u){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(f){if(r===c){n.push(s);break}n.push(s.subarray(0,r-a));break}n.push(s)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!J0(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,s=new Int32Array(o);for(let l=0;l<o;l++)s[l]=-1;for(let l=0;l<i;l++)s[n[l]]=l;let a=s,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-a[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=e0(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=e0(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(!Ua(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}};var j0=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=r??"ABORT_ERR"}};async function Ma(e,t,r){if(t==null)return e;if(t.aborted)return Promise.reject(new j0(r?.errorMessage,r?.errorCode));let n,i=new j0(r?.errorMessage,r?.errorCode);try{return await Promise.race([e,new Promise((o,s)=>{n=()=>{s(i)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var To=class{needNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.needNext=Pt(),this.haveNext=Pt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("Have next but next was undefined");let t=this.nextResult;return this.nextResult=void 0,this.needNext.resolve(),this.needNext=Pt(),t}async throw(t){return this.ended=!0,t!=null&&this.haveNext.reject(t),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,r){await this._push(t,r)}async end(t,r){t!=null?await this.throw(t):await this._push(void 0,r)}async _push(t,r){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");this.nextResult!=null&&await this.needNext.promise,t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Pt(),await Ma(this.needNext.promise,r?.signal,r)}};function Ka(){return new To}var t1=class extends Error{code;constructor(t,r){super(t),this.code=r}},Co=class extends t1{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function Va(e,t){let r=Ka();e.sink(r).catch(async s=>{await r.end(s)}),e.sink=async s=>{for await(let a of s)await r.push(a);await r.end()};let n=e.source;e.source[Symbol.iterator]!=null?n=e.source[Symbol.iterator]():e.source[Symbol.asyncIterator]!=null&&(n=e.source[Symbol.asyncIterator]());let i=new fe;return{read:async(s,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new Co("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(s==null){let{done:l,value:p}=await Promise.race([n.next(),u]);return l===!0?new fe:p}for(;i.byteLength<s;){let{value:l,done:p}=await Promise.race([n.next(),u]);if(p===!0)throw new t1("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(l)}let f=i.sublist(0,s);return i.consume(s),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(s,a)=>{a?.signal?.throwIfAborted(),s instanceof Uint8Array?await r.push(s,a):await r.push(s.subarray(),a)},unwrap:()=>{if(i.byteLength>0){let s=e.source;e.source=async function*(){t?.yieldBytes===!1?yield i:yield*i,yield*s}()}return e}}}function qa(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function za(e=0){return globalThis.Buffer?.allocUnsafe!=null?qa(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function e1(e){return e[Symbol.asyncIterator]!=null}var r1=e=>{let t=Gt(e),r=za(t);return Ne(e,r),r1.bytes=t,r};r1.bytes=0;function Nr(e,t){t=t??{};let r=t.lengthEncoder??r1;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return e1(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}Nr.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??r1;return new fe(r(e.byteLength),e)};var En=Et(Ga(),1);var Ec=8,Sc=1024*1024*4,Dr;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Dr||(Dr={}));var Ro=e=>{let t=se(e);return Ro.bytes=Gt(t),t};Ro.bytes=0;function r0(e,t){let r=new fe,n=Dr.LENGTH,i=-1,o=t?.lengthDecoder??Ro,s=t?.maxLengthLength??Ec,a=t?.maxDataLength??Sc;function*c(){for(;r.byteLength>0;){if(n===Dr.LENGTH)try{if(i=o(r),i<0)throw(0,En.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,En.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=Dr.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>s)throw(0,En.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Dr.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Dr.LENGTH}}}return e1(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,En.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,En.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}r0.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:s}=await e.next(r);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return r0(n,{...t??{},onLength:o=>{r=o}})};var n1=class extends Error{code;constructor(t,r){super(t),this.code=r}},Qa=e=>se(e);Qa.bytes=0;function Wa(e,t={}){let r=Va(e,t);return t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=Gt(t.maxDataLength)),{read:async i=>{let o=-1,s=new fe,a=t?.lengthDecoder??Qa;for(;;){s.append(await r.read(1,i));try{o=a(s)}catch(c){if(c instanceof RangeError)continue;throw c}if(t?.maxLengthLength!=null&&s.byteLength>t.maxLengthLength)throw new n1("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(o>-1)break}if(t?.maxDataLength!=null&&o>t.maxDataLength)throw new n1("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(o,i)},write:async(i,o)=>{await r.write(Nr.single(i,t),o)},writeV:async(i,o)=>{let s=new fe(...i.map(a=>Nr.single(a,t)));await r.write(s,o)},unwrap:()=>r.unwrap()}}function n0(e,t){let r=Wa(e,t),n={read:async(i,o)=>{let s=await r.read(o);return i.decode(s)},write:async(i,o,s)=>{await r.write(o.encode(i),s)},writeV:async(i,o,s)=>{await r.writeV(i.map(a=>o.encode(a)),s)},pb:i=>({read:async o=>n.read(i,o),write:async(o,s)=>n.write(o,i,s),writeV:async(o,s)=>n.writeV(o,i,s),unwrap:()=>n}),unwrap:()=>r.unwrap()};return n}var i1=class extends jt{log;protocol;running;components;constructor(t,r){super();let{protocol:n}=r;this.components=t,this.log=t.logger.forComponent(`${r.logPrefix}: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;let i=r.type;if(i==null)throw new Gn("Message type was missing","ERR_INVALID_PARAMETERS");this.log("sending %s to %p",r.type,t),yield to({peer:t},n),yield Ji({to:t,type:i},n);let o;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n),c=await this._writeReadMessage(a,r,n);yield Yn({from:t,messageType:c.type,closer:c.closer.map(jn),providers:c.providers.map(jn),record:c.record==null?void 0:kt.deserialize(c.record)},n)}catch(s){this.log.error("could not send %s to %p",r.type,t,s),yield ie({from:t,error:s},n)}finally{o!=null&&await o.close()}}async*sendMessage(t,r,n={}){if(!this.running)return;let i=r.type;if(i==null)throw new Gn("Message type was missing","ERR_INVALID_PARAMETERS");this.log("sending %s to %p",r.type,t),yield to({peer:t},n),yield Ji({to:t,type:i},n);let o;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n);await this._writeMessage(a,r,n),yield Yn({from:t,messageType:i},n)}catch(s){yield ie({from:t,error:s},n)}finally{o!=null&&await o.close()}}async _writeMessage(t,r,n){let i=n0(t);await i.write(r,ue,n),await i.unwrap().close(n)}async _writeReadMessage(t,r,n){let i=n0(t);await i.write(r,ue,n);let o=await i.read(ue,n);return await i.unwrap().close(n),o.closer.forEach(s=>{this.safeDispatchEvent("peer",{detail:jn(s)})}),o.providers.forEach(s=>{this.safeDispatchEvent("peer",{detail:jn(s)})}),o}};var Ox=Et(u1(),1),Pc=Et(ut(),1);var Ct={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/blob/main/packages/crypto/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var f3={SHA1:20,SHA256:32,SHA512:64};var Dc={SHA1:"SHA-1",SHA256:"SHA-256",SHA512:"SHA-512"},kc=async(e,t)=>{let r=await Ct.get().subtle.sign({name:"HMAC"},e,t);return new Uint8Array(r,0,r.byteLength)};async function l3(e,t){let r=Dc[e],n=await Ct.get().subtle.importKey("raw",t,{name:"HMAC",hash:{name:r}},!1,["sign"]);return{async digest(i){return kc(n,i)},length:f3[e]}}var q1={};_t(q1,{generateEphemeralKeyPair:()=>H4,generateKeyPair:()=>Ol,generateKeyPairFromSeed:()=>Fl,importKey:()=>ql,keyStretcher:()=>Y4,keysPBM:()=>Dn,marshalPrivateKey:()=>Vl,marshalPublicKey:()=>Kl,supportedKeys:()=>Ve,unmarshalPrivateKey:()=>E5,unmarshalPublicKey:()=>Ml});var Ow=Et(a0(),1),Fw=Et(d4(),1);var V1=Et(ut(),1);var ms={};_t(ms,{Ed25519PrivateKey:()=>zr,Ed25519PublicKey:()=>d0,generateKeyPair:()=>al,generateKeyPairFromSeed:()=>ys,unmarshalEd25519PrivateKey:()=>ol,unmarshalEd25519PublicKey:()=>sl});var dv=Et(Tt(),1),pv=Et(b1(),1),p4=Et(ut(),1);function we(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=oe([new Uint8Array(t-r.length),r])}return W(r,"base64url")}function ae(e){let t=I1(e);return new p4.default.jsbn.BigInteger(W(t,"base16"),16)}function I1(e,t){let r=Bt(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=oe([new Uint8Array(t-r.length),r])}return r}function de(e){return e==null?!1:typeof e.then=="function"&&typeof e.catch=="function"&&typeof e.finally=="function"}function g4(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function t7(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function Jo(e,...t){if(!t7(e))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 y4(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 Tn(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 m4(e,t){Jo(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var A1=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function x4(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}var B1=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Ee=(e,t)=>e<<32-t|e>>>t,e7=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!e7)throw new Error("Non little-endian hardware is not supported");function jo(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function f0(e){if(typeof e=="string"&&(e=jo(e)),!x4(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function T1(...e){let t=0;for(let n=0;n<e.length;n++){let i=e[n];if(!x4(i))throw new Error("Uint8Array expected");t+=i.length}let r=new Uint8Array(t);for(let n=0,i=0;n<e.length;n++){let o=e[n];r.set(o,i),i+=o.length}return r}var Cn=class{clone(){return this._cloneInto()}},Ev={}.toString;function C1(e){let t=n=>e().update(f0(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Rn(e=32){if(A1&&typeof A1.getRandomValues=="function")return A1.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function r7(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}var _n=class extends Cn{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){Tn(this);let{view:r,buffer:n,blockLen:i}=this;t=f0(t);let o=t.length;for(let s=0;s<o;){let a=Math.min(i-this.pos,o-s);if(a===i){let c=B1(t);for(;i<=o-s;s+=i)this.process(c,s);continue}n.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Tn(this),m4(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:s}=this;r[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>i-s&&(this.process(n,0),s=0);for(let l=s;l<i;l++)r[l]=0;r7(n,i-8,BigInt(this.length*8),o),this.process(n,0);let a=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++)a.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:s,pos:a}=this;return t.length=i,t.pos=a,t.finished=o,t.destroyed=s,i%r&&t.buffer.set(n),t}};var R1=BigInt(4294967295),ts=BigInt(32);function v4(e,t=!1){return t?{h:Number(e&R1),l:Number(e>>ts&R1)}:{h:Number(e>>ts&R1)|0,l:Number(e&R1)|0}}function n7(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:s}=v4(e[i],t);[r[i],n[i]]=[o,s]}return[r,n]}var i7=(e,t)=>BigInt(e>>>0)<<ts|BigInt(t>>>0),o7=(e,t,r)=>e>>>r,s7=(e,t,r)=>e<<32-r|t>>>r,a7=(e,t,r)=>e>>>r|t<<32-r,c7=(e,t,r)=>e<<32-r|t>>>r,u7=(e,t,r)=>e<<64-r|t>>>r-32,f7=(e,t,r)=>e>>>r-32|t<<64-r,l7=(e,t)=>t,h7=(e,t)=>e,d7=(e,t,r)=>e<<r|t>>>32-r,p7=(e,t,r)=>t<<r|e>>>32-r,g7=(e,t,r)=>t<<r-32|e>>>64-r,y7=(e,t,r)=>e<<r-32|t>>>64-r;function m7(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var x7=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),v7=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,b7=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),w7=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,E7=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),S7=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0;var I7={fromBig:v4,split:n7,toBig:i7,shrSH:o7,shrSL:s7,rotrSH:a7,rotrSL:c7,rotrBH:u7,rotrBL:f7,rotr32H:l7,rotr32L:h7,rotlSH:d7,rotlSL:p7,rotlBH:g7,rotlBL:y7,add:m7,add3L:x7,add3H:v7,add4L:b7,add4H:w7,add5H:S7,add5L:E7},Y=I7;var[A7,B7]=Y.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))),br=new Uint32Array(80),wr=new Uint32Array(80),es=class extends _n{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:s,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:p,Gh:d,Gl:h,Hh:g,Hl:y}=this;return[t,r,n,i,o,s,a,c,u,f,l,p,d,h,g,y]}set(t,r,n,i,o,s,a,c,u,f,l,p,d,h,g,y){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=o|0,this.Cl=s|0,this.Dh=a|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=g|0,this.Hl=y|0}process(t,r){for(let v=0;v<16;v++,r+=4)br[v]=t.getUint32(r),wr[v]=t.getUint32(r+=4);for(let v=16;v<80;v++){let T=br[v-15]|0,E=wr[v-15]|0,S=Y.rotrSH(T,E,1)^Y.rotrSH(T,E,8)^Y.shrSH(T,E,7),L=Y.rotrSL(T,E,1)^Y.rotrSL(T,E,8)^Y.shrSL(T,E,7),N=br[v-2]|0,H=wr[v-2]|0,z=Y.rotrSH(N,H,19)^Y.rotrBH(N,H,61)^Y.shrSH(N,H,6),V=Y.rotrSL(N,H,19)^Y.rotrBL(N,H,61)^Y.shrSL(N,H,6),X=Y.add4L(L,V,wr[v-7],wr[v-16]),ft=Y.add4H(X,S,z,br[v-7],br[v-16]);br[v]=ft|0,wr[v]=X|0}let{Ah:n,Al:i,Bh:o,Bl:s,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:p,Fh:d,Fl:h,Gh:g,Gl:y,Hh:m,Hl:x}=this;for(let v=0;v<80;v++){let T=Y.rotrSH(l,p,14)^Y.rotrSH(l,p,18)^Y.rotrBH(l,p,41),E=Y.rotrSL(l,p,14)^Y.rotrSL(l,p,18)^Y.rotrBL(l,p,41),S=l&d^~l&g,L=p&h^~p&y,N=Y.add5L(x,E,L,B7[v],wr[v]),H=Y.add5H(N,m,T,S,A7[v],br[v]),z=N|0,V=Y.rotrSH(n,i,28)^Y.rotrBH(n,i,34)^Y.rotrBH(n,i,39),X=Y.rotrSL(n,i,28)^Y.rotrBL(n,i,34)^Y.rotrBL(n,i,39),ft=n&o^n&a^o&a,Kt=i&s^i&c^s&c;m=g|0,x=y|0,g=d|0,y=h|0,d=l|0,h=p|0,{h:l,l:p}=Y.add(u|0,f|0,H|0,z|0),u=a|0,f=c|0,a=o|0,c=s|0,o=n|0,s=i|0;let C=Y.add3L(z,X,Kt);n=Y.add3H(C,H,V,ft),i=C|0}({h:n,l:i}=Y.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:s}=Y.add(this.Bh|0,this.Bl|0,o|0,s|0),{h:a,l:c}=Y.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=Y.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=Y.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:h}=Y.add(this.Fh|0,this.Fl|0,d|0,h|0),{h:g,l:y}=Y.add(this.Gh|0,this.Gl|0,g|0,y|0),{h:m,l:x}=Y.add(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,i,o,s,a,c,u,f,l,p,d,h,g,y,m,x)}roundClean(){br.fill(0),wr.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 rs=C1(()=>new es);var P1={};_t(P1,{bitGet:()=>N7,bitLen:()=>L7,bitMask:()=>l0,bitSet:()=>D7,bytesToHex:()=>er,bytesToNumberBE:()=>rr,bytesToNumberLE:()=>Er,concatBytes:()=>nr,createHmacDrbg:()=>os,ensureBytes:()=>At,equalBytes:()=>_7,hexToBytes:()=>Kr,hexToNumber:()=>is,isBytes:()=>Se,numberToBytesBE:()=>Sr,numberToBytesLE:()=>Vr,numberToHexUnpadded:()=>S4,numberToVarBytesBE:()=>R7,utf8ToBytes:()=>P7,validateObject:()=>Ke});var E4=BigInt(0),_1=BigInt(1),T7=BigInt(2);function Se(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}var C7=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function er(e){if(!Se(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=C7[e[r]];return t}function S4(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function is(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}var tr={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function b4(e){if(e>=tr._0&&e<=tr._9)return e-tr._0;if(e>=tr._A&&e<=tr._F)return e-(tr._A-10);if(e>=tr._a&&e<=tr._f)return e-(tr._a-10)}function Kr(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length,r=t/2;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let i=0,o=0;i<r;i++,o+=2){let s=b4(e.charCodeAt(o)),a=b4(e.charCodeAt(o+1));if(s===void 0||a===void 0){let c=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+o)}n[i]=s*16+a}return n}function rr(e){return is(er(e))}function Er(e){if(!Se(e))throw new Error("Uint8Array expected");return is(er(Uint8Array.from(e).reverse()))}function Sr(e,t){return Kr(e.toString(16).padStart(t*2,"0"))}function Vr(e,t){return Sr(e,t).reverse()}function R7(e){return Kr(S4(e))}function At(e,t,r){let n;if(typeof t=="string")try{n=Kr(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(Se(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 nr(...e){let t=0;for(let i=0;i<e.length;i++){let o=e[i];if(!Se(o))throw new Error("Uint8Array expected");t+=o.length}let r=new Uint8Array(t),n=0;for(let i=0;i<e.length;i++){let o=e[i];r.set(o,n),n+=o.length}return r}function _7(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function P7(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function L7(e){let t;for(t=0;e>E4;e>>=_1,t+=1);return t}function N7(e,t){return e>>BigInt(t)&_1}var D7=(e,t,r)=>e|(r?_1:E4)<<BigInt(t),l0=e=>(T7<<BigInt(e-1))-_1,ns=e=>new Uint8Array(e),w4=e=>Uint8Array.from(e);function os(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=ns(e),i=ns(e),o=0,s=()=>{n.fill(1),i.fill(0),o=0},a=(...l)=>r(i,n,...l),c=(l=ns())=>{i=a(w4([0]),l),n=a(),l.length!==0&&(i=a(w4([1]),l),n=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,p=[];for(;l<t;){n=a();let d=n.slice();p.push(d),l+=n.length}return nr(...p)};return(l,p)=>{s(),c(l);let d;for(;!(d=p(u()));)c();return s(),d}}var k7={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"||Se(e),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 Ke(e,t,r={}){let n=(i,o,s)=>{let a=k7[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=e[i];if(!(s&&c===void 0)&&!a(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 Ut=BigInt(0),mt=BigInt(1),qr=BigInt(2),U7=BigInt(3),ss=BigInt(4),I4=BigInt(5),A4=BigInt(8),O7=BigInt(9),F7=BigInt(16);function lt(e,t){let r=e%t;return r>=Ut?r:t+r}function M7(e,t,r){if(r<=Ut||t<Ut)throw new Error("Expected power/modulo > 0");if(r===mt)return Ut;let n=mt;for(;t>Ut;)t&mt&&(n=n*e%r),e=e*e%r,t>>=mt;return n}function xt(e,t,r){let n=e;for(;t-- >Ut;)n*=n,n%=r;return n}function L1(e,t){if(e===Ut||t<=Ut)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=lt(e,t),n=t,i=Ut,o=mt,s=mt,a=Ut;for(;r!==Ut;){let u=n/r,f=n%r,l=i-s*u,p=o-a*u;n=r,r=f,i=s,o=a,s=l,a=p}if(n!==mt)throw new Error("invert: does not exist");return lt(i,t)}function K7(e){let t=(e-mt)/qr,r,n,i;for(r=e-mt,n=0;r%qr===Ut;r/=qr,n++);for(i=qr;i<e&&M7(i,t,e)!==e-mt;i++);if(n===1){let s=(e+mt)/ss;return function(c,u){let f=c.pow(u,s);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let o=(r+mt)/qr;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,f=a.pow(a.mul(a.ONE,i),r),l=a.pow(c,o),p=a.pow(c,r);for(;!a.eql(p,a.ONE);){if(a.eql(p,a.ZERO))return a.ZERO;let d=1;for(let g=a.sqr(p);d<u&&!a.eql(g,a.ONE);d++)g=a.sqr(g);let h=a.pow(f,mt<<BigInt(u-d-1));f=a.sqr(h),l=a.mul(l,h),p=a.mul(p,f),u=d}return l}}function V7(e){if(e%ss===U7){let t=(e+mt)/ss;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,qr),s=n.pow(o,t),a=n.mul(i,s),c=n.mul(n.mul(a,qr),s),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return e%F7,K7(e)}var B4=(e,t)=>(lt(e,t)&mt)===mt,q7=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function as(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=q7.reduce((n,i)=>(n[i]="function",n),t);return Ke(e,r)}function z7(e,t,r){if(r<Ut)throw new Error("Expected power > 0");if(r===Ut)return e.ONE;if(r===mt)return t;let n=e.ONE,i=t;for(;r>Ut;)r&mt&&(n=e.mul(n,i)),i=e.sqr(i),r>>=mt;return n}function H7(e,t){let r=new Array(t.length),n=t.reduce((o,s,a)=>e.is0(s)?o:(r[a]=o,e.mul(o,s)),e.ONE),i=e.inv(n);return t.reduceRight((o,s,a)=>e.is0(s)?o:(r[a]=e.mul(o,r[a]),e.mul(o,s)),i),r}function cs(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function N1(e,t,r=!1,n={}){if(e<=Ut)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=cs(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let s=V7(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:l0(i),ZERO:Ut,ONE:mt,create:c=>lt(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Ut<=c&&c<e},is0:c=>c===Ut,isOdd:c=>(c&mt)===mt,neg:c=>lt(-c,e),eql:(c,u)=>c===u,sqr:c=>lt(c*c,e),add:(c,u)=>lt(c+u,e),sub:(c,u)=>lt(c-u,e),mul:(c,u)=>lt(c*u,e),pow:(c,u)=>z7(a,c,u),div:(c,u)=>lt(c*L1(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>L1(c,e),sqrt:n.sqrt||(c=>s(a,c)),invertBatch:c=>H7(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?Vr(c,o):Sr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return r?Er(c):rr(c)}});return Object.freeze(a)}function T4(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 C4(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 us(e){let t=C4(e);return t+Math.ceil(t/2)}function R4(e,t,r=!1){let n=e.length,i=C4(t),o=us(t);if(n<16||n<o||n>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let s=r?rr(e):Er(e),a=lt(s,t-mt)+mt;return r?Vr(a,i):Sr(a,i)}var G7=BigInt(0),fs=BigInt(1);function D1(e,t){let r=(i,o)=>{let s=o.negate();return i?s:o},n=i=>{let o=Math.ceil(t/i)+1,s=2**(i-1);return{windows:o,windowSize:s}};return{constTimeNegate:r,unsafeLadder(i,o){let s=e.ZERO,a=i;for(;o>G7;)o&fs&&(s=s.add(a)),a=a.double(),o>>=fs;return s},precomputeWindow(i,o){let{windows:s,windowSize:a}=n(o),c=[],u=i,f=u;for(let l=0;l<s;l++){f=u,c.push(f);for(let p=1;p<a;p++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(i,o,s){let{windows:a,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<a;h++){let g=h*c,y=Number(s&l);s>>=d,y>c&&(y-=p,s+=fs);let m=g,x=g+Math.abs(y)-1,v=h%2!==0,T=y<0;y===0?f=f.add(r(v,o[m])):u=u.add(r(T,o[x]))}return{p:u,f}},wNAFCached(i,o,s,a){let c=i._WINDOW_SIZE||1,u=o.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&o.set(i,a(u))),this.wNAF(c,u,s)}}}function h0(e){return as(e.Fp),Ke(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...cs(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Ie=BigInt(0),ce=BigInt(1),k1=BigInt(2),Y7=BigInt(8),Q7={zip215:!0};function W7(e){let t=h0(e);return Ke(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function U1(e){let t=W7(e),{Fp:r,n,prehash:i,hash:o,randomBytes:s,nByteLength:a,h:c}=t,u=k1<<BigInt(a*8)-ce,f=r.create,l=t.uvRatio||((D,A)=>{try{return{isValid:!0,value:r.sqrt(D*r.inv(A))}}catch{return{isValid:!1,value:Ie}}}),p=t.adjustScalarBytes||(D=>D),d=t.domain||((D,A,F)=>{if(A.length||F)throw new Error("Contexts/pre-hash are not supported");return D}),h=D=>typeof D=="bigint"&&Ie<D,g=(D,A)=>h(D)&&h(A)&&D<A,y=D=>D===Ie||g(D,u);function m(D,A){if(g(D,A))return D;throw new Error(`Expected valid scalar < ${A}, got ${typeof D} ${D}`)}function x(D){return D===Ie?D:m(D,n)}let v=new Map;function T(D){if(!(D instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(A,F,M,q){if(this.ex=A,this.ey=F,this.ez=M,this.et=q,!y(A))throw new Error("x required");if(!y(F))throw new Error("y required");if(!y(M))throw new Error("z required");if(!y(q))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(!y(F)||!y(M))throw new Error("invalid affine point");return new E(F,M,ce,f(F*M))}static normalizeZ(A){let F=r.invertBatch(A.map(M=>M.ez));return A.map((M,q)=>M.toAffine(F[q])).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:q,ez:Q,et:j}=this,at=f(M*M),tt=f(q*q),nt=f(Q*Q),Rt=f(nt*nt),wt=f(at*A),Vt=f(nt*f(wt+tt)),qt=f(Rt+f(F*f(at*tt)));if(Vt!==qt)throw new Error("bad point: equation left != right (1)");let Nt=f(M*q),zt=f(Q*j);if(Nt!==zt)throw new Error("bad point: equation left != right (2)")}equals(A){T(A);let{ex:F,ey:M,ez:q}=this,{ex:Q,ey:j,ez:at}=A,tt=f(F*at),nt=f(Q*q),Rt=f(M*at),wt=f(j*q);return tt===nt&&Rt===wt}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:q}=this,Q=f(F*F),j=f(M*M),at=f(k1*f(q*q)),tt=f(A*Q),nt=F+M,Rt=f(f(nt*nt)-Q-j),wt=tt+j,Vt=wt-at,qt=tt-j,Nt=f(Rt*Vt),zt=f(wt*qt),qe=f(Rt*qt),Tr=f(Vt*wt);return new E(Nt,zt,Tr,qe)}add(A){T(A);let{a:F,d:M}=t,{ex:q,ey:Q,ez:j,et:at}=this,{ex:tt,ey:nt,ez:Rt,et:wt}=A;if(F===BigInt(-1)){let zs=f((Q-q)*(nt+tt)),Hs=f((Q+q)*(nt-tt)),hi=f(Hs-zs);if(hi===Ie)return this.double();let $s=f(j*k1*wt),Gs=f(at*k1*Rt),Ys=Gs+$s,Qs=Hs+zs,Ws=Gs-$s,H5=f(Ys*hi),$5=f(Qs*Ws),G5=f(Ys*Ws),Y5=f(hi*Qs);return new E(H5,$5,Y5,G5)}let Vt=f(q*tt),qt=f(Q*nt),Nt=f(at*M*wt),zt=f(j*Rt),qe=f((q+Q)*(tt+nt)-Vt-qt),Tr=zt-Nt,Fn=zt+Nt,qs=f(qt-F*Vt),K5=f(qe*Tr),V5=f(Fn*qs),q5=f(qe*qs),z5=f(Tr*Fn);return new E(K5,V5,z5,q5)}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===Ie?L:this.equals(L)||F===ce?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:q}=this,Q=this.is0();A==null&&(A=Q?Y7:r.inv(q));let j=f(F*A),at=f(M*A),tt=f(q*A);if(Q)return{x:Ie,y:ce};if(tt!==ce)throw new Error("invZ was invalid");return{x:j,y:at}}clearCofactor(){let{h:A}=t;return A===ce?this:this.multiplyUnsafe(A)}static fromHex(A,F=!1){let{d:M,a:q}=t,Q=r.BYTES;A=At("pointHex",A,Q);let j=A.slice(),at=A[Q-1];j[Q-1]=at&-129;let tt=Er(j);tt===Ie||(F?m(tt,u):m(tt,r.ORDER));let nt=f(tt*tt),Rt=f(nt-ce),wt=f(M*nt-q),{isValid:Vt,value:qt}=l(Rt,wt);if(!Vt)throw new Error("Point.fromHex: invalid y coordinate");let Nt=(qt&ce)===ce,zt=(at&128)!==0;if(!F&&qt===Ie&&zt)throw new Error("Point.fromHex: x=0 and x_0=1");return zt!==Nt&&(qt=f(-qt)),E.fromAffine({x:qt,y:tt})}static fromPrivateKey(A){return V(A).point}toRawBytes(){let{x:A,y:F}=this.toAffine(),M=Vr(F,r.BYTES);return M[M.length-1]|=A&ce?128:0,M}toHex(){return er(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,ce,f(t.Gx*t.Gy)),E.ZERO=new E(Ie,ce,ce,Ie);let{BASE:S,ZERO:L}=E,N=D1(E,a*8);function H(D){return lt(D,n)}function z(D){return H(Er(D))}function V(D){let A=a;D=At("private key",D,A);let F=At("hashed private key",o(D),2*A),M=p(F.slice(0,A)),q=F.slice(A,2*A),Q=z(M),j=S.multiply(Q),at=j.toRawBytes();return{head:M,prefix:q,scalar:Q,point:j,pointBytes:at}}function X(D){return V(D).pointBytes}function ft(D=new Uint8Array,...A){let F=nr(...A);return z(o(d(F,At("context",D),!!i)))}function Kt(D,A,F={}){D=At("message",D),i&&(D=i(D));let{prefix:M,scalar:q,pointBytes:Q}=V(A),j=ft(F.context,M,D),at=S.multiply(j).toRawBytes(),tt=ft(F.context,at,Q,D),nt=H(j+tt*q);x(nt);let Rt=nr(at,Vr(nt,r.BYTES));return At("result",Rt,a*2)}let C=Q7;function k(D,A,F,M=C){let{context:q,zip215:Q}=M,j=r.BYTES;D=At("signature",D,2*j),A=At("message",A),i&&(A=i(A));let at=Er(D.slice(j,2*j)),tt,nt,Rt;try{tt=E.fromHex(F,Q),nt=E.fromHex(D.slice(0,j),Q),Rt=S.multiplyUnsafe(at)}catch{return!1}if(!Q&&tt.isSmallOrder())return!1;let wt=ft(q,nt.toRawBytes(),tt.toRawBytes(),A);return nt.add(tt.multiplyUnsafe(wt)).subtract(Rt).clearCofactor().equals(E.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:X,sign:Kt,verify:k,ExtendedPoint:E,utils:{getExtendedPublicKey:V,randomPrivateKey:()=>s(r.BYTES),precompute(D=8,A=E.BASE){return A._setWindowSize(D),A.multiply(BigInt(3)),A}}}}var hs=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),_4=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Hv=BigInt(0),Z7=BigInt(1),ls=BigInt(2),X7=BigInt(5),P4=BigInt(10),J7=BigInt(20),j7=BigInt(40),L4=BigInt(80);function tl(e){let t=hs,n=e*e%t*e%t,i=xt(n,ls,t)*n%t,o=xt(i,Z7,t)*e%t,s=xt(o,X7,t)*o%t,a=xt(s,P4,t)*s%t,c=xt(a,J7,t)*a%t,u=xt(c,j7,t)*c%t,f=xt(u,L4,t)*u%t,l=xt(f,L4,t)*u%t,p=xt(l,P4,t)*s%t;return{pow_p_5_8:xt(p,ls,t)*e%t,b2:n}}function el(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function rl(e,t){let r=hs,n=lt(t*t*t,r),i=lt(n*n*t,r),o=tl(e*i).pow_p_5_8,s=lt(e*n*o,r),a=lt(t*s*s,r),c=s,u=lt(s*_4,r),f=a===e,l=a===lt(-e,r),p=a===lt(-e*_4,r);return f&&(s=c),(l||p)&&(s=u),B4(s,r)&&(s=lt(-s,r)),{isValid:f||l,value:s}}var ir=N1(hs,void 0,!0),ds={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:ir,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:rs,randomBytes:Rn,adjustScalarBytes:el,uvRatio:rl},Pn=U1(ds);function N4(e,t,r){if(t.length>255)throw new Error("Context is too big");return T1(jo("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var $v=U1({...ds,domain:N4}),Gv=U1({...ds,domain:N4,prehash:rs});var nl=(ir.ORDER+BigInt(3))/BigInt(8),Yv=ir.pow(ls,nl),Qv=ir.sqrt(ir.neg(ir.ONE)),Wv=(ir.ORDER-BigInt(5))/BigInt(8),Zv=BigInt(486662);var Xv=T4(ir,ir.neg(BigInt(486664)));var Jv=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),jv=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),tb=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),eb=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var rb=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Ln=32,or=64,O1=32;function D4(){let e=Pn.utils.randomPrivateKey(),t=Pn.getPublicKey(e);return{privateKey:F4(e,t),publicKey:t}}function k4(e){if(e.length!==O1)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=Pn.getPublicKey(t);return{privateKey:F4(t,r),publicKey:r}}function U4(e,t){let r=e.subarray(0,O1);return Pn.sign(t instanceof Uint8Array?t:t.subarray(),r)}function O4(e,t,r){return Pn.verify(t,r instanceof Uint8Array?r:r.subarray(),e)}function F4(e,t){let r=new Uint8Array(or);for(let n=0;n<O1;n++)r[n]=e[n],r[O1+n]=t[n];return r}var ps={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function F1(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",o=e?.saltLength??16,s=e?.iterations??32767,a=Ct.get();r*=8;async function c(l,p){let d=a.getRandomValues(new Uint8Array(o)),h=a.getRandomValues(new Uint8Array(n)),g={name:t,iv:h};typeof p=="string"&&(p=Bt(p));let y;if(p.length===0){y=await a.subtle.importKey("jwk",ps,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},v=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}catch{y=await a.subtle.importKey("jwk",ps,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},v=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}let m=await a.subtle.encrypt(g,y,l);return oe([d,g.iv,new Uint8Array(m)])}async function u(l,p){let d=l.subarray(0,o),h=l.subarray(o,o+n),g=l.subarray(o+n),y={name:t,iv:h};typeof p=="string"&&(p=Bt(p));let m;if(p.length===0)try{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},T=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}catch{m=await a.subtle.importKey("jwk",ps,{name:"AES-GCM"},!0,["decrypt"])}else{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},T=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,m,g);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Nn(e,t){let n=await F1().encrypt(e,t);return Mn.encode(n)}var Dn={};_t(Dn,{KeyType:()=>pt,PrivateKey:()=>Be,PublicKey:()=>Ae});var pt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(pt||(pt={}));var gs;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(gs||(gs={}));(function(e){e.codec=()=>sn(gs)})(pt||(pt={}));var Ae;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),pt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=pt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Ce(r,e.codec())})(Ae||(Ae={}));var Be;(function(e){let t;e.codec=()=>(t==null&&(t=Pe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),pt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=pt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>_e(r,e.codec()),e.decode=r=>Ce(r,e.codec())})(Be||(Be={}));var d0=class{_key;constructor(t){this._key=kn(t,Ln)}verify(t,r){return O4(this._key,r,t)}marshal(){return this._key}get bytes(){return Ae.encode({Type:pt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return vt(this.bytes,t.bytes)}hash(){let t=bt.digest(this.bytes);return de(t)?t.then(({bytes:r})=>r):t.bytes}},zr=class{_key;_publicKey;constructor(t,r){this._key=kn(t,or),this._publicKey=kn(r,Ln)}sign(t){return U4(this._key,t)}get public(){return new d0(this._publicKey)}marshal(){return this._key}get bytes(){return Be.encode({Type:pt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return vt(this.bytes,t.bytes)}async hash(){let t=bt.digest(this.bytes),r;return de(t)?{bytes:r}=await t:r=t.bytes,r}async id(){let t=dr.digest(this.public.bytes);return Dt.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Nn(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function ol(e){if(e.length>or){e=kn(e,or+Ln);let n=e.subarray(0,or),i=e.subarray(or,e.length);return new zr(n,i)}e=kn(e,or);let t=e.subarray(0,or),r=e.subarray(Ln);return new zr(t,r)}function sl(e){return e=kn(e,Ln),new d0(e)}async function al(){let{privateKey:e,publicKey:t}=D4();return new zr(e,t)}async function ys(e){let{privateKey:t,publicKey:r}=k4(e);return new zr(t,r)}function kn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new _(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var K4={"P-256":256,"P-384":384,"P-521":521},cl=Object.keys(K4),xs=cl.join(" / ");async function V4(e){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new _(`Unknown curve: ${e}. Must be ${xs}`,"ERR_INVALID_CURVE");let t=await Ct.get().subtle.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"]),r=async(o,s)=>{let a;s!=null?a=await Ct.get().subtle.importKey("jwk",fl(e,s),{name:"ECDH",namedCurve:e},!1,["deriveBits"]):a=t.privateKey;let c=await Ct.get().subtle.importKey("jwk",z4(e,o),{name:"ECDH",namedCurve:e},!1,[]),u=await Ct.get().subtle.deriveBits({name:"ECDH",namedCurve:e,public:c},a,K4[e]);return new Uint8Array(u,0,u.byteLength)},n=await Ct.get().subtle.exportKey("jwk",t.publicKey);return{key:ul(n),genSharedKey:r}}var q4={"P-256":32,"P-384":48,"P-521":66};function ul(e){if(e.crv==null||e.x==null||e.y==null)throw new _("JWK was missing components","ERR_INVALID_PARAMETERS");if(e.crv!=="P-256"&&e.crv!=="P-384"&&e.crv!=="P-521")throw new _(`Unknown curve: ${e.crv}. Must be ${xs}`,"ERR_INVALID_CURVE");let t=q4[e.crv];return oe([Uint8Array.from([4]),I1(e.x,t),I1(e.y,t)],1+t*2)}function z4(e,t){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new _(`Unknown curve: ${e}. Must be ${xs}`,"ERR_INVALID_CURVE");let r=q4[e];if(!vt(t.subarray(0,1),Uint8Array.from([4])))throw new _("Cannot unmarshal public key - invalid key format","ERR_INVALID_KEY_FORMAT");return{kty:"EC",crv:e,x:W(t.subarray(1,r+1),"base64url"),y:W(t.subarray(1+r),"base64url"),ext:!0}}var fl=(e,t)=>({...z4(e,t.public),d:W(t.private,"base64url")});var H4=V4;async function $4(e,t){let r=Mn.decode(e);return F1().decrypt(r,t)}var G4={"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=G4[e];if(n==null){let x=Object.keys(G4).join(" / ");throw new _(`unknown cipher type '${e}'. Must be ${x}`,"ERR_INVALID_CIPHER_TYPE")}if(t==null)throw new _("missing hash type","ERR_MISSING_HASH_TYPE");let i=n.keySize,o=n.ivSize,s=20,a=Bt("key expansion"),c=2*(o+i+s),u=await l3(t,r),f=await u.digest(a),l=[],p=0;for(;p<c;){let x=await u.digest(oe([f,a])),v=x.length;p+v>c&&(v=c-p),l.push(x),p+=v,f=await u.digest(f)}let d=c/2,h=oe(l),g=h.subarray(0,d),y=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(g),k2:m(y)}}var Ss={};_t(Ss,{MAX_KEY_SIZE:()=>m0,RsaPrivateKey:()=>Un,RsaPublicKey:()=>y0,fromJwk:()=>bl,generateKeyPair:()=>wl,unmarshalRsaPrivateKey:()=>xl,unmarshalRsaPublicKey:()=>vl});var g0=Et(ut(),1);var ew=Et(J4(),1);function $r(e){if(isNaN(e)||e<=0)throw new _("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Rn(e)}var Ob=Et(S1(),1),ws=Et(ut(),1);function j4(e,t){return t.map(r=>ae(e[r]))}function t5(e){return ws.default.pki.setRsaPrivateKey(...j4(e,["n","e","d","p","q","dp","dq","qi"]))}function e5(e){return ws.default.pki.setRsaPublicKey(...j4(e,["n","e"]))}var Gr={};_t(Gr,{jwkToPkcs1:()=>dl,jwkToPkix:()=>gl,pkcs1ToJwk:()=>hl,pkixToJwk:()=>pl});var Kb=Et(a0(),1),Vb=Et(S1(),1);var sr=Et(ut(),1);function hl(e){let t=sr.default.asn1.fromDer(W(e,"ascii")),r=sr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:we(r.n),e:we(r.e),d:we(r.d),p:we(r.p),q:we(r.q),dp:we(r.dP),dq:we(r.dQ),qi:we(r.qInv),alg:"RS256"}}function dl(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 _("JWK was missing components","ERR_INVALID_PARAMETERS");let t=sr.default.pki.privateKeyToAsn1({n:ae(e.n),e:ae(e.e),d:ae(e.d),p:ae(e.p),q:ae(e.q),dP:ae(e.dp),dQ:ae(e.dq),qInv:ae(e.qi)});return Bt(sr.default.asn1.toDer(t).getBytes(),"ascii")}function pl(e){let t=sr.default.asn1.fromDer(W(e,"ascii")),r=sr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:we(r.n),e:we(r.e)}}function gl(e){if(e.n==null||e.e==null)throw new _("JWK was missing components","ERR_INVALID_PARAMETERS");let t=sr.default.pki.publicKeyToAsn1({n:ae(e.n),e:ae(e.e)});return Bt(sr.default.asn1.toDer(t).getBytes(),"ascii")}async function r5(e){let t=await Ct.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 o5(t);return{privateKey:r[0],publicKey:r[1]}}async function Es(e){let r=[await Ct.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await yl(e)],n=await o5({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function n5(e,t){let r=await Ct.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Ct.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function i5(e,t,r){let n=await Ct.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Ct.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r instanceof Uint8Array?r:r.subarray())}async function o5(e){if(e.privateKey==null||e.publicKey==null)throw new _("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Ct.get().subtle.exportKey("jwk",e.privateKey),Ct.get().subtle.exportKey("jwk",e.publicKey)])}async function yl(e){return Ct.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 s5(e,t,r,n){let i=t?e5(e):t5(e),o=W(r instanceof Uint8Array?r:r.subarray(),"ascii"),s=n(o,i);return Bt(s,"ascii")}function a5(e,t){return s5(e,!0,t,(r,n)=>n.encrypt(r))}function c5(e,t){return s5(e,!1,t,(r,n)=>n.decrypt(r))}function M1(e){if(e.kty!=="RSA")throw new _("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new _("invalid key modulus","ERR_INVALID_KEY_MODULUS");return Bt(e.n,"base64url").length*8}var m0=8192,y0=class{_key;constructor(t){this._key=t}verify(t,r){return i5(this._key,r,t)}marshal(){return Gr.jwkToPkix(this._key)}get bytes(){return Ae.encode({Type:pt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return a5(this._key,t)}equals(t){return vt(this.bytes,t.bytes)}hash(){let t=bt.digest(this.bytes);return de(t)?t.then(({bytes:r})=>r):t.bytes}},Un=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return $r(16)}sign(t){return n5(this._key,t)}get public(){if(this._publicKey==null)throw new _("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new y0(this._publicKey)}decrypt(t){return c5(this._key,t)}marshal(){return Gr.jwkToPkcs1(this._key)}get bytes(){return Be.encode({Type:pt.RSA,Data:this.marshal()}).subarray()}equals(t){return vt(this.bytes,t.bytes)}hash(){let t=bt.digest(this.bytes);return de(t)?t.then(({bytes:r})=>r):t.bytes}async id(){let t=await this.public.hash();return W(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new g0.default.util.ByteBuffer(this.marshal()),i=g0.default.asn1.fromDer(n),o=g0.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return g0.default.pki.encryptRsaPrivateKey(o,t,s)}else{if(r==="libp2p-key")return Nn(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function xl(e){let t=Gr.pkcs1ToJwk(e);if(M1(t)>m0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await Es(t);return new Un(r.privateKey,r.publicKey)}function vl(e){let t=Gr.pkixToJwk(e);if(M1(t)>m0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new y0(t)}async function bl(e){if(M1(e)>m0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Es(e);return new Un(t.privateKey,t.publicKey)}async function wl(e){if(e>m0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await r5(e);return new Un(t.privateKey,t.publicKey)}var Rs={};_t(Rs,{Secp256k1PrivateKey:()=>v0,Secp256k1PublicKey:()=>x0,generateKeyPair:()=>Ul,unmarshalSecp256k1PrivateKey:()=>Dl,unmarshalSecp256k1PublicKey:()=>kl});var El=(e,t,r)=>e&t^~e&r,Sl=(e,t,r)=>e&t^e&r^t&r,Il=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]),Ir=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ar=new Uint32Array(64),Is=class extends _n{constructor(){super(64,32,8,!1),this.A=Ir[0]|0,this.B=Ir[1]|0,this.C=Ir[2]|0,this.D=Ir[3]|0,this.E=Ir[4]|0,this.F=Ir[5]|0,this.G=Ir[6]|0,this.H=Ir[7]|0}get(){let{A:t,B:r,C:n,D:i,E:o,F:s,G:a,H:c}=this;return[t,r,n,i,o,s,a,c]}set(t,r,n,i,o,s,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)Ar[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let p=Ar[l-15],d=Ar[l-2],h=Ee(p,7)^Ee(p,18)^p>>>3,g=Ee(d,17)^Ee(d,19)^d>>>10;Ar[l]=g+Ar[l-7]+h+Ar[l-16]|0}let{A:n,B:i,C:o,D:s,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let p=Ee(a,6)^Ee(a,11)^Ee(a,25),d=f+p+El(a,c,u)+Il[l]+Ar[l]|0,g=(Ee(n,2)^Ee(n,13)^Ee(n,22))+Sl(n,i,o)|0;f=u,u=c,c=a,a=s+d|0,s=o,o=i,i=n,n=d+g|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,s,a,c,u,f)}roundClean(){Ar.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var u5=C1(()=>new Is);function Al(e){let t=h0(e);Ke(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:Bl,hexToBytes:Tl}=P1,Yr={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=Yr;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:Bl(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=Yr,r=typeof e=="string"?Tl(e):e;if(!Se(r))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}=Yr._parseInt(r.subarray(2)),{d:s,l:a}=Yr._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s}},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,s=i.length/2,a=r(o),c=r(s);return`30${r(s+o+4)}02${c}${i}02${a}${n}`}},ar=BigInt(0),pe=BigInt(1),lw=BigInt(2),f5=BigInt(3),hw=BigInt(4);function Cl(e){let t=Al(e),{Fp:r}=t,n=t.toBytes||((h,g,y)=>{let m=g.toAffine();return nr(Uint8Array.from([4]),r.toBytes(m.x),r.toBytes(m.y))}),i=t.fromBytes||(h=>{let g=h.subarray(1),y=r.fromBytes(g.subarray(0,r.BYTES)),m=r.fromBytes(g.subarray(r.BYTES,2*r.BYTES));return{x:y,y:m}});function o(h){let{a:g,b:y}=t,m=r.sqr(h),x=r.mul(m,h);return r.add(r.add(x,r.mul(h,g)),y)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function s(h){return typeof h=="bigint"&&ar<h&&h<t.n}function a(h){if(!s(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:g,nByteLength:y,wrapPrivateKey:m,n:x}=t;if(g&&typeof h!="bigint"){if(Se(h)&&(h=er(h)),typeof h!="string"||!g.includes(h.length))throw new Error("Invalid key");h=h.padStart(y*2,"0")}let v;try{v=typeof h=="bigint"?h:rr(At("private key",h,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof h}`)}return m&&(v=lt(v,x)),a(v),v}let u=new Map;function f(h){if(!(h instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(g,y,m){if(this.px=g,this.py=y,this.pz=m,g==null||!r.isValid(g))throw new Error("x required");if(y==null||!r.isValid(y))throw new Error("y required");if(m==null||!r.isValid(m))throw new Error("z required")}static fromAffine(g){let{x:y,y:m}=g||{};if(!g||!r.isValid(y)||!r.isValid(m))throw new Error("invalid affine point");if(g instanceof l)throw new Error("projective point not allowed");let x=v=>r.eql(v,r.ZERO);return x(y)&&x(m)?l.ZERO:new l(y,m,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(g){let y=r.invertBatch(g.map(m=>m.pz));return g.map((m,x)=>m.toAffine(y[x])).map(l.fromAffine)}static fromHex(g){let y=l.fromAffine(i(At("pointHex",g)));return y.assertValidity(),y}static fromPrivateKey(g){return l.BASE.multiply(c(g))}_setWindowSize(g){this._WINDOW_SIZE=g,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:g,y}=this.toAffine();if(!r.isValid(g)||!r.isValid(y))throw new Error("bad point: x or y not FE");let m=r.sqr(y),x=o(g);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:g}=this.toAffine();if(r.isOdd)return!r.isOdd(g);throw new Error("Field doesn't support isOdd")}equals(g){f(g);let{px:y,py:m,pz:x}=this,{px:v,py:T,pz:E}=g,S=r.eql(r.mul(y,E),r.mul(v,x)),L=r.eql(r.mul(m,E),r.mul(T,x));return S&&L}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){let{a:g,b:y}=t,m=r.mul(y,f5),{px:x,py:v,pz:T}=this,E=r.ZERO,S=r.ZERO,L=r.ZERO,N=r.mul(x,x),H=r.mul(v,v),z=r.mul(T,T),V=r.mul(x,v);return V=r.add(V,V),L=r.mul(x,T),L=r.add(L,L),E=r.mul(g,L),S=r.mul(m,z),S=r.add(E,S),E=r.sub(H,S),S=r.add(H,S),S=r.mul(E,S),E=r.mul(V,E),L=r.mul(m,L),z=r.mul(g,z),V=r.sub(N,z),V=r.mul(g,V),V=r.add(V,L),L=r.add(N,N),N=r.add(L,N),N=r.add(N,z),N=r.mul(N,V),S=r.add(S,N),z=r.mul(v,T),z=r.add(z,z),N=r.mul(z,V),E=r.sub(E,N),L=r.mul(z,H),L=r.add(L,L),L=r.add(L,L),new l(E,S,L)}add(g){f(g);let{px:y,py:m,pz:x}=this,{px:v,py:T,pz:E}=g,S=r.ZERO,L=r.ZERO,N=r.ZERO,H=t.a,z=r.mul(t.b,f5),V=r.mul(y,v),X=r.mul(m,T),ft=r.mul(x,E),Kt=r.add(y,m),C=r.add(v,T);Kt=r.mul(Kt,C),C=r.add(V,X),Kt=r.sub(Kt,C),C=r.add(y,x);let k=r.add(v,E);return C=r.mul(C,k),k=r.add(V,ft),C=r.sub(C,k),k=r.add(m,x),S=r.add(T,E),k=r.mul(k,S),S=r.add(X,ft),k=r.sub(k,S),N=r.mul(H,C),S=r.mul(z,ft),N=r.add(S,N),S=r.sub(X,N),N=r.add(X,N),L=r.mul(S,N),X=r.add(V,V),X=r.add(X,V),ft=r.mul(H,ft),C=r.mul(z,C),X=r.add(X,ft),ft=r.sub(V,ft),ft=r.mul(H,ft),C=r.add(C,ft),V=r.mul(X,C),L=r.add(L,V),V=r.mul(k,C),S=r.mul(Kt,S),S=r.sub(S,V),V=r.mul(Kt,X),N=r.mul(k,N),N=r.add(N,V),new l(S,L,N)}subtract(g){return this.add(g.negate())}is0(){return this.equals(l.ZERO)}wNAF(g){return d.wNAFCached(this,u,g,y=>{let m=r.invertBatch(y.map(x=>x.pz));return y.map((x,v)=>x.toAffine(m[v])).map(l.fromAffine)})}multiplyUnsafe(g){let y=l.ZERO;if(g===ar)return y;if(a(g),g===pe)return this;let{endo:m}=t;if(!m)return d.unsafeLadder(this,g);let{k1neg:x,k1:v,k2neg:T,k2:E}=m.splitScalar(g),S=y,L=y,N=this;for(;v>ar||E>ar;)v&pe&&(S=S.add(N)),E&pe&&(L=L.add(N)),N=N.double(),v>>=pe,E>>=pe;return x&&(S=S.negate()),T&&(L=L.negate()),L=new l(r.mul(L.px,m.beta),L.py,L.pz),S.add(L)}multiply(g){a(g);let y=g,m,x,{endo:v}=t;if(v){let{k1neg:T,k1:E,k2neg:S,k2:L}=v.splitScalar(y),{p:N,f:H}=this.wNAF(E),{p:z,f:V}=this.wNAF(L);N=d.constTimeNegate(T,N),z=d.constTimeNegate(S,z),z=new l(r.mul(z.px,v.beta),z.py,z.pz),m=N.add(z),x=H.add(V)}else{let{p:T,f:E}=this.wNAF(y);m=T,x=E}return l.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(g,y,m){let x=l.BASE,v=(E,S)=>S===ar||S===pe||!E.equals(x)?E.multiplyUnsafe(S):E.multiply(S),T=v(this,y).add(v(g,m));return T.is0()?void 0:T}toAffine(g){let{px:y,py:m,pz:x}=this,v=this.is0();g==null&&(g=v?r.ONE:r.inv(x));let T=r.mul(y,g),E=r.mul(m,g),S=r.mul(x,g);if(v)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:T,y:E}}isTorsionFree(){let{h:g,isTorsionFree:y}=t;if(g===pe)return!0;if(y)return y(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:g,clearCofactor:y}=t;return g===pe?this:y?y(l,this):this.multiplyUnsafe(t.h)}toRawBytes(g=!0){return this.assertValidity(),n(l,this,g)}toHex(g=!0){return er(this.toRawBytes(g))}}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=D1(l,t.endo?Math.ceil(p/2):p);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:s}}function Rl(e){let t=h0(e);return Ke(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function l5(e){let t=Rl(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(C){return ar<C&&C<r.ORDER}function a(C){return lt(C,n)}function c(C){return L1(C,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:p}=Cl({...t,toBytes(C,k,P){let D=k.toAffine(),A=r.toBytes(D.x),F=nr;return P?F(Uint8Array.from([k.hasEvenY()?2:3]),A):F(Uint8Array.from([4]),A,r.toBytes(D.y))},fromBytes(C){let k=C.length,P=C[0],D=C.subarray(1);if(k===i&&(P===2||P===3)){let A=rr(D);if(!s(A))throw new Error("Point is not on curve");let F=l(A),M=r.sqrt(F),q=(M&pe)===pe;return(P&1)===1!==q&&(M=r.neg(M)),{x:A,y:M}}else if(k===o&&P===4){let A=r.fromBytes(D.subarray(0,r.BYTES)),F=r.fromBytes(D.subarray(r.BYTES,2*r.BYTES));return{x:A,y:F}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}}),d=C=>er(Sr(C,t.nByteLength));function h(C){let k=n>>pe;return C>k}function g(C){return h(C)?a(-C):C}let y=(C,k,P)=>rr(C.slice(k,P));class m{constructor(k,P,D){this.r=k,this.s=P,this.recovery=D,this.assertValidity()}static fromCompact(k){let P=t.nByteLength;return k=At("compactSignature",k,P*2),new m(y(k,0,P),y(k,P,2*P))}static fromDER(k){let{r:P,s:D}=Yr.toSig(At("DER",k));return new m(P,D)}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(k){return new m(this.r,this.s,k)}recoverPublicKey(k){let{r:P,s:D,recovery:A}=this,F=L(At("msgHash",k));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 q=A&1?"03":"02",Q=u.fromHex(q+d(M)),j=c(M),at=a(-F*j),tt=a(D*j),nt=u.BASE.multiplyAndAddUnsafe(Q,at,tt);if(!nt)throw new Error("point at infinify");return nt.assertValidity(),nt}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return Kr(this.toDERHex())}toDERHex(){return Yr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Kr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let x={isValidPrivateKey(C){try{return f(C),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let C=us(t.n);return R4(t.randomBytes(C),t.n)},precompute(C=8,k=u.BASE){return k._setWindowSize(C),k.multiply(BigInt(3)),k}};function v(C,k=!0){return u.fromPrivateKey(C).toRawBytes(k)}function T(C){let k=Se(C),P=typeof C=="string",D=(k||P)&&C.length;return k?D===i||D===o:P?D===2*i||D===2*o:C instanceof u}function E(C,k,P=!0){if(T(C))throw new Error("first arg must be private key");if(!T(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(f(C)).toRawBytes(P)}let S=t.bits2int||function(C){let k=rr(C),P=C.length*8-t.nBitLength;return P>0?k>>BigInt(P):k},L=t.bits2int_modN||function(C){return a(S(C))},N=l0(t.nBitLength);function H(C){if(typeof C!="bigint")throw new Error("bigint expected");if(!(ar<=C&&C<N))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Sr(C,t.nByteLength)}function z(C,k,P=V){if(["recovered","canonical"].some(wt=>wt in P))throw new Error("sign() legacy options not supported");let{hash:D,randomBytes:A}=t,{lowS:F,prehash:M,extraEntropy:q}=P;F==null&&(F=!0),C=At("msgHash",C),M&&(C=At("prehashed msgHash",D(C)));let Q=L(C),j=f(k),at=[H(j),H(Q)];if(q!=null){let wt=q===!0?A(r.BYTES):q;at.push(At("extraEntropy",wt))}let tt=nr(...at),nt=Q;function Rt(wt){let Vt=S(wt);if(!p(Vt))return;let qt=c(Vt),Nt=u.BASE.multiply(Vt).toAffine(),zt=a(Nt.x);if(zt===ar)return;let qe=a(qt*a(nt+zt*j));if(qe===ar)return;let Tr=(Nt.x===zt?0:2)|Number(Nt.y&pe),Fn=qe;return F&&h(qe)&&(Fn=g(qe),Tr^=1),new m(zt,Fn,Tr)}return{seed:tt,k2sig:Rt}}let V={lowS:t.lowS,prehash:!1},X={lowS:t.lowS,prehash:!1};function ft(C,k,P=V){let{seed:D,k2sig:A}=z(C,k,P),F=t;return os(F.hash.outputLen,F.nByteLength,F.hmac)(D,A)}u.BASE._setWindowSize(8);function Kt(C,k,P,D=X){let A=C;if(k=At("msgHash",k),P=At("publicKey",P),"strict"in D)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:M}=D,q,Q;try{if(typeof A=="string"||Se(A))try{q=m.fromDER(A)}catch(Nt){if(!(Nt instanceof Yr.Err))throw Nt;q=m.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:Nt,s:zt}=A;q=new m(Nt,zt)}else throw new Error("PARSE");Q=u.fromHex(P)}catch(Nt){if(Nt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&q.hasHighS())return!1;M&&(k=t.hash(k));let{r:j,s:at}=q,tt=L(k),nt=c(at),Rt=a(tt*nt),wt=a(j*nt),Vt=u.BASE.multiplyAndAddUnsafe(Q,Rt,wt)?.toAffine();return Vt?a(Vt.x)===j:!1}return{CURVE:t,getPublicKey:v,getSharedSecret:E,sign:ft,verify:Kt,ProjectivePoint:u,Signature:m,utils:x}}var K1=class extends Cn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,y4(t);let n=f0(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 s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),o.fill(0)}update(t){return Tn(this),this.iHash.update(t),this}digestInto(t){Tn(this),Jo(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:s,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=o,t.blockLen=s,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},As=(e,t,r)=>new K1(e,t).update(r).digest();As.create=(e,t)=>new K1(e,t);function _l(e){return{hash:e,hmac:(t,...r)=>As(e,t,T1(...r)),randomBytes:Rn}}function h5(e,t){let r=n=>l5({...e,..._l(n)});return Object.freeze({...r(t),create:r})}var g5=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),d5=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Pl=BigInt(1),Bs=BigInt(2),p5=(e,t)=>(e+t/Bs)/t;function Ll(e){let t=g5,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=xt(f,r,t)*f%t,p=xt(l,r,t)*f%t,d=xt(p,Bs,t)*u%t,h=xt(d,i,t)*d%t,g=xt(h,o,t)*h%t,y=xt(g,a,t)*g%t,m=xt(y,c,t)*y%t,x=xt(m,a,t)*g%t,v=xt(x,r,t)*f%t,T=xt(v,s,t)*h%t,E=xt(T,n,t)*u%t,S=xt(E,Bs,t);if(!Ts.eql(Ts.sqr(S),e))throw new Error("Cannot find square root");return S}var Ts=N1(g5,void 0,void 0,{sqrt:Ll}),Te=h5({a:BigInt(0),b:BigInt(7),Fp:Ts,n:d5,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=d5,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Pl*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=p5(o*e,t),c=p5(-n*e,t),u=lt(e-a*r-c*i,t),f=lt(-a*n-c*o,t),l=u>s,p=f>s;if(l&&(u=t-u),p&&(f=t-f),u>s||f>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:p,k2:f}}}},u5),Iw=BigInt(0);var Aw=Te.ProjectivePoint;function y5(){return Te.utils.randomPrivateKey()}function m5(e,t){let r=bt.digest(t instanceof Uint8Array?t:t.subarray());if(de(r))return r.then(({digest:n})=>Te.sign(n,e).toDERRawBytes()).catch(n=>{throw new _(String(n),"ERR_INVALID_INPUT")});try{return Te.sign(r.digest,e).toDERRawBytes()}catch(n){throw new _(String(n),"ERR_INVALID_INPUT")}}function x5(e,t,r){let n=bt.digest(r instanceof Uint8Array?r:r.subarray());if(de(n))return n.then(({digest:i})=>Te.verify(t,i,e)).catch(i=>{throw new _(String(i),"ERR_INVALID_INPUT")});try{return Te.verify(t,n.digest,e)}catch(i){throw new _(String(i),"ERR_INVALID_INPUT")}}function v5(e){return Te.ProjectivePoint.fromHex(e).toRawBytes(!0)}function b5(e){try{Te.getPublicKey(e,!0)}catch(t){throw new _(String(t),"ERR_INVALID_PRIVATE_KEY")}}function Cs(e){try{Te.ProjectivePoint.fromHex(e)}catch(t){throw new _(String(t),"ERR_INVALID_PUBLIC_KEY")}}function w5(e){try{return Te.getPublicKey(e,!0)}catch(t){throw new _(String(t),"ERR_INVALID_PRIVATE_KEY")}}var x0=class{_key;constructor(t){Cs(t),this._key=t}verify(t,r){return x5(this._key,r,t)}marshal(){return v5(this._key)}get bytes(){return Ae.encode({Type:pt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return vt(this.bytes,t.bytes)}async hash(){let t=bt.digest(this.bytes),r;return de(t)?{bytes:r}=await t:r=t.bytes,r}},v0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??w5(t),b5(this._key),Cs(this._publicKey)}sign(t){return m5(this._key,t)}get public(){return new x0(this._publicKey)}marshal(){return this._key}get bytes(){return Be.encode({Type:pt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return vt(this.bytes,t.bytes)}hash(){let t=bt.digest(this.bytes);return de(t)?t.then(({bytes:r})=>r):t.bytes}async id(){let t=await this.public.hash();return W(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Nn(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Dl(e){return new v0(e)}function kl(e){return new x0(e)}async function Ul(){let e=y5();return new v0(e)}var Ve={rsa:Ss,ed25519:ms,secp256k1:Rs};function _s(e){let t=Object.keys(Ve).join(" / ");return new _(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Ps(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return Ve[e];throw _s(e)}async function Ol(e,t){return Ps(e).generateKeyPair(t??2048)}async function Fl(e,t,r){if(e.toLowerCase()!=="ed25519")throw new _("Seed key derivation is unimplemented for RSA or secp256k1","ERR_UNSUPPORTED_KEY_DERIVATION_TYPE");return ys(t)}function Ml(e){let t=Ae.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case pt.RSA:return Ve.rsa.unmarshalRsaPublicKey(r);case pt.Ed25519:return Ve.ed25519.unmarshalEd25519PublicKey(r);case pt.Secp256k1:return Ve.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw _s(t.Type??"unknown")}}function Kl(e,t){return t=(t??"rsa").toLowerCase(),Ps(t),e.bytes}async function E5(e){let t=Be.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case pt.RSA:return Ve.rsa.unmarshalRsaPrivateKey(r);case pt.Ed25519:return Ve.ed25519.unmarshalEd25519PrivateKey(r);case pt.Secp256k1:return Ve.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw _s(t.Type??"RSA")}}function Vl(e,t){return t=(t??"rsa").toLowerCase(),Ps(t),e.bytes}async function ql(e,t){try{let i=await $4(e,t);return await E5(i)}catch{}let r=V1.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new _("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=V1.default.asn1.toDer(V1.default.pki.privateKeyToAsn1(r));return n=Bt(n.getBytes(),"ascii"),Ve.rsa.unmarshalRsaPrivateKey(n)}var zl=Et(qo(),1),Hl=Et(Tt(),1);function z1(e,t){if(globalThis.Buffer!=null)return globalThis.Buffer.compare(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 cr(e,t){if(e.length!==t.length)throw new Error("Inputs should have the same length");let r=an(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return Le(r)}var H1=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 me(t),n={peerId:t,distance:cr(this.originDhtKey,r)};this.peerDistances.push(n),this.peerDistances.sort((i,o)=>z1(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(me)),n=this.peerDistances[this.peerDistances.length-1].distance;for(let i of r){let o=cr(this.originDhtKey,i);if(z1(o,n)<0)return!0}return!1}};var $1=class{log;routingTable;network;validators;queryManager;peerStore;peerId;constructor(t,r){let{routingTable:n,network:i,validators:o,queryManager:s,logPrefix:a}=r;this.routingTable=n,this.network=i,this.validators=o,this.queryManager=s,this.peerStore=t.peerStore,this.peerId=t.peerId,this.log=t.logger.forComponent(`${a}: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.peerStore.get(n)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}}if(r==null)try{r=await this.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)}}async*_getValueSingle(t,r,n={}){let i={type:J.GET_VALUE,key:r};yield*this.network.sendRequest(t,i,n)}async*getPublicKeyFromNode(t,r={}){let n=la(t);for await(let i of this._getValueSingle(t,n,r))if(yield i,i.name==="PEER_RESPONSE"&&i.record!=null){let o=await W2(q1.marshalPublicKey({bytes:i.record.value}));if(!o.equals(t))throw new _("public key does not match id","ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID");if(o.publicKey==null)throw new _("public key missing","ERR_PUBLIC_KEY_MISSING");yield Qn({from:t,value:o.publicKey},r)}throw new _(`Node not responding with its public key: ${t.toString()}`,"ERR_INVALID_RECORD")}async*findPeer(t,r={}){if(this.log("findPeer %p",t),r.useCache!==!1){let i=await this.findPeerLocal(t);if(i!=null){this.log("found local"),yield O0({from:this.peerId,peer:i},r);return}}let n=!1;if(r.useNetwork!==!1){let i=this,o=async function*({peer:s,signal:a}){let c={type:J.FIND_NODE,key:t.toBytes()};for await(let u of i.network.sendRequest(s,c,{...r,signal:a}))if(yield u,u.name==="PEER_RESPONSE"){let f=u.closer.find(l=>l.id.equals(t));f!=null&&(yield O0({from:u.from,peer:f},r))}};for await(let s of this.queryManager.run(t.toBytes(),o,r))s.name==="FINAL_PEER"&&(n=!0),yield s}n||(yield ie({from:this.peerId,error:new _("Not found","ERR_NOT_FOUND")},r))}async*getClosestPeers(t,r={}){this.log("getClosestPeers to %b",t);let n=await gr(t),i=this.routingTable.closestPeers(n),o=this,s=new H1(n,this.routingTable.kBucketSize);await Promise.all(i.map(async c=>{await s.add(c)}));let a=async function*({peer:c,signal:u}){o.log("closerPeersSingle %s from %p",W(t,"base32"),c);let f={type:J.FIND_NODE,key:t};yield*o.network.sendRequest(c,f,{...r,signal:u})};for await(let c of this.queryManager.run(t,a,r))yield c,c.name==="PEER_RESPONSE"&&await Promise.all(c.closer.map(async u=>{await s.add(u.id)}));this.log("found %d peers close to %b",s.length,t);for(let c of s.peers)try{let u=await this.peerStore.get(c);yield O0({from:this.peerId,peer:{id:c,multiaddrs:u.addresses.map(({multiaddr:f})=>f)}},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 s="invalid record received, discarded";this.log(s),yield ie({from:i.from,error:new _(s,"ERR_INVALID_RECORD")},n);continue}yield i}}async _verifyRecordOnline(t){if(t.timeReceived==null)throw new _("invalid record received","ERR_INVALID_RECORD");await fn(this.validators,new kt(t.key,t.value,t.timeReceived))}async getCloserPeersOffline(t,r){let n=await gr(t),i=this.routingTable.closestPeers(n),o=[];for(let s of i)if(!s.equals(r))try{let a=await this.peerStore.get(s);o.push({id:s,multiaddrs:a.addresses.map(({multiaddr:c})=>c)})}catch(a){if(a.code!=="ERR_NOT_FOUND")throw a}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 R5=Et(I5(),1);var w0=Et(B5(),1);var Br=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Ns=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},T5=e=>globalThis.DOMException===void 0?new Ns(e):new DOMException(e),C5=e=>{let t=e.reason===void 0?T5("This operation was aborted."):e.reason;return t instanceof Error?t:T5(t)};function Qr(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,s,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(C5(p)),p.addEventListener("abort",()=>{f(C5(p))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new Br;s=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,s),s=void 0},c}function Ds(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var E0=class{#t=[];enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=r.priority){this.#t.push(n);return}let i=Ds(this.#t,n,(o,s)=>s.priority-o.priority);this.#t.splice(i,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}};var Wr=class extends w0.default{#t;#o;#i=0;#a;#c;#p=0;#r;#u;#e;#g;#n=0;#f;#s;#y;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:E0,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${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 \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#o=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#e=new t.queueClass,this.#g=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#y=t.throwOnTimeout===!0,this.#s=t.autoStart===!1}get#v(){return this.#o||this.#i<this.#a}get#b(){return this.#n<this.#f}#w(){this.#n--,this.#l(),this.emit("next")}#E(){this.#x(),this.#m(),this.#u=void 0}get#S(){let t=Date.now();if(this.#r===void 0){let r=this.#p-t;if(r<0)this.#i=this.#t?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#E()},r)),!0}return!1}#l(){if(this.#e.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#s){let t=!this.#S;if(this.#v&&this.#b){let r=this.#e.dequeue();return r?(this.emit("active"),r(),t&&this.#m(),!0):!1}}return!1}#m(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#i===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#i=this.#t?this.#n:0,this.#h()}#h(){for(;this.#l(););}get concurrency(){return this.#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})`);this.#f=t,this.#h()}async#I(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#y,...r},new Promise((n,i)=>{this.#e.enqueue(async()=>{this.#n++,this.#i++;try{r.signal?.throwIfAborted();let o=t({signal:r.signal});r.timeout&&(o=Qr(Promise.resolve(o),{milliseconds:r.timeout})),r.signal&&(o=Promise.race([o,this.#I(r.signal)]));let s=await o;n(s),this.emit("completed",s)}catch(o){if(o instanceof Br&&!r.throwOnTimeout){n();return}i(o),this.emit("error",o)}finally{this.#w()}},r),this.emit("add"),this.#l()})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return this.#s?(this.#s=!1,this.#h(),this):this}pause(){this.#s=!0}clear(){this.#e=new this.#g}async onEmpty(){this.#e.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#e.size<t||await this.#d("next",()=>this.#e.size<t)}async onIdle(){this.#n===0&&this.#e.size===0||await this.#d("idle")}async#d(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})}get size(){return this.#e.size}sizeBy(t){return this.#e.filter(t).length}get pending(){return this.#n}get isPaused(){return this.#s}};var Y1=class{log;datastore;cache;cleanupInterval;provideValidity;syncQueue;started;cleaner;constructor(t,r={}){let{cacheSize:n,cleanupInterval:i,provideValidity:o}=r;this.log=t.logger.forComponent("libp2p:kad-dht:providers"),this.datastore=t.datastore,this.cleanupInterval=i??36e5,this.provideValidity=o??864e5,this.cache=(0,R5.default)(n??256),this.syncQueue=new Wr({concurrency:1}),this.started=!1}isStarted(){return this.started}async start(){this.started||(this.started=!0,this.cleaner=setInterval(()=>{this._cleanup().catch(t=>{this.log.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.datastore.batch(),s=this.datastore.query({prefix:yi});for await(let a of s)try{let{cid:c,peerId:u}=_5(a.key),f=P5(a.value).getTime(),l=Date.now(),p=l-f,d=p>this.provideValidity;if(this.log("comparing: %d - %d = %d > %d %s",l,f,p,this.provideValidity,d?"(expired)":""),d){n++,o.delete(a.key);let h=i.get(c)??new Set;h.add(u),i.set(c,h)}r++}catch(c){this.log.error(c.message)}i.size>0?(this.log("deleting %d / %d entries",n,r),await o.commit()):this.log("nothing to delete");for(let[a,c]of i){let u=S0(a),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)}}this.log("Cleanup successful (%dms)",Date.now()-t)})}async _getProvidersMap(t){let r=S0(t),n=this.cache.get(r);return n==null&&(n=await Xl(this.datastore,t),this.cache.set(r,n)),n}async addProvider(t,r){await this.syncQueue.add(async()=>{this.log("%p provides %s",r,t);let n=await this._getProvidersMap(t);this.log("loaded %s provs",n.size);let i=new Date;n.set(r.toString(),i);let o=S0(t);this.cache.set(o,n),await Zl(this.datastore,t,r,i)})}async getProviders(t){return this.syncQueue.add(async()=>(this.log("get providers for %s",t),[...(await this._getProvidersMap(t)).keys()].map(n=>It(n))),{throwOnTimeout:!0})}};function S0(e){let t=typeof e=="string"?e:W(e.multihash.bytes,"base32");return`${yi}/${t}`}async function Zl(e,t,r,n){let i=[S0(t),"/",r.toString()].join(""),o=new pn(i),s=Ne(n.getTime());await e.put(o,s)}function _5(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 Xl(e,t){let r=new Map,n=e.query({prefix:S0(t)});for await(let i of n){let{peerId:o}=_5(i.key);r.set(o,P5(i.value))}return r}function P5(e){return new Date(se(e))}function On(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}async function*L5(e,t,r,n){let i=jr({objectMode:!0}),o=l=>{n("clean up queue, results %d, queue size %d, pending tasks %d",i.readableLength,e.size,e.pending),e.clear(),i.end(l)},s=l=>{l!=null&&i.push(l)},a=l=>{n("queue error",l),o(l)},c=()=>{n("queue idle"),o()},u=()=>{n("abort queue"),o(new _("Query aborted","ERR_QUERY_ABORTED"))},f=()=>{o()};e.on("completed",s),e.on("error",a),e.on("idle",c),t.addEventListener("abort",u),r.addEventListener("cleanup",f);try{yield*i}finally{e.removeListener("completed",s),e.removeListener("error",a),e.removeListener("idle",c),t.removeEventListener("abort",u),r.removeEventListener("cleanup",f)}}var Jl=BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");async function*N5(e){let{key:t,startingPeer:r,ourPeerId:n,signal:i,query:o,alpha:s,pathIndex:a,numPaths:c,cleanUp:u,queryFuncTimeout:f,log:l,peersSeen:p}=e,d=new Wr({concurrency:s}),h=await gr(t);function g(y,m){if(y==null)return;p.add(y);let x=BigInt("0x"+W(cr(m,h),"base16"));d.add(async()=>{let v=[i];f!=null&&v.push(AbortSignal.timeout(f));let T=On(v);try{for await(let E of o({key:t,peer:y,signal:T,pathIndex:a,numPaths:c})){if(T.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 me(S.id);if(BigInt("0x"+W(cr(L,h),"base16"))>x){l("skipping %p as they are not closer to %b than %p",S.id,t,y);continue}l("querying closer peer %p",S.id),g(S.id,L)}d.emit("completed",E)}}catch(E){if(!i.aborted)return ie({from:y,error:E},e)}finally{T.clear()}},{priority:Jl-x}).catch(v=>{l.error(v)})}g(r,await me(r)),yield*L5(d,i,u,l)}var W1=class{disjointPaths;alpha;shutDownController;running;queries;logger;peerId;routingTable;initialQuerySelfHasRun;logPrefix;metrics;constructor(t,r){let{disjointPaths:n=20,alpha:i=3,logPrefix:o}=r;this.logPrefix=o,this.disjointPaths=n??20,this.running=!1,this.alpha=i??3,this.queries=0,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun,this.routingTable=r.routingTable,this.logger=t.logger,this.peerId=t.peerId,t.metrics!=null&&(this.metrics={runningQueries:t.metrics.registerMetric(`${o.replaceAll(":","_")}_running_queries`),queryTime:t.metrics.registerMetric(`${o.replaceAll(":","_")}_query_time_seconds`)}),this.shutDownController=new AbortController,Zr(1/0,this.shutDownController.signal)}isStarted(){return this.running}async start(){this.running=!0}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();if(n.signal==null){let u=AbortSignal.timeout(3e4);Zr(1/0,u),n={...n,signal:u}}let o=On([this.shutDownController.signal,n.signal]);Zr(1/0,o);let s=this.logger.forComponent(`${this.logPrefix}:query:`+W(t,"base58btc")),a=Date.now(),c=new jt;try{n.isSelfQuery!==!0&&this.initialQuerySelfHasRun!=null&&(s("waiting for initial query-self query before continuing"),await Promise.race([new Promise((h,g)=>{o.addEventListener("abort",()=>{g(new C0("Query was aborted before self-query ran"))})}),this.initialQuerySelfHasRun.promise]),this.initialQuerySelfHasRun=void 0),s("query:start"),this.queries++,this.metrics?.runningQueries.update(this.queries);let u=await gr(t),f=this.routingTable.closestPeers(u),l=f.slice(0,Math.min(this.disjointPaths,f.length));if(f.length===0){s.error("Running query with no peers");return}let p=new xe,d=l.map((h,g)=>N5({key:t,startingPeer:h,ourPeerId:this.peerId,signal:o,query:r,pathIndex:g,numPaths:l.length,alpha:this.alpha,cleanUp:c,queryFuncTimeout:n.queryFuncTimeout,log:s,peersSeen:p,onProgress:n.onProgress}));for await(let h of P0(...d))yield h,h.name==="QUERY_ERROR"&&s("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 Qt("cleanup")),s("query:done in %dms",Date.now()-a)}}};function t9(e){return e[Symbol.asyncIterator]!=null}function e9(e){if(t9(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 Z1=e9;function r9(e){return e[Symbol.asyncIterator]!=null}function n9(e,t){return r9(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 D5=n9;var i9=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 o9(e,t,r){let n,i=new Promise((o,s)=>{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 a=[t].flat(),c=[],{addListener:u,removeListener:f}=i9(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(),s(d)};n=()=>{for(let d of a)f(d,l);for(let d of r.rejectionEvents)f(d,p)};for(let d of a)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=Qr(i,{milliseconds:r.timeout});return o.cancel=n,o}return i}function k5(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=o9(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var X1=class{log;peerId;peerRouting;routingTable;count;interval;initialInterval;queryTimeout;started;timeoutId;controller;initialQuerySelfHasRun;querySelfPromise;constructor(t,r){let{peerRouting:n,logPrefix:i,count:o,interval:s,queryTimeout:a,routingTable:c}=r;this.peerId=t.peerId,this.log=t.logger.forComponent(`${i}:query-self`),this.started=!1,this.peerRouting=n,this.routingTable=c,this.count=o??20,this.interval=s??3e5,this.initialInterval=r.initialInterval??1e3,this.queryTimeout=a??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=Pt(),this.started){this.controller=new AbortController;let t=On([this.controller.signal,AbortSignal.timeout(this.queryTimeout)]);Zr(1/0,t);try{this.routingTable.size===0&&(this.log("routing table was empty, waiting for some peers before running query"),await k5(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 fr(this.peerRouting.getClosestPeers(this.peerId.toBytes(),{signal:t,isSelfQuery:!0}),i=>D5(i,this.count),async i=>Z1(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 ks(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var I0=class{#t=[];enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=r.priority){this.#t.push(n);return}let i=ks(this.#t,n,(o,s)=>s.priority-o.priority);this.#t.splice(i,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}};var A0=class extends w0.default{#t;#o;#i=0;#a;#c;#p=0;#r;#u;#e;#g;#n=0;#f;#s;#y;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:I0,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${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 \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#o=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#e=new t.queueClass,this.#g=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#y=t.throwOnTimeout===!0,this.#s=t.autoStart===!1}get#v(){return this.#o||this.#i<this.#a}get#b(){return this.#n<this.#f}#w(){this.#n--,this.#l(),this.emit("next")}#E(){this.#x(),this.#m(),this.#u=void 0}get#S(){let t=Date.now();if(this.#r===void 0){let r=this.#p-t;if(r<0)this.#i=this.#t?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#E()},r)),!0}return!1}#l(){if(this.#e.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#s){let t=!this.#S;if(this.#v&&this.#b){let r=this.#e.dequeue();return r?(this.emit("active"),r(),t&&this.#m(),!0):!1}}return!1}#m(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#i===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#i=this.#t?this.#n:0,this.#h()}#h(){for(;this.#l(););}get concurrency(){return this.#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})`);this.#f=t,this.#h()}async#I(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#y,...r},new Promise((n,i)=>{this.#e.enqueue(async()=>{this.#n++,this.#i++;try{r.signal?.throwIfAborted();let o=t({signal:r.signal});r.timeout&&(o=Qr(Promise.resolve(o),{milliseconds:r.timeout})),r.signal&&(o=Promise.race([o,this.#I(r.signal)]));let s=await o;n(s),this.emit("completed",s)}catch(o){if(o instanceof Br&&!r.throwOnTimeout){n();return}i(o),this.emit("error",o)}finally{this.#w()}},r),this.emit("add"),this.#l()})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return this.#s?(this.#s=!1,this.#h(),this):this}pause(){this.#s=!0}clear(){this.#e=new this.#g}async onEmpty(){this.#e.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#e.size<t||await this.#d("next",()=>this.#e.size<t)}async onIdle(){this.#n===0&&this.#e.size===0||await this.#d("idle")}async#d(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})}get size(){return this.#e.size}sizeBy(t){return this.#e.filter(t).length}get pending(){return this.#n}get isPaused(){return this.#s}};function u9(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var Us=class{#t=[];enqueue(t,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new _("missing peer id",di);let o={priority:i,peerId:n,run:t};if(this.size>0&&this.#t[this.size-1].priority>=i){this.#t.push(o);return}let s=u9(this.#t,o,(a,c)=>c.priority-a.priority);this.#t.splice(s,0,o)}dequeue(){return this.#t.shift()?.run}filter(t){if(t.peerId!=null){let r=t.peerId;return this.#t.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}},J1=class extends A0{results;constructor(t={}){super({...t,queueClass:Us}),this.results=new xn}hasJob(t){return this.sizeBy({peerId:t})>0}async joinJob(t){let r=this.results.get(t);if(r==null)throw new _("No job found for peer id","ERR_NO_JOB_FOR_PEER_ID");return r===!0&&(r=Pt(),this.results.set(t,r)),r.promise}async add(t,r){let n=r?.peerId;if(n==null)throw new _("missing peer id",di);return this.results.set(r.peerId,!0),super.add(async i=>{try{let o=await t(i),s=this.results.get(n);return s!=null&&s!==!0&&s.resolve(o),o}catch(o){let s=this.results.get(n);throw s!=null&&s!==!0&&s.reject(o),o}finally{this.results.delete(n)}},r)}clear(){this.results.clear(),super.clear()}};function U5(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 Os(){return{contacts:[],dontSplit:!1,left:null,right:null}}function B0(e,t){if(!(t instanceof Uint8Array))throw new TypeError(e+" is not a Uint8Array")}var j1=class e extends jt{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,B0("option.localNodeId as parameter 1",this.localNodeId),this.root=Os()}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),s=Math.max(t.length,r.length);for(;i<o;++i)n=n*256+(t[i]^r[i]);for(;i<s;++i)n=n*256+255;return n}add(t){B0("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(B0("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 s=i.pop();if(s!=null)if(s.contacts===null){let a=this._determineNode(s,t,o++);i.push(s.left===a?s.right:s.left),i.push(a)}else n=n.concat(s.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){B0("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(U5(t.contacts[n].id,r))return n;return-1}remove(t){B0("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=Os(),t.right=Os();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(!U5(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 f9="kad-close",l9=50,O5=20,h9=1e4,d9=10,ti=class extends jt{kBucketSize;kb;pingQueue;log;components;pingTimeout;pingConcurrency;running;protocol;tagName;tagValue;metrics;constructor(t,r){super();let{kBucketSize:n,pingTimeout:i,logPrefix:o,pingConcurrency:s,protocol:a,tagName:c,tagValue:u}=r;this.components=t,this.log=t.logger.forComponent(`${o}:routing-table`),this.kBucketSize=n??O5,this.pingTimeout=i??h9,this.pingConcurrency=s??d9,this.running=!1,this.protocol=a,this.tagName=c??f9,this.tagValue=u??l9;let f=()=>{this.metrics?.pingQueueSize.update(this.pingQueue.size),this.metrics?.pingRunning.update(this.pingQueue.pending)};this.pingQueue=new J1({concurrency:this.pingConcurrency}),this.pingQueue.addListener("add",f),this.pingQueue.addListener("next",f),this.pingQueue.addListener("error",l=>{this.log.error("error pinging peer",l)}),this.components.metrics!=null&&(this.metrics={routingTableSize:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_routing_table_size`),pingQueueSize:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_ping_queue_size`),pingRunning:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_ping_running`)})}isStarted(){return this.running}async start(){this.running=!0;let t=new j1({localNodeId:await me(this.components.peerId),numberOfNodesPerKBucket:this.kBucketSize,numberOfNodesToPing:1});this.kb=t,t.addEventListener("ping",r=>{this._onPing(r).catch(n=>{this.log.error("could not process k-bucket ping event",n)})}),this._tagPeers(t)}async stop(){this.running=!1,this.pingQueue.clear(),this.kb=void 0}_tagPeers(t){let r=new xe,n=pa(()=>{let i=new xe(t.closest(t.localNodeId,O5).map(a=>a.peer)),o=i.difference(r),s=r.difference(i);Promise.resolve().then(async()=>{for(let a of o)await this.components.peerStore.merge(a,{tags:{[this.tagName]:{value:this.tagValue}}});for(let a of s)await this.components.peerStore.merge(a,{tags:{[this.tagName]:void 0}})}).catch(a=>{this.log.error("Could not update peer tags",a)}),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})})}async _onPing(t){if(!this.running)return;let{oldContacts:r,newContact:n}=t.detail,o=(await Promise.all(r.map(async s=>this.pingQueue.hasJob(s.peer)?this.pingQueue.joinJob(s.peer):this.pingQueue.add(async()=>{let a;try{let c={signal:AbortSignal.timeout(this.pingTimeout)};this.log("pinging old contact %p",s.peer),a=await(await this.components.connectionManager.openConnection(s.peer,c)).newStream(this.protocol,c);let f=n0(a);await f.write({type:J.PING},ue,c);let l=await f.read(ue,c);if(await f.unwrap().close(),l.type!==J.PING)throw new _(`Incorrect message type received, expected PING got ${l.type}`,"ERR_BAD_PING_RESPONSE");return!0}catch(c){return this.running&&this.kb!=null&&(this.log.error("could not ping peer %p",s.peer,c),this.log("evicting old contact after ping failed %p",s.peer),this.kb.remove(s.id)),a?.abort(c),!1}finally{this.metrics?.routingTableSize.update(this.size)}},{peerId:s.peer})))).filter(s=>s).length;this.running&&o<r.length&&this.kb!=null&&(this.log("adding new contact %p",n.peer),this.kb.add(n))}get size(){return this.kb==null?0:this.kb.count()}async find(t){let r=await me(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 me(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 me(t);this.kb.remove(r),this.metrics?.routingTableSize.update(this.size)}};var F5=[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 ei=15,ri=class{log;peerRouting;routingTable;refreshInterval;refreshQueryTimeout;commonPrefixLengthRefreshedAt;refreshTimeoutId;constructor(t,r){let{peerRouting:n,routingTable:i,refreshInterval:o,refreshQueryTimeout:s,logPrefix:a}=r;this.log=t.logger.forComponent(`${a}:routing-table:refresh`),this.peerRouting=n,this.routingTable=i,this.refreshInterval=o??3e5,this.refreshQueryTimeout=s??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 s=Math.min(2*(o+1),n.length-1);for(let a=o+1;a<s+1;a++)try{await this._refreshCommonPrefixLength(a,i,t)}catch(c){this.log.error(c)}}}catch(s){this.log.error(s)}})).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 Z1(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>ei&&(t=ei);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=$r(2),n=(r[1]<<8)+r[0],i=await this._makePeerId(this.routingTable.kb.localNodeId,n,t);return $e(i)}async _makePeerId(t,r,n){if(n>ei)throw new Error(`Cannot generate peer ID for common prefix length greater than ${ei}`);let s=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(0,!1)^32768>>n,a=65535<<16-(n+1),c=s&a|r&~a,u=F5[c],f=new ArrayBuffer(34),l=new DataView(f,0,f.byteLength);return l.setUint8(0,bt.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=cr(this.routingTable.kb.localNodeId,t),n=0;for(let i of r)if(i===0)n++;else break;yield n}}};var ni=class{providers;log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:add-provider`),this.providers=r.providers}async handle(t,r){if(this.log("start"),r.key==null||r.key.length===0)throw new _("Missing key","ERR_MISSING_KEY");let n;try{n=Wt.decode(r.key)}catch{throw new _("Invalid CID","ERR_INVALID_CID")}(r.providers==null||r.providers.length===0)&&this.log.error("no providers found in message"),await Promise.all(r.providers.map(async i=>{if(!t.equals(i.id)){this.log("invalid provider peer %p from %p",i.id,t);return}if(i.multiaddrs.length<1){this.log("no valid addresses for provider %p. Ignore",t);return}this.log("received provider %p for %s (addrs %s)",t,n,i.multiaddrs.map(o=>Jn(o).toString())),await this.providers.addProvider(n,$e(i.id))}))}};var ii=class{peerRouting;peerInfoMapper;peerId;addressManager;log;constructor(t,r){let{peerRouting:n,logPrefix:i}=r;this.log=t.logger.forComponent(`${i}:rpc:handlers:find-node`),this.peerId=t.peerId,this.addressManager=t.addressManager,this.peerRouting=n,this.peerInfoMapper=r.peerInfoMapper}async handle(t,r){this.log("incoming request from %p for peers closer to %b",t,r.key);let n=[];if(r.key==null)throw new _("Invalid FIND_NODE message received - key was missing","ERR_INVALID_MESSAGE");vt(this.peerId.toBytes(),r.key)?n=[{id:this.peerId,multiaddrs:this.addressManager.getAddresses().map(o=>o.decapsulateCode(ct("p2p").code))}]:n=await this.peerRouting.getCloserPeersOffline(r.key,t);let i={type:J.FIND_NODE,clusterLevel:r.clusterLevel,closer:n.map(this.peerInfoMapper).filter(({multiaddrs:o})=>o.length).map(o=>({id:o.id.toBytes(),multiaddrs:o.multiaddrs.map(s=>s.bytes)})),providers:[]};return i.closer.length===0&&this.log("could not find any peers closer to %b than %p",r.key,t),i}};var oi=class{peerRouting;providers;peerStore;peerInfoMapper;log;constructor(t,r){let{peerRouting:n,providers:i,logPrefix:o}=r;this.log=t.logger.forComponent(`${o}:rpc:handlers:get-providers`),this.peerStore=t.peerStore,this.peerRouting=n,this.providers=i,this.peerInfoMapper=r.peerInfoMapper}async handle(t,r){if(r.key==null)throw new _("Invalid FIND_NODE message received - key was missing","ERR_INVALID_MESSAGE");let n;try{n=Wt.decode(r.key)}catch{throw new _("Invalid CID","ERR_INVALID_CID")}this.log("%p asking for providers for %s",t,n);let[i,o]=await Promise.all([this.providers.getProviders(n),this.peerRouting.getCloserPeersOffline(r.key,t)]),s=await this._getPeers(i),a=await this._getPeers(o.map(({id:u})=>u)),c={type:J.GET_PROVIDERS,key:r.key,clusterLevel:r.clusterLevel,closer:a.map(this.peerInfoMapper).filter(({multiaddrs:u})=>u.length).map(u=>({id:u.id.toBytes(),multiaddrs:u.multiaddrs.map(f=>f.bytes)})),providers:s.map(this.peerInfoMapper).filter(({multiaddrs:u})=>u.length).map(u=>({id:u.id.toBytes(),multiaddrs:u.multiaddrs.map(f=>f.bytes)}))};return this.log("got %s providers %s closerPeers",c.providers.length,c.closer.length),c}async _getAddresses(t){return[]}async _getPeers(t){let r=[];for(let n of t)try{let i=await this.peerStore.get(n),o=this.peerInfoMapper({id:n,multiaddrs:i.addresses.map(({multiaddr:s})=>s)});o.multiaddrs.length>0&&r.push(o)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}return r}};var si=class{peerStore;datastore;peerRouting;log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:get-value`),this.peerStore=t.peerStore,this.datastore=t.datastore,this.peerRouting=r.peerRouting}async handle(t,r){let n=r.key;if(this.log("%p asked for key %b",t,n),n==null||n.length===0)throw new _("Invalid key","ERR_INVALID_KEY");let i={type:J.GET_VALUE,key:n,clusterLevel:r.clusterLevel,closer:[],providers:[]};if(ha(n)){this.log("is public key");let a=da(n),c;try{let u=await this.peerStore.get(a);if(u.id.publicKey==null)throw new _("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 this.log("returning found public key"),i.record=new kt(n,c,new Date).serialize(),i}let[o,s]=await Promise.all([this._checkLocalDatastore(n),this.peerRouting.getCloserPeersOffline(n,t)]);return o!=null&&(this.log("had record for %b in local datastore",n),i.record=o.serialize()),s.length>0&&(this.log("had %s closer peers in routing table",s.length),i.closer=s.map(a=>({id:a.id.toBytes(),multiaddrs:a.multiaddrs.map(c=>c.bytes)}))),i}async _checkLocalDatastore(t){this.log("checkLocalDatastore looking for %b",t);let r=Ye(t),n;try{n=await this.datastore.get(r)}catch(o){if(o.code==="ERR_NOT_FOUND")return;throw o}let i=kt.deserialize(n);if(i==null)throw new _("Invalid record","ERR_INVALID_RECORD");if(i.timeReceived==null||Date.now()-i.timeReceived.getTime()>1296e5){await this.datastore.delete(r);return}return i}};var ai=class{log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:ping`)}async handle(t,r){return this.log("ping from %p",t),r}};var ci=class{components;validators;log;constructor(t,r){let{validators:n}=r;this.components=t,this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:put-value`),this.validators=n}async handle(t,r){let n=r.key;if(this.log("%p asked us to store value for key %b",t,n),r.record==null){let i=`Empty record from: ${t.toString()}`;throw this.log.error(i),new _(i,"ERR_EMPTY_RECORD")}try{let i=kt.deserialize(r.record);await fn(this.validators,i),i.timeReceived=new Date;let o=Ye(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(i){this.log("did not put record for key %b into datastore %o",n,i)}return r}};var ui=class{handlers;routingTable;log;constructor(t,r){let{providers:n,peerRouting:i,validators:o,logPrefix:s,peerInfoMapper:a}=r;this.log=t.logger.forComponent(`${s}:rpc`),this.routingTable=r.routingTable,this.handlers={[J.GET_VALUE.toString()]:new si(t,{peerRouting:i,logPrefix:s}),[J.PUT_VALUE.toString()]:new ci(t,{validators:o,logPrefix:s}),[J.FIND_NODE.toString()]:new ii(t,{peerRouting:i,logPrefix:s,peerInfoMapper:a}),[J.ADD_PROVIDER.toString()]:new ni(t,{providers:n,logPrefix:s}),[J.GET_PROVIDERS.toString()]:new oi(t,{peerRouting:i,providers:n,logPrefix:s,peerInfoMapper:a}),[J.PING.toString()]:new ai(t,{logPrefix:s})}}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(s){this.log.error(s)}let o=this;await fr(r,s=>r0(s),async function*(s){for await(let a of s){let c=ue.decode(a);o.log("incoming %s from %p",c.type,i);let u=await o.handleMessage(i,c);u!=null&&(yield ue.encode(u))}},s=>Nr(s),r)}).catch(r=>{this.log.error(r)})}};var fi=class extends jt{log;components;protocol;running;registrarId;constructor(t,r){super();let{protocol:n,logPrefix:i}=r;this.components=t,this.log=t.logger.forComponent(`${i}:topology-listener`),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 Qt("peer",{detail:t}))}}))}async stop(){this.running=!1,this.registrarId!=null&&(this.components.registrar.unregister(this.registrarId),this.registrarId=void 0)}};async function*M5(e,t,r,n={}){yield*Xr(e,i=>async()=>{if(i.multiaddrs.length>0)return i;try{return await t.findPeer(i.id,{...n,useCache:!1})}catch(o){r.error("could not find peer",o)}})}var Fs=class{dht;peerInfoMapper;peerRouting;log;constructor(t,r,n,i){this.dht=t,this.peerInfoMapper=r,this.peerRouting=n,this.log=i}async provide(t,r={}){await gi(this.dht.provide(t,r))}async*findProviders(t,r={}){let n=this,i=async function*(){for await(let o of n.dht.findProviders(t,r))o.name==="PROVIDER"&&(yield*o.providers)};for await(let o of ur(M5(i(),this.peerRouting,this.log,r)))o!=null&&(o=this.peerInfoMapper(o),o.multiaddrs.length!==0&&(yield o))}async put(t,r,n){await gi(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 _("Not found","ERR_NOT_FOUND")}},Ms=class{dht;peerInfoMapper;log;constructor(t,r,n){this.dht=t,this.peerInfoMapper=r,this.log=n}async findPeer(t,r={}){for await(let n of this.dht.findPeer(t,r))if(n.name==="FINAL_PEER"&&this.peerInfoMapper(n.peer).multiaddrs.length>0)return n.peer;throw new _("Not found","ERR_NOT_FOUND")}async*getClosestPeers(t,r={}){let n=this,i=async function*(){for await(let o of n.dht.getClosestPeers(t,r))o.name==="FINAL_PEER"&&(yield o.peer)};for await(let o of ur(M5(i(),this,this.log,r)))o!=null&&(o=this.peerInfoMapper(o),o.multiaddrs.length!==0&&(yield o))}},m9=32,x9=64,li=class extends jt{protocol;routingTable;providers;network;peerRouting;components;log;running;kBucketSize;clientMode;validators;selectors;queryManager;contentFetching;contentRouting;routingTableRefresh;rpc;topologyListener;querySelf;maxInboundStreams;maxOutboundStreams;dhtContentRouting;dhtPeerRouting;peerInfoMapper;constructor(t,r){super();let{kBucketSize:n,clientMode:i,validators:o,selectors:s,querySelfInterval:a,protocol:c,logPrefix:u,pingTimeout:f,pingConcurrency:l,maxInboundStreams:p,maxOutboundStreams:d,providers:h}=r,g=u??"libp2p:kad-dht";this.running=!1,this.components=t,this.log=t.logger.forComponent(g),this.protocol=c??i2,this.kBucketSize=n??20,this.clientMode=i??!0,this.maxInboundStreams=p??m9,this.maxOutboundStreams=d??x9,this.peerInfoMapper=r.peerInfoMapper??$0,this.routingTable=new ti(t,{kBucketSize:n,pingTimeout:f,pingConcurrency:l,protocol:this.protocol,logPrefix:g}),this.providers=new Y1(t,h??{}),this.validators={...G2,...o},this.selectors={...$2,...s},this.network=new i1(t,{protocol:this.protocol,logPrefix:g});let y=Pt();r.allowQueryWithZeroPeers===!0&&y.resolve(),this.queryManager=new W1(t,{disjointPaths:Math.ceil(this.kBucketSize/2),logPrefix:g,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.peerRouting=new $1(t,{routingTable:this.routingTable,network:this.network,validators:this.validators,queryManager:this.queryManager,logPrefix:g}),this.contentFetching=new G0(t,{validators:this.validators,selectors:this.selectors,peerRouting:this.peerRouting,queryManager:this.queryManager,network:this.network,logPrefix:g}),this.contentRouting=new X0(t,{network:this.network,peerRouting:this.peerRouting,queryManager:this.queryManager,routingTable:this.routingTable,providers:this.providers,logPrefix:g}),this.routingTableRefresh=new ri(t,{peerRouting:this.peerRouting,routingTable:this.routingTable,logPrefix:g}),this.rpc=new ui(t,{routingTable:this.routingTable,providers:this.providers,peerRouting:this.peerRouting,validators:this.validators,logPrefix:g,peerInfoMapper:this.peerInfoMapper}),this.topologyListener=new fi(t,{protocol:this.protocol,logPrefix:g}),this.querySelf=new X1(t,{peerRouting:this.peerRouting,interval:a,initialInterval:r.initialQuerySelfInterval,logPrefix:g,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.network.addEventListener("peer",m=>{let x=m.detail;this.onPeerConnect(x).catch(v=>{this.log.error("could not add %p to routing table",x.id,v)}),this.dispatchEvent(new Qt("peer",{detail:x}))}),this.topologyListener.addEventListener("peer",m=>{let x=m.detail;Promise.resolve().then(async()=>{let v=await this.components.peerStore.get(x),T={id:x,multiaddrs:v.addresses.map(({multiaddr:E})=>E),protocols:v.protocols};await this.onPeerConnect(T)}).catch(v=>{this.log.error("could not add %p to routing table",x,v)})}),this.dhtPeerRouting=new Ms(this,this.peerInfoMapper,this.log),this.dhtContentRouting=new Fs(this,this.peerInfoMapper,this.dhtPeerRouting,this.log),r.clientMode==null&&t.events.addEventListener("self:peer:update",m=>{this.log("received update of self-peer info"),Promise.resolve().then(async()=>{let x=m.detail.peer.addresses.some(({multiaddr:T})=>ga(T)),v=this.getMode();x&&v==="client"?await this.setMode("server"):v==="server"&&!x&&await this.setMode("client")}).catch(x=>{this.log.error("error setting dht server mode",x)})})}get[Xs](){return this.dhtContentRouting}get[t2](){return this.dhtPeerRouting}get[Js](){return this}async onPeerConnect(t){if(this.log("peer %p connected",t.id),t=this.peerInfoMapper(t),t.multiaddrs.length===0){this.log("ignoring %p as there were no valid addresses in %s after filtering",t.id,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}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"),this.querySelf.start(),await Promise.all([this.providers.start(),this.queryManager.start(),this.network.start(),this.routingTable.start(),this.topologyListener.start(),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 Ks;(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"})(Ks||(Ks={}));var Vs;(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"})(Vs||(Vs={}));function v9(e){return t=>new li(t,e)}return j5(b9);})();
|
|
26
|
+
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),O6=new RegExp(`(?:^${me}$)|(?:^${H0}$)`),F6=new RegExp(`^${me}$`),M6=new RegExp(`^${H0}$`),lo=e=>e&&e.exact?O6:new RegExp(`(?:${mr(e)}${me}${mr(e)})|(?:${mr(e)}${H0}${mr(e)})`,"g");lo.v4=e=>e&&e.exact?F6:new RegExp(`${mr(e)}${me}${mr(e)}`,"g");lo.v6=e=>e&&e.exact?M6:new RegExp(`${mr(e)}${H0}${mr(e)}`,"g");var ua=lo;var $0=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,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="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||(s+=1,r!==void 0&&s>r))return}if(s!==0)return!n&&c&&s>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 s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return r[i]=s[0],r[i+1]=s[1],r[i+2]=s[2],r[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(n+2),[a]=t(o.subarray(0,s));return r.set(o.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var fa=45,K6=15,vn=new $0;function ho(e){if(!(e.length>K6))return vn.new(e).parseWith(()=>vn.readIPv4Addr())}function po(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>fa))return vn.new(e).parseWith(()=>vn.readIPv6Addr())}function G0(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>fa))return vn.new(e).parseWith(()=>vn.readIPAddr())}function la(e){return!!ho(e)}function ha(e){return!!po(e)}function bn(e){return!!G0(e)}var ma=bt(pa(),1),{isValid:V6,parse:q6}=ma.default,z6=["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"],H6=z6.map(e=>new ya.Netmask(e));function $6(e){for(let t of H6)if(t.contains(e))return!0;return!1}function ga(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 xa=e=>{if(V6(e)){let t=q6(e);if(t.kind()==="ipv4")return $6(t.toNormalizedString());if(t.kind()==="ipv6")return ga(e)}else if(bn(e)&&ua.v6().test(e))return ga(e)};var Q0=xa;function go(e,t){if(globalThis.Buffer!=null)return De(globalThis.Buffer.concat(e,t));t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=ln(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return De(r)}function yo(e,t="utf8"){let r=K0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?De(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var G6=yo("/pk/");function W0(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=Q0(n);return i==null?!0:!i})}}function va(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=Q0(n);return i??!1})}}function ba(e){return e}async function xr(e){return(await xt.digest(e)).digest}async function xe(e){return xr(e.toBytes())}function Je(e){return new xn(`${h2}/${Dt(e,"base32")}`,!1)}function wa(e){return go([G6,e.toBytes()])}function Ea(e){return Dt(e.subarray(0,4))==="/pk/"}function Sa(e){return Ze(e.subarray(4))}function mo(e,t){let r=new Date;return new Lt(e,t,r).serialize()}function Ia(e,t=100){let r;return()=>{clearTimeout(r),r=setTimeout(()=>{e()},t)}}var Y6=290,Q6=54,W6=55,Z6=56,X6=4,J6=41;function Aa(e){let t=e.stringTuples();for(let r of t)if(r[0]===Y6)return!1;if(t[0][0]===Q6||t[0][0]===W6||t[0][0]===Z6)return!0;if(t[0][0]===X6||t[0][0]===J6){let r=Q0(`${t[0][1]}`);return r==null||!r}return!1}var Z0=class{log;components;validators;selectors;peerRouting;queryManager;network;constructor(t,r){let{validators:n,selectors:i,peerRouting:o,queryManager:s,network:a,logPrefix:c}=r;this.components=t,this.log=t.logger.forComponent(`${c}:content-fetching`),this.validators=n,this.selectors=i,this.peerRouting=o,this.queryManager=s,this.network=a}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=Lt.deserialize(n);return await pn(this.validators,i),i}async*sendCorrectionRecord(t,r,n,i={}){this.log("sendCorrection for %b",t);let o=mo(t,n);for(let{value:s,from:a}of r){if(Ge(s,n)){this.log("record was ok");continue}if(this.components.peerId.equals(a)){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={type:X.PUT_VALUE,key:t,record:o};for await(let f of this.network.sendRequest(a,u,i))f.name==="PEER_RESPONSE"&&f.record!=null&&Ge(f.record.value,Lt.deserialize(o).value)&&(c=!0),yield f;c||(yield oe({from:a,error:new _("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=mo(t,r),o=Je(t);this.log(`storing record for key ${o.toString()}`),await this.components.datastore.put(o,i.subarray()),yield*dr(this.peerRouting.getClosestPeers(t,{signal:n.signal}),s=>en(s,a=>async()=>{if(a.name!=="FINAL_PEER")return[a];let c=[],u={type:X.PUT_VALUE,key:t,record:i};this.log("send put to %p",a.peer.id);for await(let f of this.network.sendRequest(a.peer.id,u,n))c.push(f),f.name==="PEER_RESPONSE"&&(f.record!=null&&Ge(f.record.value,Lt.deserialize(i).value)||c.push(oe({from:a.peer.id,error:new _("value not put correctly","ERR_PUT_VALUE_INVALID")},n)));return c}),s=>hr(s,{ordered:!1,concurrency:3}),async function*(s){for await(let a of s)yield*a})}async*get(t,r={}){this.log("get %b",t);let n=[];for await(let a of this.getMany(t,r))a.name==="VALUE"&&n.push(a),yield a;if(n.length===0)return;let i=n.map(a=>a.value),o=0;try{o=W2(this.selectors,t,i)}catch(a){if(a.code!=="ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")throw a}let s=i[o];if(this.log("GetValue %b %b",t,s),s==null)throw new _("best value was not found","ERR_NOT_FOUND");yield*this.sendCorrectionRecord(t,n,s,r),yield n[o]}async*getMany(t,r={}){this.log("getMany values for %b",t);try{let o=await this.getLocal(t);yield Jn({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:s}){for await(let a of n.peerRouting.getValueOrPeers(o,t,{signal:s}))yield a,a.name==="PEER_RESPONSE"&&a.record!=null&&(yield Jn({from:o,value:a.record.value},r))};yield*this.queryManager.run(t,i,r)}};function je(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 En=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){return this.map.delete(t.toString())}entries(){return je(this.map.entries(),t=>[Et(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,Et(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 je(this.map.keys(),t=>Et(t))}values(){return this.map.values()}get size(){return this.map.size}};var ve=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 je(this.set.entries(),t=>{let r=Et(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=Et(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return je(this.set.values(),t=>Et(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 X0=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return je(this.list.entries(),t=>Et(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return je(this.list.entries(),t=>[t[0],Et(t[1])])}every(t){return this.list.every((r,n)=>t(Et(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let o=Et(n);t(o,i,this)&&r.push(o)}),r}find(t){let r=this.list.find((n,i)=>t(Et(n),i,this));if(r!=null)return Et(r)}findIndex(t){return this.list.findIndex((r,n)=>t(Et(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(Et(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 Et(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return Et(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}clear(){this.list=[]}get length(){return this.list.length}};function J0(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}function ne(e,t="utf8"){let r=U0[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 j6=Math.pow(2,7),tc=Math.pow(2,14),ec=Math.pow(2,21),vo=Math.pow(2,28),bo=Math.pow(2,35),wo=Math.pow(2,42),Eo=Math.pow(2,49),it=128,Gt=127;function Yt(e){if(e<j6)return 1;if(e<tc)return 2;if(e<ec)return 3;if(e<vo)return 4;if(e<bo)return 5;if(e<wo)return 6;if(e<Eo)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function rc(e,t,r=0){switch(Yt(e)){case 8:t[r++]=e&255|it,e/=128;case 7:t[r++]=e&255|it,e/=128;case 6:t[r++]=e&255|it,e/=128;case 5:t[r++]=e&255|it,e/=128;case 4:t[r++]=e&255|it,e>>>=7;case 3:t[r++]=e&255|it,e>>>=7;case 2:t[r++]=e&255|it,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function nc(e,t,r=0){switch(Yt(e)){case 8:t.set(r++,e&255|it),e/=128;case 7:t.set(r++,e&255|it),e/=128;case 6:t.set(r++,e&255|it),e/=128;case 5:t.set(r++,e&255|it),e/=128;case 4:t.set(r++,e&255|it),e>>>=7;case 3:t.set(r++,e&255|it),e>>>=7;case 2:t.set(r++,e&255|it),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function ic(e,t){let r=e[t],n=0;if(n+=r&Gt,r<it||(r=e[t+1],n+=(r&Gt)<<7,r<it)||(r=e[t+2],n+=(r&Gt)<<14,r<it)||(r=e[t+3],n+=(r&Gt)<<21,r<it)||(r=e[t+4],n+=(r&Gt)*vo,r<it)||(r=e[t+5],n+=(r&Gt)*bo,r<it)||(r=e[t+6],n+=(r&Gt)*wo,r<it)||(r=e[t+7],n+=(r&Gt)*Eo,r<it))return n;throw new RangeError("Could not decode varint")}function oc(e,t){let r=e.get(t),n=0;if(n+=r&Gt,r<it||(r=e.get(t+1),n+=(r&Gt)<<7,r<it)||(r=e.get(t+2),n+=(r&Gt)<<14,r<it)||(r=e.get(t+3),n+=(r&Gt)<<21,r<it)||(r=e.get(t+4),n+=(r&Gt)*vo,r<it)||(r=e.get(t+5),n+=(r&Gt)*bo,r<it)||(r=e.get(t+6),n+=(r&Gt)*wo,r<it)||(r=e.get(t+7),n+=(r&Gt)*Eo,r<it))return n;throw new RangeError("Could not decode varint")}function ke(e,t,r=0){return t==null&&(t=$t(Yt(e))),t instanceof Uint8Array?rc(e,t,r):nc(e,t,r)}function se(e,t=0){return e instanceof Uint8Array?ic(e,t):oc(e,t)}function fe(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=$t(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return Lr(r)}var wy=parseInt("0xFFFF",16),Ey=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);var Ca=la,fc=ha,So=function(e){let t=0;if(e=e.toString().trim(),Ca(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(fc(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=Ca(r[n]),s;o&&(s=So(r[n]),r[n]=ne(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,ne(s.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(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")},Ra=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 In={},Io={},hc=[[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"]];hc.forEach(e=>{let t=dc(...e);Io[t.code]=t,In[t.name]=t});function dc(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function at(e){if(typeof e=="number"){if(Io[e]!=null)return Io[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(In[e]!=null)return In[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var nm=at("ip4"),im=at("ip6"),om=at("ipcidr");function Bo(e,t){switch(at(e).code){case 4:case 41:return gc(t);case 42:return La(t);case 6:case 273:case 33:case 132:return Da(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return La(t);case 421:return vc(t);case 444:return Na(t);case 445:return Na(t);case 466:return xc(t);default:return ne(t,"base16")}}function To(e,t){switch(at(e).code){case 4:return _a(t);case 41:return _a(t);case 42:return Pa(t);case 6:case 273:case 33:case 132:return Co(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Pa(t);case 421:return yc(t);case 444:return bc(t);case 445:return wc(t);case 466:return mc(t);default:return Gn(t,"base16")}}var Ao=Object.values(Vt).map(e=>e.decoder),pc=function(){let e=Ao[0].or(Ao[1]);return Ao.slice(2).forEach(t=>e=e.or(t)),e}();function _a(e){if(!bn(e))throw new Error("invalid ip address");return So(e)}function gc(e){let t=Ra(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!bn(t))throw new Error("invalid ip address");return t}function Co(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function Da(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function Pa(e){let t=Gn(e),r=Uint8Array.from(ke(t.length));return fe([r,t],r.length+t.length)}function La(e){let t=se(e);if(e=e.slice(Yt(t)),e.length!==t)throw new Error("inconsistent lengths");return ne(e)}function yc(e){let t;e[0]==="Q"||e[0]==="1"?t=Nr(Pt.decode(`z${e}`)).bytes:t=Xt.parse(e).multihash.bytes;let r=Uint8Array.from(ke(t.length));return fe([r,t],r.length+t.length)}function mc(e){let t=pc.decode(e),r=Uint8Array.from(ke(t.length));return fe([r,t],r.length+t.length)}function xc(e){let t=se(e),r=e.slice(Yt(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+ne(r,"base64url")}function vc(e){let t=se(e),r=e.slice(Yt(t));if(r.length!==t)throw new Error("inconsistent lengths");return ne(r,"base58btc")}function bc(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=We.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=Co(n);return fe([r,i],r.length+i.length)}function wc(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=We.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=Co(n);return fe([r,i],r.length+i.length)}function Na(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=ne(t,"base32"),i=Da(r);return`${n}:${i}`}function ka(e){e=Ro(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 s=i[o],a=at(s);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(o++,o>=i.length)throw Oa("invalid address: "+e);if(a.path===!0){n=Ro(i.slice(o).join("/")),t.push([a.code,To(a.code,n)]),r.push([a.code,n]);break}let c=To(a.code,i[o]);t.push([a.code,c]),r.push([a.code,Bo(a.code,c)])}return{string:Ua(r),bytes:Po(t),tuples:t,stringTuples:r,path:n}}function _o(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=se(e,i),s=Yt(o),a=at(o),c=Ec(a,e.slice(i+s));if(c===0){t.push([o]),r.push([o]),i+=s;continue}let u=e.slice(i+s,i+s+c);if(i+=c+s,i>e.length)throw Oa("Invalid address Uint8Array: "+ne(e,"base16"));t.push([o,u]);let f=Bo(o,u);if(r.push([o,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(e),string:Ua(r),tuples:t,stringTuples:r,path:n}}function Ua(e){let t=[];return e.map(r=>{let n=at(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),Ro(t.join("/"))}function Po(e){return fe(e.map(t=>{let r=at(t[0]),n=Uint8Array.from(ke(r.code));return t.length>1&&t[1]!=null&&(n=fe([n,t[1]])),n}))}function Ec(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+Yt(r)}}function Ro(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function Oa(e){return new Error("Error parsing address: "+e)}var Sc=Symbol.for("nodejs.util.inspect.custom"),Lo=Symbol.for("@multiformats/js-multiaddr/multiaddr"),Ic=[at("dns").code,at("dns4").code,at("dns6").code,at("dnsaddr").code],j0=class e{bytes;#t;#o;#i;#a;[Lo]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=_o(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=ka(t)}else if(Ma(t))r=_o(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#o=r.tuples,this.#i=r.stringTuples,this.#a=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",s=at("tcp"),a=at("udp"),c=at("ip4"),u=at("ip6"),f=at("dns6"),l=at("ip6zone");for(let[d,h]of this.stringTuples())d===l.code&&(o=`%${h??""}`),Ic.includes(d)&&(r=s.name,i=443,n=`${h??""}${o}`,t=d===f.code?6:4),(d===s.code||d===a.code)&&(r=at(d).name,i=parseInt(h??"")),(d===c.code||d===u.code)&&(r=at(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.#o.map(([t])=>Object.assign({},at(t)))}protoCodes(){return this.#o.map(([t])=>t)}protoNames(){return this.#o.map(([t])=>at(t).name)}tuples(){return this.#o}stringTuples(){return this.#i}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===In.p2p.code&&t.push([n,i]),n===In["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?ne(Pt.decode(`z${n}`),"base58btc"):ne(Xt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(t){return J0(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=Fa.get(r.name);if(n==null)throw new _(`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)}[Sc](){return`Multiaddr(${this.#t})`}};var Fa=new Map;function Ma(e){return!!e?.[Lo]}function r0(e){return new j0(e)}function Ka(e,t){return{id:e.id.toBytes(),multiaddrs:(e.multiaddrs??[]).map(n=>n.bytes),connection:t}}function n0(e){if(e.id==null)throw new Error("Invalid peer in message");return{id:Ze(e.id),multiaddrs:(e.multiaddrs??[]).map(t=>r0(t))}}var t1=class{log;components;network;peerRouting;queryManager;routingTable;providers;constructor(t,r){let{network:n,peerRouting:i,queryManager:o,routingTable:s,providers:a,logPrefix:c}=r;this.components=t,this.log=t.logger.forComponent(`${c}:content-routing`),this.network=n,this.peerRouting=i,this.queryManager=o,this.routingTable=s,this.providers=a}async*provide(t,r,n={}){this.log("provide %s",t),await this.providers.addProvider(t,this.components.peerId);let i={type:X.ADD_PROVIDER,key:t.multihash.bytes,providers:[Ka({id:this.components.peerId,multiaddrs:r})]},o=0,s=a=>async()=>{if(a.name!=="FINAL_PEER")return[a];let c=[];this.log("putProvider %s to %p",t,a.peer.id);try{this.log("sending provider record for %s to %p",t,a.peer.id);for await(let u of this.network.sendMessage(a.peer.id,i,n))u.name==="PEER_RESPONSE"&&(this.log("sent provider record for %s to %p",t,a.peer.id),o++),c.push(u)}catch(u){this.log.error("error sending provide record to peer %p",a.peer.id,u),c.push(oe({from:a.peer.id,error:u},n))}return c};yield*dr(this.peerRouting.getClosestPeers(t.multihash.bytes,n),a=>en(a,c=>s(c)),a=>hr(a,{ordered:!1,concurrency:3}),async function*(a){for await(let c of a)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 s=await this.providers.getProviders(t);if(s.length>0){let u=[];for(let f of s.slice(0,n))try{let l=await this.components.peerStore.get(f);u.push({id:f,multiaddrs:l.addresses.map(({multiaddr:p})=>p)})}catch(l){if(l.code!=="ERR_NOT_FOUND")throw l;this.log("no peer store entry for %p",f)}yield Xn({from:this.components.peerId,messageType:X.GET_PROVIDERS,providers:u},r),yield io({from:this.components.peerId,providers:u},r)}if(s.length>=n)return;let a=async function*({peer:u,signal:f}){let l={type:X.GET_PROVIDERS,key:i};yield*o.network.sendRequest(u,l,{...r,signal:f})},c=new ve(s);for await(let u of this.queryManager.run(i,a,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)||(c.add(l.id),f.push(l));if(f.length>0&&(yield io({from:u.from,providers:f},r)),c.size===n)return}}};var qa=Symbol.for("@achingbrain/uint8arraylist");function Va(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 e1(e){return!!e?.[qa]}var le=class e{bufs;length;[qa]=!0;constructor(...t){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(e1(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(e1(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=Va(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Va(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(e1(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 fe(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:fe(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 s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let u=t>=a&&t<c,f=r>a&&r<=c;if(u&&f){if(t===a&&r===c){n.push(s);break}let l=t-a;n.push(s.subarray(l,l+(r-t)));break}if(u){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(f){if(r===c){n.push(s);break}n.push(s.subarray(0,r-a));break}n.push(s)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!e1(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,s=new Int32Array(o);for(let l=0;l<o;l++)s[l]=-1;for(let l=0;l<i;l++)s[n[l]]=l;let a=s,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-a[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=$t(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=Ye(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=Ye(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=Ye(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=$t(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=Ye(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=Ye(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=Ye(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=Ye(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=Ye(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(!J0(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}};var r1=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=r??"ABORT_ERR"}};async function za(e,t,r){if(t==null)return e;if(t.aborted)return Promise.reject(new r1(r?.errorMessage,r?.errorCode));let n,i=new r1(r?.errorMessage,r?.errorCode);try{return await Promise.race([e,new Promise((o,s)=>{n=()=>{s(i)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var No=class{needNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.needNext=Ct(),this.haveNext=Ct()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("Have next but next was undefined");let t=this.nextResult;return this.nextResult=void 0,this.needNext.resolve(),this.needNext=Ct(),t}async throw(t){return this.ended=!0,t!=null&&this.haveNext.reject(t),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,r){await this._push(t,r)}async end(t,r){t!=null?await this.throw(t):await this._push(void 0,r)}async _push(t,r){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");this.nextResult!=null&&await this.needNext.promise,t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Ct(),await za(this.needNext.promise,r?.signal,r)}};function Ha(){return new No}var n1=class extends Error{code;constructor(t,r){super(t),this.code=r}},Do=class extends n1{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function $a(e,t){let r=Ha();e.sink(r).catch(async s=>{await r.end(s)}),e.sink=async s=>{for await(let a of s)await r.push(a);await r.end()};let n=e.source;e.source[Symbol.iterator]!=null?n=e.source[Symbol.iterator]():e.source[Symbol.asyncIterator]!=null&&(n=e.source[Symbol.asyncIterator]());let i=new le;return{read:async(s,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new Do("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(s==null){let{done:l,value:p}=await Promise.race([n.next(),u]);return l===!0?new le:p}for(;i.byteLength<s;){let{value:l,done:p}=await Promise.race([n.next(),u]);if(p===!0)throw new n1("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(l)}let f=i.sublist(0,s);return i.consume(s),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(s,a)=>{a?.signal?.throwIfAborted(),s instanceof Uint8Array?await r.push(s,a):await r.push(s.subarray(),a)},unwrap:()=>{if(i.byteLength>0){let s=e.source;e.source=async function*(){t?.yieldBytes===!1?yield i:yield*i,yield*s}()}return e}}}function i1(e){return e[Symbol.asyncIterator]!=null}var o1=e=>{let t=Yt(e),r=$t(t);return ke(e,r),o1.bytes=t,r};o1.bytes=0;function Ur(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)}()}Ur.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??o1;return new le(r(e.byteLength),e)};var An=bt(Qa(),1);var Bc=8,Tc=1024*1024*4,Or;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Or||(Or={}));var ko=e=>{let t=se(e);return ko.bytes=Yt(t),t};ko.bytes=0;function i0(e,t){let r=new le,n=Or.LENGTH,i=-1,o=t?.lengthDecoder??ko,s=t?.maxLengthLength??Bc,a=t?.maxDataLength??Tc;function*c(){for(;r.byteLength>0;){if(n===Or.LENGTH)try{if(i=o(r),i<0)throw(0,An.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,An.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=Or.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>s)throw(0,An.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Or.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Or.LENGTH}}}return i1(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,An.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,An.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}i0.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:s}=await e.next(r);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return i0(n,{...t??{},onLength:o=>{r=o}})};var s1=class extends Error{code;constructor(t,r){super(t),this.code=r}},Za=e=>se(e);Za.bytes=0;function Xa(e,t={}){let r=$a(e,t);return t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=Yt(t.maxDataLength)),{read:async i=>{let o=-1,s=new le,a=t?.lengthDecoder??Za;for(;;){s.append(await r.read(1,i));try{o=a(s)}catch(c){if(c instanceof RangeError)continue;throw c}if(t?.maxLengthLength!=null&&s.byteLength>t.maxLengthLength)throw new s1("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(o>-1)break}if(t?.maxDataLength!=null&&o>t.maxDataLength)throw new s1("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(o,i)},write:async(i,o)=>{await r.write(Ur.single(i,t),o)},writeV:async(i,o)=>{let s=new le(...i.map(a=>Ur.single(a,t)));await r.write(s,o)},unwrap:()=>r.unwrap()}}function o0(e,t){let r=Xa(e,t),n={read:async(i,o)=>{let s=await r.read(o);return i.decode(s)},write:async(i,o,s)=>{await r.write(o.encode(i),s)},writeV:async(i,o,s)=>{await r.writeV(i.map(a=>o.encode(a)),s)},pb:i=>({read:async o=>n.read(i,o),write:async(o,s)=>n.write(o,i,s),writeV:async(o,s)=>n.writeV(o,i,s),unwrap:()=>n}),unwrap:()=>r.unwrap()};return n}var a1=class extends ee{log;protocol;running;components;constructor(t,r){super();let{protocol:n}=r;this.components=t,this.log=t.logger.forComponent(`${r.logPrefix}: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;let i=r.type;if(i==null)throw new Zn("Message type was missing","ERR_INVALID_PARAMETERS");this.log("sending %s to %p",r.type,t),yield oo({peer:t},n),yield no({to:t,type:i},n);let o;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n),c=await this._writeReadMessage(a,r,n);yield Xn({from:t,messageType:c.type,closer:c.closer.map(n0),providers:c.providers.map(n0),record:c.record==null?void 0:Lt.deserialize(c.record)},n)}catch(s){this.log.error("could not send %s to %p",r.type,t,s),yield oe({from:t,error:s},n)}finally{o!=null&&await o.close()}}async*sendMessage(t,r,n={}){if(!this.running)return;let i=r.type;if(i==null)throw new Zn("Message type was missing","ERR_INVALID_PARAMETERS");this.log("sending %s to %p",r.type,t),yield oo({peer:t},n),yield no({to:t,type:i},n);let o;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n);await this._writeMessage(a,r,n),yield Xn({from:t,messageType:i},n)}catch(s){yield oe({from:t,error:s},n)}finally{o!=null&&await o.close()}}async _writeMessage(t,r,n){let i=o0(t);await i.write(r,ue,n),await i.unwrap().close(n)}async _writeReadMessage(t,r,n){let i=o0(t);await i.write(r,ue,n);let o=await i.read(ue,n);return await i.unwrap().close(n),o.closer.forEach(s=>{this.safeDispatchEvent("peer",{detail:n0(s)})}),o.providers.forEach(s=>{this.safeDispatchEvent("peer",{detail:n0(s)})}),o}};var zx=bt(h1(),1),Uc=bt(ct(),1);function Mr(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function d1(e=0){return globalThis.Buffer?.allocUnsafe!=null?Mr(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function d3(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var h3=d3("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Yo=d3("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=d1(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),kc={utf8:h3,"utf-8":h3,hex:Vt.base16,latin1:Yo,ascii:Yo,binary:Yo,...Vt},p1=kc;function Qt(e,t="utf8"){let r=p1[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Mr(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function qt(e,t="utf8"){let r=p1[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 At={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/blob/main/packages/crypto/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var p3={SHA1:20,SHA256:32,SHA512:64};var Mc={SHA1:"SHA-1",SHA256:"SHA-256",SHA512:"SHA-512"},Kc=async(e,t)=>{let r=await At.get().subtle.sign({name:"HMAC"},e,t);return new Uint8Array(r,0,r.byteLength)};async function g3(e,t){let r=Mc[e],n=await At.get().subtle.importKey("raw",t,{name:"HMAC",hash:{name:r}},!1,["sign"]);return{async digest(i){return Kc(n,i)},length:p3[e]}}var Y1={};Tt(Y1,{generateEphemeralKeyPair:()=>Q4,generateKeyPair:()=>ql,generateKeyPairFromSeed:()=>zl,importKey:()=>Yl,keyStretcher:()=>X4,keysPBM:()=>On,marshalPrivateKey:()=>Gl,marshalPublicKey:()=>$l,supportedKeys:()=>He,unmarshalPrivateKey:()=>B5,unmarshalPublicKey:()=>Hl});var Yw=bt(u0(),1),Qw=bt(m4(),1);var G1=bt(ct(),1);var Is={};Tt(Is,{Ed25519PrivateKey:()=>Yr,Ed25519PublicKey:()=>g0,generateKeyPair:()=>hl,generateKeyPairFromSeed:()=>Ss,unmarshalEd25519PrivateKey:()=>fl,unmarshalEd25519PublicKey:()=>ll});function Ee(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 Sv=bt(It(),1),Iv=bt(A1(),1),x4=bt(ct(),1);function qe(e,t){if(globalThis.Buffer!=null)return Mr(globalThis.Buffer.concat(e,t));t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=d1(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return Mr(r)}function Se(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=qe([new Uint8Array(t-r.length),r])}return qt(r,"base64url")}function ae(e){let t=R1(e);return new x4.default.jsbn.BigInteger(qt(t,"base16"),16)}function R1(e,t){let r=Qt(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=qe([new Uint8Array(t-r.length),r])}return r}function pe(e){return e==null?!1:typeof e.then=="function"&&typeof e.catch=="function"&&typeof e.finally=="function"}function v4(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function o7(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}function os(e,...t){if(!o7(e))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 b4(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");v4(e.outputLen),v4(e.blockLen)}function _n(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 w4(e,t){os(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var _1=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function E4(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}var P1=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Ie=(e,t)=>e<<32-t|e>>>t,s7=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!s7)throw new Error("Non little-endian hardware is not supported");function ss(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function h0(e){if(typeof e=="string"&&(e=ss(e)),!E4(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function L1(...e){let t=0;for(let n=0;n<e.length;n++){let i=e[n];if(!E4(i))throw new Error("Uint8Array expected");t+=i.length}let r=new Uint8Array(t);for(let n=0,i=0;n<e.length;n++){let o=e[n];r.set(o,i),i+=o.length}return r}var Pn=class{clone(){return this._cloneInto()}},Lv={}.toString;function N1(e){let t=n=>e().update(h0(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Ln(e=32){if(_1&&typeof _1.getRandomValues=="function")return _1.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function a7(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}var Nn=class extends Pn{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=P1(this.buffer)}update(t){_n(this);let{view:r,buffer:n,blockLen:i}=this;t=h0(t);let o=t.length;for(let s=0;s<o;){let a=Math.min(i-this.pos,o-s);if(a===i){let c=P1(t);for(;i<=o-s;s+=i)this.process(c,s);continue}n.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){_n(this),w4(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:s}=this;r[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>i-s&&(this.process(n,0),s=0);for(let l=s;l<i;l++)r[l]=0;a7(n,i-8,BigInt(this.length*8),o),this.process(n,0);let a=P1(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++)a.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:s,pos:a}=this;return t.length=i,t.pos=a,t.finished=o,t.destroyed=s,i%r&&t.buffer.set(n),t}};var D1=BigInt(4294967295),as=BigInt(32);function S4(e,t=!1){return t?{h:Number(e&D1),l:Number(e>>as&D1)}:{h:Number(e>>as&D1)|0,l:Number(e&D1)|0}}function c7(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:s}=S4(e[i],t);[r[i],n[i]]=[o,s]}return[r,n]}var u7=(e,t)=>BigInt(e>>>0)<<as|BigInt(t>>>0),f7=(e,t,r)=>e>>>r,l7=(e,t,r)=>e<<32-r|t>>>r,h7=(e,t,r)=>e>>>r|t<<32-r,d7=(e,t,r)=>e<<32-r|t>>>r,p7=(e,t,r)=>e<<64-r|t>>>r-32,g7=(e,t,r)=>e>>>r-32|t<<64-r,y7=(e,t)=>t,m7=(e,t)=>e,x7=(e,t,r)=>e<<r|t>>>32-r,v7=(e,t,r)=>t<<r|e>>>32-r,b7=(e,t,r)=>t<<r-32|e>>>64-r,w7=(e,t,r)=>e<<r-32|t>>>64-r;function E7(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var S7=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),I7=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,A7=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),B7=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,T7=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),C7=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0;var R7={fromBig:S4,split:c7,toBig:u7,shrSH:f7,shrSL:l7,rotrSH:h7,rotrSL:d7,rotrBH:p7,rotrBL:g7,rotr32H:y7,rotr32L:m7,rotlSH:x7,rotlSL:v7,rotlBH:b7,rotlBL:w7,add:E7,add3L:S7,add3H:I7,add4L:A7,add4H:B7,add5H:C7,add5L:T7},Y=R7;var[_7,P7]=Y.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))),Sr=new Uint32Array(80),Ir=new Uint32Array(80),cs=class extends Nn{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:s,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:p,Gh:d,Gl:h,Hh:g,Hl:y}=this;return[t,r,n,i,o,s,a,c,u,f,l,p,d,h,g,y]}set(t,r,n,i,o,s,a,c,u,f,l,p,d,h,g,y){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=o|0,this.Cl=s|0,this.Dh=a|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=g|0,this.Hl=y|0}process(t,r){for(let v=0;v<16;v++,r+=4)Sr[v]=t.getUint32(r),Ir[v]=t.getUint32(r+=4);for(let v=16;v<80;v++){let T=Sr[v-15]|0,E=Ir[v-15]|0,S=Y.rotrSH(T,E,1)^Y.rotrSH(T,E,8)^Y.shrSH(T,E,7),L=Y.rotrSL(T,E,1)^Y.rotrSL(T,E,8)^Y.shrSL(T,E,7),N=Sr[v-2]|0,H=Ir[v-2]|0,z=Y.rotrSH(N,H,19)^Y.rotrBH(N,H,61)^Y.shrSH(N,H,6),V=Y.rotrSL(N,H,19)^Y.rotrBL(N,H,61)^Y.shrSL(N,H,6),Z=Y.add4L(L,V,Ir[v-7],Ir[v-16]),ut=Y.add4H(Z,S,z,Sr[v-7],Sr[v-16]);Sr[v]=ut|0,Ir[v]=Z|0}let{Ah:n,Al:i,Bh:o,Bl:s,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:p,Fh:d,Fl:h,Gh:g,Gl:y,Hh:m,Hl:x}=this;for(let v=0;v<80;v++){let T=Y.rotrSH(l,p,14)^Y.rotrSH(l,p,18)^Y.rotrBH(l,p,41),E=Y.rotrSL(l,p,14)^Y.rotrSL(l,p,18)^Y.rotrBL(l,p,41),S=l&d^~l&g,L=p&h^~p&y,N=Y.add5L(x,E,L,P7[v],Ir[v]),H=Y.add5H(N,m,T,S,_7[v],Sr[v]),z=N|0,V=Y.rotrSH(n,i,28)^Y.rotrBH(n,i,34)^Y.rotrBH(n,i,39),Z=Y.rotrSL(n,i,28)^Y.rotrBL(n,i,34)^Y.rotrBL(n,i,39),ut=n&o^n&a^o&a,Ft=i&s^i&c^s&c;m=g|0,x=y|0,g=d|0,y=h|0,d=l|0,h=p|0,{h:l,l:p}=Y.add(u|0,f|0,H|0,z|0),u=a|0,f=c|0,a=o|0,c=s|0,o=n|0,s=i|0;let C=Y.add3L(z,Z,Ft);n=Y.add3H(C,H,V,ut),i=C|0}({h:n,l:i}=Y.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:s}=Y.add(this.Bh|0,this.Bl|0,o|0,s|0),{h:a,l:c}=Y.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=Y.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=Y.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:h}=Y.add(this.Fh|0,this.Fl|0,d|0,h|0),{h:g,l:y}=Y.add(this.Gh|0,this.Gl|0,g|0,y|0),{h:m,l:x}=Y.add(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,i,o,s,a,c,u,f,l,p,d,h,g,y,m,x)}roundClean(){Sr.fill(0),Ir.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 us=N1(()=>new cs);var U1={};Tt(U1,{bitGet:()=>F7,bitLen:()=>O7,bitMask:()=>d0,bitSet:()=>M7,bytesToHex:()=>ir,bytesToNumberBE:()=>or,bytesToNumberLE:()=>Ar,concatBytes:()=>sr,createHmacDrbg:()=>hs,ensureBytes:()=>St,equalBytes:()=>k7,hexToBytes:()=>Hr,hexToNumber:()=>ls,isBytes:()=>Ae,numberToBytesBE:()=>Br,numberToBytesLE:()=>$r,numberToHexUnpadded:()=>T4,numberToVarBytesBE:()=>D7,utf8ToBytes:()=>U7,validateObject:()=>ze});var B4=BigInt(0),k1=BigInt(1),L7=BigInt(2);function Ae(e){return e instanceof Uint8Array||e!=null&&typeof e=="object"&&e.constructor.name==="Uint8Array"}var N7=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function ir(e){if(!Ae(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=N7[e[r]];return t}function T4(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function ls(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}var nr={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function I4(e){if(e>=nr._0&&e<=nr._9)return e-nr._0;if(e>=nr._A&&e<=nr._F)return e-(nr._A-10);if(e>=nr._a&&e<=nr._f)return e-(nr._a-10)}function Hr(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length,r=t/2;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let i=0,o=0;i<r;i++,o+=2){let s=I4(e.charCodeAt(o)),a=I4(e.charCodeAt(o+1));if(s===void 0||a===void 0){let c=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+o)}n[i]=s*16+a}return n}function or(e){return ls(ir(e))}function Ar(e){if(!Ae(e))throw new Error("Uint8Array expected");return ls(ir(Uint8Array.from(e).reverse()))}function Br(e,t){return Hr(e.toString(16).padStart(t*2,"0"))}function $r(e,t){return Br(e,t).reverse()}function D7(e){return Hr(T4(e))}function St(e,t,r){let n;if(typeof t=="string")try{n=Hr(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(Ae(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 sr(...e){let t=0;for(let i=0;i<e.length;i++){let o=e[i];if(!Ae(o))throw new Error("Uint8Array expected");t+=o.length}let r=new Uint8Array(t),n=0;for(let i=0;i<e.length;i++){let o=e[i];r.set(o,n),n+=o.length}return r}function k7(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function U7(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function O7(e){let t;for(t=0;e>B4;e>>=k1,t+=1);return t}function F7(e,t){return e>>BigInt(t)&k1}var M7=(e,t,r)=>e|(r?k1:B4)<<BigInt(t),d0=e=>(L7<<BigInt(e-1))-k1,fs=e=>new Uint8Array(e),A4=e=>Uint8Array.from(e);function hs(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=fs(e),i=fs(e),o=0,s=()=>{n.fill(1),i.fill(0),o=0},a=(...l)=>r(i,n,...l),c=(l=fs())=>{i=a(A4([0]),l),n=a(),l.length!==0&&(i=a(A4([1]),l),n=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,p=[];for(;l<t;){n=a();let d=n.slice();p.push(d),l+=n.length}return sr(...p)};return(l,p)=>{s(),c(l);let d;for(;!(d=p(u()));)c();return s(),d}}var K7={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"||Ae(e),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 ze(e,t,r={}){let n=(i,o,s)=>{let a=K7[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=e[i];if(!(s&&c===void 0)&&!a(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 Nt=BigInt(0),yt=BigInt(1),Gr=BigInt(2),V7=BigInt(3),ds=BigInt(4),C4=BigInt(5),R4=BigInt(8),q7=BigInt(9),z7=BigInt(16);function ft(e,t){let r=e%t;return r>=Nt?r:t+r}function H7(e,t,r){if(r<=Nt||t<Nt)throw new Error("Expected power/modulo > 0");if(r===yt)return Nt;let n=yt;for(;t>Nt;)t&yt&&(n=n*e%r),e=e*e%r,t>>=yt;return n}function mt(e,t,r){let n=e;for(;t-- >Nt;)n*=n,n%=r;return n}function O1(e,t){if(e===Nt||t<=Nt)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=ft(e,t),n=t,i=Nt,o=yt,s=yt,a=Nt;for(;r!==Nt;){let u=n/r,f=n%r,l=i-s*u,p=o-a*u;n=r,r=f,i=s,o=a,s=l,a=p}if(n!==yt)throw new Error("invert: does not exist");return ft(i,t)}function $7(e){let t=(e-yt)/Gr,r,n,i;for(r=e-yt,n=0;r%Gr===Nt;r/=Gr,n++);for(i=Gr;i<e&&H7(i,t,e)!==e-yt;i++);if(n===1){let s=(e+yt)/ds;return function(c,u){let f=c.pow(u,s);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let o=(r+yt)/Gr;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,f=a.pow(a.mul(a.ONE,i),r),l=a.pow(c,o),p=a.pow(c,r);for(;!a.eql(p,a.ONE);){if(a.eql(p,a.ZERO))return a.ZERO;let d=1;for(let g=a.sqr(p);d<u&&!a.eql(g,a.ONE);d++)g=a.sqr(g);let h=a.pow(f,yt<<BigInt(u-d-1));f=a.sqr(h),l=a.mul(l,h),p=a.mul(p,f),u=d}return l}}function G7(e){if(e%ds===V7){let t=(e+yt)/ds;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%R4===C4){let t=(e-C4)/R4;return function(n,i){let o=n.mul(i,Gr),s=n.pow(o,t),a=n.mul(i,s),c=n.mul(n.mul(a,Gr),s),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return e%z7,$7(e)}var _4=(e,t)=>(ft(e,t)&yt)===yt,Y7=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ps(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=Y7.reduce((n,i)=>(n[i]="function",n),t);return ze(e,r)}function Q7(e,t,r){if(r<Nt)throw new Error("Expected power > 0");if(r===Nt)return e.ONE;if(r===yt)return t;let n=e.ONE,i=t;for(;r>Nt;)r&yt&&(n=e.mul(n,i)),i=e.sqr(i),r>>=yt;return n}function W7(e,t){let r=new Array(t.length),n=t.reduce((o,s,a)=>e.is0(s)?o:(r[a]=o,e.mul(o,s)),e.ONE),i=e.inv(n);return t.reduceRight((o,s,a)=>e.is0(s)?o:(r[a]=e.mul(o,r[a]),e.mul(o,s)),i),r}function gs(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function F1(e,t,r=!1,n={}){if(e<=Nt)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=gs(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let s=G7(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:d0(i),ZERO:Nt,ONE:yt,create:c=>ft(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Nt<=c&&c<e},is0:c=>c===Nt,isOdd:c=>(c&yt)===yt,neg:c=>ft(-c,e),eql:(c,u)=>c===u,sqr:c=>ft(c*c,e),add:(c,u)=>ft(c+u,e),sub:(c,u)=>ft(c-u,e),mul:(c,u)=>ft(c*u,e),pow:(c,u)=>Q7(a,c,u),div:(c,u)=>ft(c*O1(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>O1(c,e),sqrt:n.sqrt||(c=>s(a,c)),invertBatch:c=>W7(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?$r(c,o):Br(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return r?Ar(c):or(c)}});return Object.freeze(a)}function P4(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 L4(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 ys(e){let t=L4(e);return t+Math.ceil(t/2)}function N4(e,t,r=!1){let n=e.length,i=L4(t),o=ys(t);if(n<16||n<o||n>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let s=r?or(e):Ar(e),a=ft(s,t-yt)+yt;return r?$r(a,i):Br(a,i)}var X7=BigInt(0),ms=BigInt(1);function M1(e,t){let r=(i,o)=>{let s=o.negate();return i?s:o},n=i=>{let o=Math.ceil(t/i)+1,s=2**(i-1);return{windows:o,windowSize:s}};return{constTimeNegate:r,unsafeLadder(i,o){let s=e.ZERO,a=i;for(;o>X7;)o&ms&&(s=s.add(a)),a=a.double(),o>>=ms;return s},precomputeWindow(i,o){let{windows:s,windowSize:a}=n(o),c=[],u=i,f=u;for(let l=0;l<s;l++){f=u,c.push(f);for(let p=1;p<a;p++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(i,o,s){let{windows:a,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<a;h++){let g=h*c,y=Number(s&l);s>>=d,y>c&&(y-=p,s+=ms);let m=g,x=g+Math.abs(y)-1,v=h%2!==0,T=y<0;y===0?f=f.add(r(v,o[m])):u=u.add(r(T,o[x]))}return{p:u,f}},wNAFCached(i,o,s,a){let c=i._WINDOW_SIZE||1,u=o.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&o.set(i,a(u))),this.wNAF(c,u,s)}}}function p0(e){return ps(e.Fp),ze(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...gs(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Be=BigInt(0),ce=BigInt(1),K1=BigInt(2),J7=BigInt(8),j7={zip215:!0};function tl(e){let t=p0(e);return ze(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function V1(e){let t=tl(e),{Fp:r,n,prehash:i,hash:o,randomBytes:s,nByteLength:a,h:c}=t,u=K1<<BigInt(a*8)-ce,f=r.create,l=t.uvRatio||((D,A)=>{try{return{isValid:!0,value:r.sqrt(D*r.inv(A))}}catch{return{isValid:!1,value:Be}}}),p=t.adjustScalarBytes||(D=>D),d=t.domain||((D,A,F)=>{if(A.length||F)throw new Error("Contexts/pre-hash are not supported");return D}),h=D=>typeof D=="bigint"&&Be<D,g=(D,A)=>h(D)&&h(A)&&D<A,y=D=>D===Be||g(D,u);function m(D,A){if(g(D,A))return D;throw new Error(`Expected valid scalar < ${A}, got ${typeof D} ${D}`)}function x(D){return D===Be?D:m(D,n)}let v=new Map;function T(D){if(!(D instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(A,F,M,q){if(this.ex=A,this.ey=F,this.ez=M,this.et=q,!y(A))throw new Error("x required");if(!y(F))throw new Error("y required");if(!y(M))throw new Error("z required");if(!y(q))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(!y(F)||!y(M))throw new Error("invalid affine point");return new E(F,M,ce,f(F*M))}static normalizeZ(A){let F=r.invertBatch(A.map(M=>M.ez));return A.map((M,q)=>M.toAffine(F[q])).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:q,ez:Q,et:J}=this,st=f(M*M),j=f(q*q),rt=f(Q*Q),Bt=f(rt*rt),vt=f(st*A),Mt=f(rt*f(vt+j)),Kt=f(Bt+f(F*f(st*j)));if(Mt!==Kt)throw new Error("bad point: equation left != right (1)");let _t=f(M*q),zt=f(Q*J);if(_t!==zt)throw new Error("bad point: equation left != right (2)")}equals(A){T(A);let{ex:F,ey:M,ez:q}=this,{ex:Q,ey:J,ez:st}=A,j=f(F*st),rt=f(Q*q),Bt=f(M*st),vt=f(J*q);return j===rt&&Bt===vt}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:q}=this,Q=f(F*F),J=f(M*M),st=f(K1*f(q*q)),j=f(A*Q),rt=F+M,Bt=f(f(rt*rt)-Q-J),vt=j+J,Mt=vt-st,Kt=j-J,_t=f(Bt*Mt),zt=f(vt*Kt),$e=f(Bt*Kt),_r=f(Mt*vt);return new E(_t,zt,_r,$e)}add(A){T(A);let{a:F,d:M}=t,{ex:q,ey:Q,ez:J,et:st}=this,{ex:j,ey:rt,ez:Bt,et:vt}=A;if(F===BigInt(-1)){let Zs=f((Q-q)*(rt+j)),Xs=f((Q+q)*(rt-j)),mi=f(Xs-Zs);if(mi===Be)return this.double();let Js=f(J*K1*vt),js=f(st*K1*Bt),t2=js+Js,e2=Xs+Zs,r2=js-Js,Q5=f(t2*mi),W5=f(e2*r2),Z5=f(t2*r2),X5=f(mi*e2);return new E(Q5,W5,X5,Z5)}let Mt=f(q*j),Kt=f(Q*rt),_t=f(st*M*vt),zt=f(J*Bt),$e=f((q+Q)*(j+rt)-Mt-Kt),_r=zt-_t,Vn=zt+_t,Ws=f(Kt-F*Mt),H5=f($e*_r),$5=f(Vn*Ws),G5=f($e*Ws),Y5=f(_r*Vn);return new E(H5,$5,Y5,G5)}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===Be?L:this.equals(L)||F===ce?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:q}=this,Q=this.is0();A==null&&(A=Q?J7:r.inv(q));let J=f(F*A),st=f(M*A),j=f(q*A);if(Q)return{x:Be,y:ce};if(j!==ce)throw new Error("invZ was invalid");return{x:J,y:st}}clearCofactor(){let{h:A}=t;return A===ce?this:this.multiplyUnsafe(A)}static fromHex(A,F=!1){let{d:M,a:q}=t,Q=r.BYTES;A=St("pointHex",A,Q);let J=A.slice(),st=A[Q-1];J[Q-1]=st&-129;let j=Ar(J);j===Be||(F?m(j,u):m(j,r.ORDER));let rt=f(j*j),Bt=f(rt-ce),vt=f(M*rt-q),{isValid:Mt,value:Kt}=l(Bt,vt);if(!Mt)throw new Error("Point.fromHex: invalid y coordinate");let _t=(Kt&ce)===ce,zt=(st&128)!==0;if(!F&&Kt===Be&&zt)throw new Error("Point.fromHex: x=0 and x_0=1");return zt!==_t&&(Kt=f(-Kt)),E.fromAffine({x:Kt,y:j})}static fromPrivateKey(A){return V(A).point}toRawBytes(){let{x:A,y:F}=this.toAffine(),M=$r(F,r.BYTES);return M[M.length-1]|=A&ce?128:0,M}toHex(){return ir(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,ce,f(t.Gx*t.Gy)),E.ZERO=new E(Be,ce,ce,Be);let{BASE:S,ZERO:L}=E,N=M1(E,a*8);function H(D){return ft(D,n)}function z(D){return H(Ar(D))}function V(D){let A=a;D=St("private key",D,A);let F=St("hashed private key",o(D),2*A),M=p(F.slice(0,A)),q=F.slice(A,2*A),Q=z(M),J=S.multiply(Q),st=J.toRawBytes();return{head:M,prefix:q,scalar:Q,point:J,pointBytes:st}}function Z(D){return V(D).pointBytes}function ut(D=new Uint8Array,...A){let F=sr(...A);return z(o(d(F,St("context",D),!!i)))}function Ft(D,A,F={}){D=St("message",D),i&&(D=i(D));let{prefix:M,scalar:q,pointBytes:Q}=V(A),J=ut(F.context,M,D),st=S.multiply(J).toRawBytes(),j=ut(F.context,st,Q,D),rt=H(J+j*q);x(rt);let Bt=sr(st,$r(rt,r.BYTES));return St("result",Bt,a*2)}let C=j7;function k(D,A,F,M=C){let{context:q,zip215:Q}=M,J=r.BYTES;D=St("signature",D,2*J),A=St("message",A),i&&(A=i(A));let st=Ar(D.slice(J,2*J)),j,rt,Bt;try{j=E.fromHex(F,Q),rt=E.fromHex(D.slice(0,J),Q),Bt=S.multiplyUnsafe(st)}catch{return!1}if(!Q&&j.isSmallOrder())return!1;let vt=ut(q,rt.toRawBytes(),j.toRawBytes(),A);return rt.add(j.multiplyUnsafe(vt)).subtract(Bt).clearCofactor().equals(E.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:Z,sign:Ft,verify:k,ExtendedPoint:E,utils:{getExtendedPublicKey:V,randomPrivateKey:()=>s(r.BYTES),precompute(D=8,A=E.BASE){return A._setWindowSize(D),A.multiply(BigInt(3)),A}}}}var vs=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),D4=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),tb=BigInt(0),el=BigInt(1),xs=BigInt(2),rl=BigInt(5),k4=BigInt(10),nl=BigInt(20),il=BigInt(40),U4=BigInt(80);function ol(e){let t=vs,n=e*e%t*e%t,i=mt(n,xs,t)*n%t,o=mt(i,el,t)*e%t,s=mt(o,rl,t)*o%t,a=mt(s,k4,t)*s%t,c=mt(a,nl,t)*a%t,u=mt(c,il,t)*c%t,f=mt(u,U4,t)*u%t,l=mt(f,U4,t)*u%t,p=mt(l,k4,t)*s%t;return{pow_p_5_8:mt(p,xs,t)*e%t,b2:n}}function sl(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function al(e,t){let r=vs,n=ft(t*t*t,r),i=ft(n*n*t,r),o=ol(e*i).pow_p_5_8,s=ft(e*n*o,r),a=ft(t*s*s,r),c=s,u=ft(s*D4,r),f=a===e,l=a===ft(-e,r),p=a===ft(-e*D4,r);return f&&(s=c),(l||p)&&(s=u),_4(s,r)&&(s=ft(-s,r)),{isValid:f||l,value:s}}var ar=F1(vs,void 0,!0),bs={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:ar,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:us,randomBytes:Ln,adjustScalarBytes:sl,uvRatio:al},Dn=V1(bs);function O4(e,t,r){if(t.length>255)throw new Error("Context is too big");return L1(ss("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var eb=V1({...bs,domain:O4}),rb=V1({...bs,domain:O4,prehash:us});var cl=(ar.ORDER+BigInt(3))/BigInt(8),nb=ar.pow(xs,cl),ib=ar.sqrt(ar.neg(ar.ONE)),ob=(ar.ORDER-BigInt(5))/BigInt(8),sb=BigInt(486662);var ab=P4(ar,ar.neg(BigInt(486664)));var cb=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),ub=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),fb=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),lb=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var hb=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var kn=32,cr=64,q1=32;function F4(){let e=Dn.utils.randomPrivateKey(),t=Dn.getPublicKey(e);return{privateKey:q4(e,t),publicKey:t}}function M4(e){if(e.length!==q1)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=Dn.getPublicKey(t);return{privateKey:q4(t,r),publicKey:r}}function K4(e,t){let r=e.subarray(0,q1);return Dn.sign(t instanceof Uint8Array?t:t.subarray(),r)}function V4(e,t,r){return Dn.verify(t,r instanceof Uint8Array?r:r.subarray(),e)}function q4(e,t){let r=new Uint8Array(cr);for(let n=0;n<q1;n++)r[n]=e[n],r[q1+n]=t[n];return r}var ws={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function z1(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",o=e?.saltLength??16,s=e?.iterations??32767,a=At.get();r*=8;async function c(l,p){let d=a.getRandomValues(new Uint8Array(o)),h=a.getRandomValues(new Uint8Array(n)),g={name:t,iv:h};typeof p=="string"&&(p=Qt(p));let y;if(p.length===0){y=await a.subtle.importKey("jwk",ws,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},v=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}catch{y=await a.subtle.importKey("jwk",ws,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},v=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}let m=await a.subtle.encrypt(g,y,l);return qe([d,g.iv,new Uint8Array(m)])}async function u(l,p){let d=l.subarray(0,o),h=l.subarray(o,o+n),g=l.subarray(o+n),y={name:t,iv:h};typeof p=="string"&&(p=Qt(p));let m;if(p.length===0)try{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},T=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}catch{m=await a.subtle.importKey("jwk",ws,{name:"AES-GCM"},!0,["decrypt"])}else{let v={name:"PBKDF2",salt:d,iterations:s,hash:{name:i}},T=await a.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,m,g);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Un(e,t){let n=await z1().encrypt(e,t);return qn.encode(n)}var On={};Tt(On,{KeyType:()=>dt,PrivateKey:()=>Ce,PublicKey:()=>Te});var dt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(dt||(dt={}));var Es;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(Es||(Es={}));(function(e){e.codec=()=>fn(Es)})(dt||(dt={}));var Te;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),dt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=dt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(Te||(Te={}));var Ce;(function(e){let t;e.codec=()=>(t==null&&(t=Ne((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),dt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=dt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Le(r,e.codec()),e.decode=r=>_e(r,e.codec())})(Ce||(Ce={}));var g0=class{_key;constructor(t){this._key=Fn(t,kn)}verify(t,r){return V4(this._key,r,t)}marshal(){return this._key}get bytes(){return Te.encode({Type:dt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Ee(this.bytes,t.bytes)}hash(){let t=xt.digest(this.bytes);return pe(t)?t.then(({bytes:r})=>r):t.bytes}},Yr=class{_key;_publicKey;constructor(t,r){this._key=Fn(t,cr),this._publicKey=Fn(r,kn)}sign(t){return K4(this._key,t)}get public(){return new g0(this._publicKey)}marshal(){return this._key}get bytes(){return Ce.encode({Type:dt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Ee(this.bytes,t.bytes)}async hash(){let t=xt.digest(this.bytes),r;return pe(t)?{bytes:r}=await t:r=t.bytes,r}async id(){let t=yr.digest(this.public.bytes);return Pt.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Un(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function fl(e){if(e.length>cr){e=Fn(e,cr+kn);let n=e.subarray(0,cr),i=e.subarray(cr,e.length);return new Yr(n,i)}e=Fn(e,cr);let t=e.subarray(0,cr),r=e.subarray(kn);return new Yr(t,r)}function ll(e){return e=Fn(e,kn),new g0(e)}async function hl(){let{privateKey:e,publicKey:t}=F4();return new Yr(e,t)}async function Ss(e){let{privateKey:t,publicKey:r}=M4(e);return new Yr(t,r)}function Fn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new _(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var H4={"P-256":256,"P-384":384,"P-521":521},dl=Object.keys(H4),As=dl.join(" / ");async function $4(e){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new _(`Unknown curve: ${e}. Must be ${As}`,"ERR_INVALID_CURVE");let t=await At.get().subtle.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"]),r=async(o,s)=>{let a;s!=null?a=await At.get().subtle.importKey("jwk",gl(e,s),{name:"ECDH",namedCurve:e},!1,["deriveBits"]):a=t.privateKey;let c=await At.get().subtle.importKey("jwk",Y4(e,o),{name:"ECDH",namedCurve:e},!1,[]),u=await At.get().subtle.deriveBits({name:"ECDH",namedCurve:e,public:c},a,H4[e]);return new Uint8Array(u,0,u.byteLength)},n=await At.get().subtle.exportKey("jwk",t.publicKey);return{key:pl(n),genSharedKey:r}}var G4={"P-256":32,"P-384":48,"P-521":66};function pl(e){if(e.crv==null||e.x==null||e.y==null)throw new _("JWK was missing components","ERR_INVALID_PARAMETERS");if(e.crv!=="P-256"&&e.crv!=="P-384"&&e.crv!=="P-521")throw new _(`Unknown curve: ${e.crv}. Must be ${As}`,"ERR_INVALID_CURVE");let t=G4[e.crv];return qe([Uint8Array.from([4]),R1(e.x,t),R1(e.y,t)],1+t*2)}function Y4(e,t){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new _(`Unknown curve: ${e}. Must be ${As}`,"ERR_INVALID_CURVE");let r=G4[e];if(!Ee(t.subarray(0,1),Uint8Array.from([4])))throw new _("Cannot unmarshal public key - invalid key format","ERR_INVALID_KEY_FORMAT");return{kty:"EC",crv:e,x:qt(t.subarray(1,r+1),"base64url"),y:qt(t.subarray(1+r),"base64url"),ext:!0}}var gl=(e,t)=>({...Y4(e,t.public),d:qt(t.private,"base64url")});var Q4=$4;async function W4(e,t){let r=qn.decode(e);return z1().decrypt(r,t)}var Z4={"AES-128":{ivSize:16,keySize:16},"AES-256":{ivSize:16,keySize:32},Blowfish:{ivSize:8,keySize:32}};async function X4(e,t,r){let n=Z4[e];if(n==null){let x=Object.keys(Z4).join(" / ");throw new _(`unknown cipher type '${e}'. Must be ${x}`,"ERR_INVALID_CIPHER_TYPE")}if(t==null)throw new _("missing hash type","ERR_MISSING_HASH_TYPE");let i=n.keySize,o=n.ivSize,s=20,a=Qt("key expansion"),c=2*(o+i+s),u=await g3(t,r),f=await u.digest(a),l=[],p=0;for(;p<c;){let x=await u.digest(qe([f,a])),v=x.length;p+v>c&&(v=c-p),l.push(x),p+=v,f=await u.digest(f)}let d=c/2,h=qe(l),g=h.subarray(0,d),y=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(g),k2:m(y)}}var _s={};Tt(_s,{MAX_KEY_SIZE:()=>v0,RsaPrivateKey:()=>Mn,RsaPublicKey:()=>x0,fromJwk:()=>Al,generateKeyPair:()=>Bl,unmarshalRsaPrivateKey:()=>Sl,unmarshalRsaPublicKey:()=>Il});var m0=bt(ct(),1);var lw=bt(r5(),1);function Wr(e){if(isNaN(e)||e<=0)throw new _("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Ln(e)}var Yb=bt(C1(),1),Cs=bt(ct(),1);function n5(e,t){return t.map(r=>ae(e[r]))}function i5(e){return Cs.default.pki.setRsaPrivateKey(...n5(e,["n","e","d","p","q","dp","dq","qi"]))}function o5(e){return Cs.default.pki.setRsaPublicKey(...n5(e,["n","e"]))}var Zr={};Tt(Zr,{jwkToPkcs1:()=>xl,jwkToPkix:()=>bl,pkcs1ToJwk:()=>ml,pkixToJwk:()=>vl});var Zb=bt(u0(),1),Xb=bt(C1(),1);var ur=bt(ct(),1);function ml(e){let t=ur.default.asn1.fromDer(qt(e,"ascii")),r=ur.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Se(r.n),e:Se(r.e),d:Se(r.d),p:Se(r.p),q:Se(r.q),dp:Se(r.dP),dq:Se(r.dQ),qi:Se(r.qInv),alg:"RS256"}}function xl(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 _("JWK was missing components","ERR_INVALID_PARAMETERS");let t=ur.default.pki.privateKeyToAsn1({n:ae(e.n),e:ae(e.e),d:ae(e.d),p:ae(e.p),q:ae(e.q),dP:ae(e.dp),dQ:ae(e.dq),qInv:ae(e.qi)});return Qt(ur.default.asn1.toDer(t).getBytes(),"ascii")}function vl(e){let t=ur.default.asn1.fromDer(qt(e,"ascii")),r=ur.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Se(r.n),e:Se(r.e)}}function bl(e){if(e.n==null||e.e==null)throw new _("JWK was missing components","ERR_INVALID_PARAMETERS");let t=ur.default.pki.publicKeyToAsn1({n:ae(e.n),e:ae(e.e)});return Qt(ur.default.asn1.toDer(t).getBytes(),"ascii")}async function s5(e){let t=await At.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 u5(t);return{privateKey:r[0],publicKey:r[1]}}async function Rs(e){let r=[await At.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await wl(e)],n=await u5({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function a5(e,t){let r=await At.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await At.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function c5(e,t,r){let n=await At.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return At.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r instanceof Uint8Array?r:r.subarray())}async function u5(e){if(e.privateKey==null||e.publicKey==null)throw new _("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([At.get().subtle.exportKey("jwk",e.privateKey),At.get().subtle.exportKey("jwk",e.publicKey)])}async function wl(e){return At.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 f5(e,t,r,n){let i=t?o5(e):i5(e),o=qt(r instanceof Uint8Array?r:r.subarray(),"ascii"),s=n(o,i);return Qt(s,"ascii")}function l5(e,t){return f5(e,!0,t,(r,n)=>n.encrypt(r))}function h5(e,t){return f5(e,!1,t,(r,n)=>n.decrypt(r))}function H1(e){if(e.kty!=="RSA")throw new _("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new _("invalid key modulus","ERR_INVALID_KEY_MODULUS");return Qt(e.n,"base64url").length*8}var v0=8192,x0=class{_key;constructor(t){this._key=t}verify(t,r){return c5(this._key,r,t)}marshal(){return Zr.jwkToPkix(this._key)}get bytes(){return Te.encode({Type:dt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return l5(this._key,t)}equals(t){return Ee(this.bytes,t.bytes)}hash(){let t=xt.digest(this.bytes);return pe(t)?t.then(({bytes:r})=>r):t.bytes}},Mn=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return Wr(16)}sign(t){return a5(this._key,t)}get public(){if(this._publicKey==null)throw new _("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new x0(this._publicKey)}decrypt(t){return h5(this._key,t)}marshal(){return Zr.jwkToPkcs1(this._key)}get bytes(){return Ce.encode({Type:dt.RSA,Data:this.marshal()}).subarray()}equals(t){return Ee(this.bytes,t.bytes)}hash(){let t=xt.digest(this.bytes);return pe(t)?t.then(({bytes:r})=>r):t.bytes}async id(){let t=await this.public.hash();return qt(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new m0.default.util.ByteBuffer(this.marshal()),i=m0.default.asn1.fromDer(n),o=m0.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return m0.default.pki.encryptRsaPrivateKey(o,t,s)}else{if(r==="libp2p-key")return Un(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function Sl(e){let t=Zr.pkcs1ToJwk(e);if(H1(t)>v0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await Rs(t);return new Mn(r.privateKey,r.publicKey)}function Il(e){let t=Zr.pkixToJwk(e);if(H1(t)>v0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new x0(t)}async function Al(e){if(H1(e)>v0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Rs(e);return new Mn(t.privateKey,t.publicKey)}async function Bl(e){if(e>v0)throw new _("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await s5(e);return new Mn(t.privateKey,t.publicKey)}var Us={};Tt(Us,{Secp256k1PrivateKey:()=>w0,Secp256k1PublicKey:()=>b0,generateKeyPair:()=>Vl,unmarshalSecp256k1PrivateKey:()=>Ml,unmarshalSecp256k1PublicKey:()=>Kl});var Tl=(e,t,r)=>e&t^~e&r,Cl=(e,t,r)=>e&t^e&r^t&r,Rl=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]),Tr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Cr=new Uint32Array(64),Ps=class extends Nn{constructor(){super(64,32,8,!1),this.A=Tr[0]|0,this.B=Tr[1]|0,this.C=Tr[2]|0,this.D=Tr[3]|0,this.E=Tr[4]|0,this.F=Tr[5]|0,this.G=Tr[6]|0,this.H=Tr[7]|0}get(){let{A:t,B:r,C:n,D:i,E:o,F:s,G:a,H:c}=this;return[t,r,n,i,o,s,a,c]}set(t,r,n,i,o,s,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)Cr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let p=Cr[l-15],d=Cr[l-2],h=Ie(p,7)^Ie(p,18)^p>>>3,g=Ie(d,17)^Ie(d,19)^d>>>10;Cr[l]=g+Cr[l-7]+h+Cr[l-16]|0}let{A:n,B:i,C:o,D:s,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let p=Ie(a,6)^Ie(a,11)^Ie(a,25),d=f+p+Tl(a,c,u)+Rl[l]+Cr[l]|0,g=(Ie(n,2)^Ie(n,13)^Ie(n,22))+Cl(n,i,o)|0;f=u,u=c,c=a,a=s+d|0,s=o,o=i,i=n,n=d+g|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,s,a,c,u,f)}roundClean(){Cr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var d5=N1(()=>new Ps);function _l(e){let t=p0(e);ze(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:Pl,hexToBytes:Ll}=U1,Xr={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=Xr;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:Pl(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=Xr,r=typeof e=="string"?Ll(e):e;if(!Ae(r))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}=Xr._parseInt(r.subarray(2)),{d:s,l:a}=Xr._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s}},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,s=i.length/2,a=r(o),c=r(s);return`30${r(s+o+4)}02${c}${i}02${a}${n}`}},fr=BigInt(0),ge=BigInt(1),ww=BigInt(2),p5=BigInt(3),Ew=BigInt(4);function Nl(e){let t=_l(e),{Fp:r}=t,n=t.toBytes||((h,g,y)=>{let m=g.toAffine();return sr(Uint8Array.from([4]),r.toBytes(m.x),r.toBytes(m.y))}),i=t.fromBytes||(h=>{let g=h.subarray(1),y=r.fromBytes(g.subarray(0,r.BYTES)),m=r.fromBytes(g.subarray(r.BYTES,2*r.BYTES));return{x:y,y:m}});function o(h){let{a:g,b:y}=t,m=r.sqr(h),x=r.mul(m,h);return r.add(r.add(x,r.mul(h,g)),y)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function s(h){return typeof h=="bigint"&&fr<h&&h<t.n}function a(h){if(!s(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:g,nByteLength:y,wrapPrivateKey:m,n:x}=t;if(g&&typeof h!="bigint"){if(Ae(h)&&(h=ir(h)),typeof h!="string"||!g.includes(h.length))throw new Error("Invalid key");h=h.padStart(y*2,"0")}let v;try{v=typeof h=="bigint"?h:or(St("private key",h,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof h}`)}return m&&(v=ft(v,x)),a(v),v}let u=new Map;function f(h){if(!(h instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(g,y,m){if(this.px=g,this.py=y,this.pz=m,g==null||!r.isValid(g))throw new Error("x required");if(y==null||!r.isValid(y))throw new Error("y required");if(m==null||!r.isValid(m))throw new Error("z required")}static fromAffine(g){let{x:y,y:m}=g||{};if(!g||!r.isValid(y)||!r.isValid(m))throw new Error("invalid affine point");if(g instanceof l)throw new Error("projective point not allowed");let x=v=>r.eql(v,r.ZERO);return x(y)&&x(m)?l.ZERO:new l(y,m,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(g){let y=r.invertBatch(g.map(m=>m.pz));return g.map((m,x)=>m.toAffine(y[x])).map(l.fromAffine)}static fromHex(g){let y=l.fromAffine(i(St("pointHex",g)));return y.assertValidity(),y}static fromPrivateKey(g){return l.BASE.multiply(c(g))}_setWindowSize(g){this._WINDOW_SIZE=g,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:g,y}=this.toAffine();if(!r.isValid(g)||!r.isValid(y))throw new Error("bad point: x or y not FE");let m=r.sqr(y),x=o(g);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:g}=this.toAffine();if(r.isOdd)return!r.isOdd(g);throw new Error("Field doesn't support isOdd")}equals(g){f(g);let{px:y,py:m,pz:x}=this,{px:v,py:T,pz:E}=g,S=r.eql(r.mul(y,E),r.mul(v,x)),L=r.eql(r.mul(m,E),r.mul(T,x));return S&&L}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){let{a:g,b:y}=t,m=r.mul(y,p5),{px:x,py:v,pz:T}=this,E=r.ZERO,S=r.ZERO,L=r.ZERO,N=r.mul(x,x),H=r.mul(v,v),z=r.mul(T,T),V=r.mul(x,v);return V=r.add(V,V),L=r.mul(x,T),L=r.add(L,L),E=r.mul(g,L),S=r.mul(m,z),S=r.add(E,S),E=r.sub(H,S),S=r.add(H,S),S=r.mul(E,S),E=r.mul(V,E),L=r.mul(m,L),z=r.mul(g,z),V=r.sub(N,z),V=r.mul(g,V),V=r.add(V,L),L=r.add(N,N),N=r.add(L,N),N=r.add(N,z),N=r.mul(N,V),S=r.add(S,N),z=r.mul(v,T),z=r.add(z,z),N=r.mul(z,V),E=r.sub(E,N),L=r.mul(z,H),L=r.add(L,L),L=r.add(L,L),new l(E,S,L)}add(g){f(g);let{px:y,py:m,pz:x}=this,{px:v,py:T,pz:E}=g,S=r.ZERO,L=r.ZERO,N=r.ZERO,H=t.a,z=r.mul(t.b,p5),V=r.mul(y,v),Z=r.mul(m,T),ut=r.mul(x,E),Ft=r.add(y,m),C=r.add(v,T);Ft=r.mul(Ft,C),C=r.add(V,Z),Ft=r.sub(Ft,C),C=r.add(y,x);let k=r.add(v,E);return C=r.mul(C,k),k=r.add(V,ut),C=r.sub(C,k),k=r.add(m,x),S=r.add(T,E),k=r.mul(k,S),S=r.add(Z,ut),k=r.sub(k,S),N=r.mul(H,C),S=r.mul(z,ut),N=r.add(S,N),S=r.sub(Z,N),N=r.add(Z,N),L=r.mul(S,N),Z=r.add(V,V),Z=r.add(Z,V),ut=r.mul(H,ut),C=r.mul(z,C),Z=r.add(Z,ut),ut=r.sub(V,ut),ut=r.mul(H,ut),C=r.add(C,ut),V=r.mul(Z,C),L=r.add(L,V),V=r.mul(k,C),S=r.mul(Ft,S),S=r.sub(S,V),V=r.mul(Ft,Z),N=r.mul(k,N),N=r.add(N,V),new l(S,L,N)}subtract(g){return this.add(g.negate())}is0(){return this.equals(l.ZERO)}wNAF(g){return d.wNAFCached(this,u,g,y=>{let m=r.invertBatch(y.map(x=>x.pz));return y.map((x,v)=>x.toAffine(m[v])).map(l.fromAffine)})}multiplyUnsafe(g){let y=l.ZERO;if(g===fr)return y;if(a(g),g===ge)return this;let{endo:m}=t;if(!m)return d.unsafeLadder(this,g);let{k1neg:x,k1:v,k2neg:T,k2:E}=m.splitScalar(g),S=y,L=y,N=this;for(;v>fr||E>fr;)v&ge&&(S=S.add(N)),E&ge&&(L=L.add(N)),N=N.double(),v>>=ge,E>>=ge;return x&&(S=S.negate()),T&&(L=L.negate()),L=new l(r.mul(L.px,m.beta),L.py,L.pz),S.add(L)}multiply(g){a(g);let y=g,m,x,{endo:v}=t;if(v){let{k1neg:T,k1:E,k2neg:S,k2:L}=v.splitScalar(y),{p:N,f:H}=this.wNAF(E),{p:z,f:V}=this.wNAF(L);N=d.constTimeNegate(T,N),z=d.constTimeNegate(S,z),z=new l(r.mul(z.px,v.beta),z.py,z.pz),m=N.add(z),x=H.add(V)}else{let{p:T,f:E}=this.wNAF(y);m=T,x=E}return l.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(g,y,m){let x=l.BASE,v=(E,S)=>S===fr||S===ge||!E.equals(x)?E.multiplyUnsafe(S):E.multiply(S),T=v(this,y).add(v(g,m));return T.is0()?void 0:T}toAffine(g){let{px:y,py:m,pz:x}=this,v=this.is0();g==null&&(g=v?r.ONE:r.inv(x));let T=r.mul(y,g),E=r.mul(m,g),S=r.mul(x,g);if(v)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:T,y:E}}isTorsionFree(){let{h:g,isTorsionFree:y}=t;if(g===ge)return!0;if(y)return y(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:g,clearCofactor:y}=t;return g===ge?this:y?y(l,this):this.multiplyUnsafe(t.h)}toRawBytes(g=!0){return this.assertValidity(),n(l,this,g)}toHex(g=!0){return ir(this.toRawBytes(g))}}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=M1(l,t.endo?Math.ceil(p/2):p);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:s}}function Dl(e){let t=p0(e);return ze(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function g5(e){let t=Dl(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(C){return fr<C&&C<r.ORDER}function a(C){return ft(C,n)}function c(C){return O1(C,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:p}=Nl({...t,toBytes(C,k,P){let D=k.toAffine(),A=r.toBytes(D.x),F=sr;return P?F(Uint8Array.from([k.hasEvenY()?2:3]),A):F(Uint8Array.from([4]),A,r.toBytes(D.y))},fromBytes(C){let k=C.length,P=C[0],D=C.subarray(1);if(k===i&&(P===2||P===3)){let A=or(D);if(!s(A))throw new Error("Point is not on curve");let F=l(A),M=r.sqrt(F),q=(M&ge)===ge;return(P&1)===1!==q&&(M=r.neg(M)),{x:A,y:M}}else if(k===o&&P===4){let A=r.fromBytes(D.subarray(0,r.BYTES)),F=r.fromBytes(D.subarray(r.BYTES,2*r.BYTES));return{x:A,y:F}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}}),d=C=>ir(Br(C,t.nByteLength));function h(C){let k=n>>ge;return C>k}function g(C){return h(C)?a(-C):C}let y=(C,k,P)=>or(C.slice(k,P));class m{constructor(k,P,D){this.r=k,this.s=P,this.recovery=D,this.assertValidity()}static fromCompact(k){let P=t.nByteLength;return k=St("compactSignature",k,P*2),new m(y(k,0,P),y(k,P,2*P))}static fromDER(k){let{r:P,s:D}=Xr.toSig(St("DER",k));return new m(P,D)}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(k){return new m(this.r,this.s,k)}recoverPublicKey(k){let{r:P,s:D,recovery:A}=this,F=L(St("msgHash",k));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 q=A&1?"03":"02",Q=u.fromHex(q+d(M)),J=c(M),st=a(-F*J),j=a(D*J),rt=u.BASE.multiplyAndAddUnsafe(Q,st,j);if(!rt)throw new Error("point at infinify");return rt.assertValidity(),rt}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return Hr(this.toDERHex())}toDERHex(){return Xr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Hr(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let x={isValidPrivateKey(C){try{return f(C),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let C=ys(t.n);return N4(t.randomBytes(C),t.n)},precompute(C=8,k=u.BASE){return k._setWindowSize(C),k.multiply(BigInt(3)),k}};function v(C,k=!0){return u.fromPrivateKey(C).toRawBytes(k)}function T(C){let k=Ae(C),P=typeof C=="string",D=(k||P)&&C.length;return k?D===i||D===o:P?D===2*i||D===2*o:C instanceof u}function E(C,k,P=!0){if(T(C))throw new Error("first arg must be private key");if(!T(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(f(C)).toRawBytes(P)}let S=t.bits2int||function(C){let k=or(C),P=C.length*8-t.nBitLength;return P>0?k>>BigInt(P):k},L=t.bits2int_modN||function(C){return a(S(C))},N=d0(t.nBitLength);function H(C){if(typeof C!="bigint")throw new Error("bigint expected");if(!(fr<=C&&C<N))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Br(C,t.nByteLength)}function z(C,k,P=V){if(["recovered","canonical"].some(vt=>vt in P))throw new Error("sign() legacy options not supported");let{hash:D,randomBytes:A}=t,{lowS:F,prehash:M,extraEntropy:q}=P;F==null&&(F=!0),C=St("msgHash",C),M&&(C=St("prehashed msgHash",D(C)));let Q=L(C),J=f(k),st=[H(J),H(Q)];if(q!=null){let vt=q===!0?A(r.BYTES):q;st.push(St("extraEntropy",vt))}let j=sr(...st),rt=Q;function Bt(vt){let Mt=S(vt);if(!p(Mt))return;let Kt=c(Mt),_t=u.BASE.multiply(Mt).toAffine(),zt=a(_t.x);if(zt===fr)return;let $e=a(Kt*a(rt+zt*J));if($e===fr)return;let _r=(_t.x===zt?0:2)|Number(_t.y&ge),Vn=$e;return F&&h($e)&&(Vn=g($e),_r^=1),new m(zt,Vn,_r)}return{seed:j,k2sig:Bt}}let V={lowS:t.lowS,prehash:!1},Z={lowS:t.lowS,prehash:!1};function ut(C,k,P=V){let{seed:D,k2sig:A}=z(C,k,P),F=t;return hs(F.hash.outputLen,F.nByteLength,F.hmac)(D,A)}u.BASE._setWindowSize(8);function Ft(C,k,P,D=Z){let A=C;if(k=St("msgHash",k),P=St("publicKey",P),"strict"in D)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:M}=D,q,Q;try{if(typeof A=="string"||Ae(A))try{q=m.fromDER(A)}catch(_t){if(!(_t instanceof Xr.Err))throw _t;q=m.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:_t,s:zt}=A;q=new m(_t,zt)}else throw new Error("PARSE");Q=u.fromHex(P)}catch(_t){if(_t.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&q.hasHighS())return!1;M&&(k=t.hash(k));let{r:J,s:st}=q,j=L(k),rt=c(st),Bt=a(j*rt),vt=a(J*rt),Mt=u.BASE.multiplyAndAddUnsafe(Q,Bt,vt)?.toAffine();return Mt?a(Mt.x)===J:!1}return{CURVE:t,getPublicKey:v,getSharedSecret:E,sign:ut,verify:Ft,ProjectivePoint:u,Signature:m,utils:x}}var $1=class extends Pn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,b4(t);let n=h0(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 s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),o.fill(0)}update(t){return _n(this),this.iHash.update(t),this}digestInto(t){_n(this),os(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:s,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=o,t.blockLen=s,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Ls=(e,t,r)=>new $1(e,t).update(r).digest();Ls.create=(e,t)=>new $1(e,t);function kl(e){return{hash:e,hmac:(t,...r)=>Ls(e,t,L1(...r)),randomBytes:Ln}}function y5(e,t){let r=n=>g5({...e,...kl(n)});return Object.freeze({...r(t),create:r})}var v5=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),m5=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Ul=BigInt(1),Ns=BigInt(2),x5=(e,t)=>(e+t/Ns)/t;function Ol(e){let t=v5,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=mt(f,r,t)*f%t,p=mt(l,r,t)*f%t,d=mt(p,Ns,t)*u%t,h=mt(d,i,t)*d%t,g=mt(h,o,t)*h%t,y=mt(g,a,t)*g%t,m=mt(y,c,t)*y%t,x=mt(m,a,t)*g%t,v=mt(x,r,t)*f%t,T=mt(v,s,t)*h%t,E=mt(T,n,t)*u%t,S=mt(E,Ns,t);if(!Ds.eql(Ds.sqr(S),e))throw new Error("Cannot find square root");return S}var Ds=F1(v5,void 0,void 0,{sqrt:Ol}),Re=y5({a:BigInt(0),b:BigInt(7),Fp:Ds,n:m5,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=m5,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Ul*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=x5(o*e,t),c=x5(-n*e,t),u=ft(e-a*r-c*i,t),f=ft(-a*n-c*o,t),l=u>s,p=f>s;if(l&&(u=t-u),p&&(f=t-f),u>s||f>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:p,k2:f}}}},d5),Dw=BigInt(0);var kw=Re.ProjectivePoint;function b5(){return Re.utils.randomPrivateKey()}function w5(e,t){let r=xt.digest(t instanceof Uint8Array?t:t.subarray());if(pe(r))return r.then(({digest:n})=>Re.sign(n,e).toDERRawBytes()).catch(n=>{throw new _(String(n),"ERR_INVALID_INPUT")});try{return Re.sign(r.digest,e).toDERRawBytes()}catch(n){throw new _(String(n),"ERR_INVALID_INPUT")}}function E5(e,t,r){let n=xt.digest(r instanceof Uint8Array?r:r.subarray());if(pe(n))return n.then(({digest:i})=>Re.verify(t,i,e)).catch(i=>{throw new _(String(i),"ERR_INVALID_INPUT")});try{return Re.verify(t,n.digest,e)}catch(i){throw new _(String(i),"ERR_INVALID_INPUT")}}function S5(e){return Re.ProjectivePoint.fromHex(e).toRawBytes(!0)}function I5(e){try{Re.getPublicKey(e,!0)}catch(t){throw new _(String(t),"ERR_INVALID_PRIVATE_KEY")}}function ks(e){try{Re.ProjectivePoint.fromHex(e)}catch(t){throw new _(String(t),"ERR_INVALID_PUBLIC_KEY")}}function A5(e){try{return Re.getPublicKey(e,!0)}catch(t){throw new _(String(t),"ERR_INVALID_PRIVATE_KEY")}}var b0=class{_key;constructor(t){ks(t),this._key=t}verify(t,r){return E5(this._key,r,t)}marshal(){return S5(this._key)}get bytes(){return Te.encode({Type:dt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Ee(this.bytes,t.bytes)}async hash(){let t=xt.digest(this.bytes),r;return pe(t)?{bytes:r}=await t:r=t.bytes,r}},w0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??A5(t),I5(this._key),ks(this._publicKey)}sign(t){return w5(this._key,t)}get public(){return new b0(this._publicKey)}marshal(){return this._key}get bytes(){return Ce.encode({Type:dt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Ee(this.bytes,t.bytes)}hash(){let t=xt.digest(this.bytes);return pe(t)?t.then(({bytes:r})=>r):t.bytes}async id(){let t=await this.public.hash();return qt(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Un(this.bytes,t);throw new _(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Ml(e){return new w0(e)}function Kl(e){return new b0(e)}async function Vl(){let e=b5();return new w0(e)}var He={rsa:_s,ed25519:Is,secp256k1:Us};function Os(e){let t=Object.keys(He).join(" / ");return new _(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Fs(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return He[e];throw Os(e)}async function ql(e,t){return Fs(e).generateKeyPair(t??2048)}async function zl(e,t,r){if(e.toLowerCase()!=="ed25519")throw new _("Seed key derivation is unimplemented for RSA or secp256k1","ERR_UNSUPPORTED_KEY_DERIVATION_TYPE");return Ss(t)}function Hl(e){let t=Te.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case dt.RSA:return He.rsa.unmarshalRsaPublicKey(r);case dt.Ed25519:return He.ed25519.unmarshalEd25519PublicKey(r);case dt.Secp256k1:return He.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw Os(t.Type??"unknown")}}function $l(e,t){return t=(t??"rsa").toLowerCase(),Fs(t),e.bytes}async function B5(e){let t=Ce.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case dt.RSA:return He.rsa.unmarshalRsaPrivateKey(r);case dt.Ed25519:return He.ed25519.unmarshalEd25519PrivateKey(r);case dt.Secp256k1:return He.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw Os(t.Type??"RSA")}}function Gl(e,t){return t=(t??"rsa").toLowerCase(),Fs(t),e.bytes}async function Yl(e,t){try{let i=await W4(e,t);return await B5(i)}catch{}let r=G1.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new _("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=G1.default.asn1.toDer(G1.default.pki.privateKeyToAsn1(r));return n=Qt(n.getBytes(),"ascii"),He.rsa.unmarshalRsaPrivateKey(n)}var Ql=bt(Wo(),1),Wl=bt(It(),1);function Q1(e,t){if(globalThis.Buffer!=null)return globalThis.Buffer.compare(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 lr(e,t){if(e.length!==t.length)throw new Error("Inputs should have the same length");let r=ln(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return De(r)}var W1=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 xe(t),n={peerId:t,distance:lr(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(xe)),n=this.peerDistances[this.peerDistances.length-1].distance;for(let i of r){let o=lr(this.originDhtKey,i);if(Q1(o,n)<0)return!0}return!1}};var Z1=class{log;routingTable;network;validators;queryManager;peerStore;peerId;constructor(t,r){let{routingTable:n,network:i,validators:o,queryManager:s,logPrefix:a}=r;this.routingTable=n,this.network=i,this.validators=o,this.queryManager=s,this.peerStore=t.peerStore,this.peerId=t.peerId,this.log=t.logger.forComponent(`${a}: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.peerStore.get(n)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}}if(r==null)try{r=await this.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)}}async*_getValueSingle(t,r,n={}){let i={type:X.GET_VALUE,key:r};yield*this.network.sendRequest(t,i,n)}async*getPublicKeyFromNode(t,r={}){let n=wa(t);for await(let i of this._getValueSingle(t,n,r))if(yield i,i.name==="PEER_RESPONSE"&&i.record!=null){let o=await ta(Y1.marshalPublicKey({bytes:i.record.value}));if(!o.equals(t))throw new _("public key does not match id","ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID");if(o.publicKey==null)throw new _("public key missing","ERR_PUBLIC_KEY_MISSING");yield Jn({from:t,value:o.publicKey},r)}throw new _(`Node not responding with its public key: ${t.toString()}`,"ERR_INVALID_RECORD")}async*findPeer(t,r={}){if(this.log("findPeer %p",t),r.useCache!==!1){let i=await this.findPeerLocal(t);if(i!=null){this.log("found local"),yield M0({from:this.peerId,peer:i},r);return}}let n=!1;if(r.useNetwork!==!1){let i=this,o=async function*({peer:s,signal:a}){let c={type:X.FIND_NODE,key:t.toBytes()};for await(let u of i.network.sendRequest(s,c,{...r,signal:a}))if(yield u,u.name==="PEER_RESPONSE"){let f=u.closer.find(l=>l.id.equals(t));f!=null&&(yield M0({from:u.from,peer:f},r))}};for await(let s of this.queryManager.run(t.toBytes(),o,r))s.name==="FINAL_PEER"&&(n=!0),yield s}n||(yield oe({from:this.peerId,error:new _("Not found","ERR_NOT_FOUND")},r))}async*getClosestPeers(t,r={}){this.log("getClosestPeers to %b",t);let n=await xr(t),i=this.routingTable.closestPeers(n),o=this,s=new W1(n,this.routingTable.kBucketSize);await Promise.all(i.map(async c=>{await s.add(c)}));let a=async function*({peer:c,signal:u}){o.log("closerPeersSingle %s from %p",Dt(t,"base32"),c);let f={type:X.FIND_NODE,key:t};yield*o.network.sendRequest(c,f,{...r,signal:u})};for await(let c of this.queryManager.run(t,a,r))yield c,c.name==="PEER_RESPONSE"&&await Promise.all(c.closer.map(async u=>{await s.add(u.id)}));this.log("found %d peers close to %b",s.length,t);for(let c of s.peers)try{let u=await this.peerStore.get(c);yield M0({from:this.peerId,peer:{id:c,multiaddrs:u.addresses.map(({multiaddr:f})=>f)}},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 s="invalid record received, discarded";this.log(s),yield oe({from:i.from,error:new _(s,"ERR_INVALID_RECORD")},n);continue}yield i}}async _verifyRecordOnline(t){if(t.timeReceived==null)throw new _("invalid record received","ERR_INVALID_RECORD");await pn(this.validators,new Lt(t.key,t.value,t.timeReceived))}async getCloserPeersOffline(t,r){let n=await xr(t),i=this.routingTable.closestPeers(n),o=[];for(let s of i)if(!s.equals(r))try{let a=await this.peerStore.get(s);o.push({id:s,multiaddrs:a.addresses.map(({multiaddr:c})=>c)})}catch(a){if(a.code!=="ERR_NOT_FOUND")throw a}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 N5=bt(C5(),1);var S0=bt(_5(),1);var Rr=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Ks=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},P5=e=>globalThis.DOMException===void 0?new Ks(e):new DOMException(e),L5=e=>{let t=e.reason===void 0?P5("This operation was aborted."):e.reason;return t instanceof Error?t:P5(t)};function Jr(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,s,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(L5(p)),p.addEventListener("abort",()=>{f(L5(p))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new Rr;s=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,s),s=void 0},c}function Vs(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var I0=class{#t=[];enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=r.priority){this.#t.push(n);return}let i=Vs(this.#t,n,(o,s)=>s.priority-o.priority);this.#t.splice(i,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}};var jr=class extends S0.default{#t;#o;#i=0;#a;#c;#p=0;#r;#u;#e;#g;#n=0;#f;#s;#y;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:I0,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${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 \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#o=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#e=new t.queueClass,this.#g=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#y=t.throwOnTimeout===!0,this.#s=t.autoStart===!1}get#v(){return this.#o||this.#i<this.#a}get#b(){return this.#n<this.#f}#w(){this.#n--,this.#l(),this.emit("next")}#E(){this.#x(),this.#m(),this.#u=void 0}get#S(){let t=Date.now();if(this.#r===void 0){let r=this.#p-t;if(r<0)this.#i=this.#t?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#E()},r)),!0}return!1}#l(){if(this.#e.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#s){let t=!this.#S;if(this.#v&&this.#b){let r=this.#e.dequeue();return r?(this.emit("active"),r(),t&&this.#m(),!0):!1}}return!1}#m(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#i===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#i=this.#t?this.#n:0,this.#h()}#h(){for(;this.#l(););}get concurrency(){return this.#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})`);this.#f=t,this.#h()}async#I(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#y,...r},new Promise((n,i)=>{this.#e.enqueue(async()=>{this.#n++,this.#i++;try{r.signal?.throwIfAborted();let o=t({signal:r.signal});r.timeout&&(o=Jr(Promise.resolve(o),{milliseconds:r.timeout})),r.signal&&(o=Promise.race([o,this.#I(r.signal)]));let s=await o;n(s),this.emit("completed",s)}catch(o){if(o instanceof Rr&&!r.throwOnTimeout){n();return}i(o),this.emit("error",o)}finally{this.#w()}},r),this.emit("add"),this.#l()})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return this.#s?(this.#s=!1,this.#h(),this):this}pause(){this.#s=!0}clear(){this.#e=new this.#g}async onEmpty(){this.#e.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#e.size<t||await this.#d("next",()=>this.#e.size<t)}async onIdle(){this.#n===0&&this.#e.size===0||await this.#d("idle")}async#d(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})}get size(){return this.#e.size}sizeBy(t){return this.#e.filter(t).length}get pending(){return this.#n}get isPaused(){return this.#s}};var J1=class{log;datastore;cache;cleanupInterval;provideValidity;syncQueue;started;cleaner;constructor(t,r={}){let{cacheSize:n,cleanupInterval:i,provideValidity:o}=r;this.log=t.logger.forComponent("libp2p:kad-dht:providers"),this.datastore=t.datastore,this.cleanupInterval=i??36e5,this.provideValidity=o??864e5,this.cache=(0,N5.default)(n??256),this.syncQueue=new jr({concurrency:1}),this.started=!1}isStarted(){return this.started}async start(){this.started||(this.started=!0,this.cleaner=setInterval(()=>{this._cleanup().catch(t=>{this.log.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.datastore.batch(),s=this.datastore.query({prefix:wi});for await(let a of s)try{let{cid:c,peerId:u}=D5(a.key),f=k5(a.value).getTime(),l=Date.now(),p=l-f,d=p>this.provideValidity;if(this.log("comparing: %d - %d = %d > %d %s",l,f,p,this.provideValidity,d?"(expired)":""),d){n++,o.delete(a.key);let h=i.get(c)??new Set;h.add(u),i.set(c,h)}r++}catch(c){this.log.error(c.message)}i.size>0?(this.log("deleting %d / %d entries",n,r),await o.commit()):this.log("nothing to delete");for(let[a,c]of i){let u=A0(a),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)}}this.log("Cleanup successful (%dms)",Date.now()-t)})}async _getProvidersMap(t){let r=A0(t),n=this.cache.get(r);return n==null&&(n=await r9(this.datastore,t),this.cache.set(r,n)),n}async addProvider(t,r){await this.syncQueue.add(async()=>{this.log("%p provides %s",r,t);let n=await this._getProvidersMap(t);this.log("loaded %s provs",n.size);let i=new Date;n.set(r.toString(),i);let o=A0(t);this.cache.set(o,n),await e9(this.datastore,t,r,i)})}async getProviders(t){return this.syncQueue.add(async()=>(this.log("get providers for %s",t),[...(await this._getProvidersMap(t)).keys()].map(n=>Et(n))),{throwOnTimeout:!0})}};function A0(e){let t=typeof e=="string"?e:Dt(e.multihash.bytes,"base32");return`${wi}/${t}`}async function e9(e,t,r,n){let i=[A0(t),"/",r.toString()].join(""),o=new xn(i),s=ke(n.getTime());await e.put(o,s)}function D5(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 r9(e,t){let r=new Map,n=e.query({prefix:A0(t)});for await(let i of n){let{peerId:o}=D5(i.key);r.set(o,k5(i.value))}return r}function k5(e){return new Date(se(e))}function Kn(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}async function*U5(e,t,r,n){let i=nn({objectMode:!0}),o=l=>{n("clean up queue, results %d, queue size %d, pending tasks %d",i.readableLength,e.size,e.pending),e.clear(),i.end(l)},s=l=>{l!=null&&i.push(l)},a=l=>{n("queue error",l),o(l)},c=()=>{n("queue idle"),o()},u=()=>{n("abort queue"),o(new _("Query aborted","ERR_QUERY_ABORTED"))},f=()=>{o()};e.on("completed",s),e.on("error",a),e.on("idle",c),t.addEventListener("abort",u),r.addEventListener("cleanup",f);try{yield*i}finally{e.removeListener("completed",s),e.removeListener("error",a),e.removeListener("idle",c),t.removeEventListener("abort",u),r.removeEventListener("cleanup",f)}}var n9=BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");async function*O5(e){let{key:t,startingPeer:r,ourPeerId:n,signal:i,query:o,alpha:s,pathIndex:a,numPaths:c,cleanUp:u,queryFuncTimeout:f,log:l,peersSeen:p}=e,d=new jr({concurrency:s}),h=await xr(t);function g(y,m){if(y==null)return;p.add(y);let x=BigInt("0x"+Dt(lr(m,h),"base16"));d.add(async()=>{let v=[i];f!=null&&v.push(AbortSignal.timeout(f));let T=Kn(v);try{for await(let E of o({key:t,peer:y,signal:T,pathIndex:a,numPaths:c})){if(T.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 xe(S.id);if(BigInt("0x"+Dt(lr(L,h),"base16"))>x){l("skipping %p as they are not closer to %b than %p",S.id,t,y);continue}l("querying closer peer %p",S.id),g(S.id,L)}d.emit("completed",E)}}catch(E){if(!i.aborted)return oe({from:y,error:E},e)}finally{T.clear()}},{priority:n9-x}).catch(v=>{l.error(v)})}g(r,await xe(r)),yield*U5(d,i,u,l)}var ti=class{disjointPaths;alpha;shutDownController;running;queries;logger;peerId;routingTable;initialQuerySelfHasRun;logPrefix;metrics;constructor(t,r){let{disjointPaths:n=20,alpha:i=3,logPrefix:o}=r;this.logPrefix=o,this.disjointPaths=n??20,this.running=!1,this.alpha=i??3,this.queries=0,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun,this.routingTable=r.routingTable,this.logger=t.logger,this.peerId=t.peerId,t.metrics!=null&&(this.metrics={runningQueries:t.metrics.registerMetric(`${o.replaceAll(":","_")}_running_queries`),queryTime:t.metrics.registerMetric(`${o.replaceAll(":","_")}_query_time_seconds`)}),this.shutDownController=new AbortController,tn(1/0,this.shutDownController.signal)}isStarted(){return this.running}async start(){this.running=!0}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();if(n.signal==null){let u=AbortSignal.timeout(3e4);tn(1/0,u),n={...n,signal:u}}let o=Kn([this.shutDownController.signal,n.signal]);tn(1/0,o);let s=this.logger.forComponent(`${this.logPrefix}:query:`+Dt(t,"base58btc")),a=Date.now(),c=new ee;try{n.isSelfQuery!==!0&&this.initialQuerySelfHasRun!=null&&(s("waiting for initial query-self query before continuing"),await Promise.race([new Promise((h,g)=>{o.addEventListener("abort",()=>{g(new _0("Query was aborted before self-query ran"))})}),this.initialQuerySelfHasRun.promise]),this.initialQuerySelfHasRun=void 0),s("query:start"),this.queries++,this.metrics?.runningQueries.update(this.queries);let u=await xr(t),f=this.routingTable.closestPeers(u),l=f.slice(0,Math.min(this.disjointPaths,f.length));if(f.length===0){s.error("Running query with no peers");return}let p=new ve,d=l.map((h,g)=>O5({key:t,startingPeer:h,ourPeerId:this.peerId,signal:o,query:r,pathIndex:g,numPaths:l.length,alpha:this.alpha,cleanUp:c,queryFuncTimeout:n.queryFuncTimeout,log:s,peersSeen:p,onProgress:n.onProgress}));for await(let h of N0(...d))yield h,h.name==="QUERY_ERROR"&&s("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 Zt("cleanup")),s("query:done in %dms",Date.now()-a)}}};function o9(e){return e[Symbol.asyncIterator]!=null}function s9(e){if(o9(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 ei=s9;function a9(e){return e[Symbol.asyncIterator]!=null}function c9(e,t){return a9(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 F5=c9;var u9=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 f9(e,t,r){let n,i=new Promise((o,s)=>{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 a=[t].flat(),c=[],{addListener:u,removeListener:f}=u9(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(),s(d)};n=()=>{for(let d of a)f(d,l);for(let d of r.rejectionEvents)f(d,p)};for(let d of a)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=Jr(i,{milliseconds:r.timeout});return o.cancel=n,o}return i}function M5(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=f9(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var ri=class{log;peerId;peerRouting;routingTable;count;interval;initialInterval;queryTimeout;started;timeoutId;controller;initialQuerySelfHasRun;querySelfPromise;constructor(t,r){let{peerRouting:n,logPrefix:i,count:o,interval:s,queryTimeout:a,routingTable:c}=r;this.peerId=t.peerId,this.log=t.logger.forComponent(`${i}:query-self`),this.started=!1,this.peerRouting=n,this.routingTable=c,this.count=o??20,this.interval=s??3e5,this.initialInterval=r.initialInterval??1e3,this.queryTimeout=a??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=Ct(),this.started){this.controller=new AbortController;let t=Kn([this.controller.signal,AbortSignal.timeout(this.queryTimeout)]);tn(1/0,t);try{this.routingTable.size===0&&(this.log("routing table was empty, waiting for some peers before running query"),await M5(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 dr(this.peerRouting.getClosestPeers(this.peerId.toBytes(),{signal:t,isSelfQuery:!0}),i=>F5(i,this.count),async i=>ei(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 qs(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var B0=class{#t=[];enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&this.#t[this.size-1].priority>=r.priority){this.#t.push(n);return}let i=qs(this.#t,n,(o,s)=>s.priority-o.priority);this.#t.splice(i,0,n)}dequeue(){return this.#t.shift()?.run}filter(t){return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}};var T0=class extends S0.default{#t;#o;#i=0;#a;#c;#p=0;#r;#u;#e;#g;#n=0;#f;#s;#y;timeout;constructor(t){if(super(),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:B0,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${t.intervalCap?.toString()??""}\` (${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 \`${t.interval?.toString()??""}\` (${typeof t.interval})`);this.#t=t.carryoverConcurrencyCount,this.#o=t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,this.#a=t.intervalCap,this.#c=t.interval,this.#e=new t.queueClass,this.#g=t.queueClass,this.concurrency=t.concurrency,this.timeout=t.timeout,this.#y=t.throwOnTimeout===!0,this.#s=t.autoStart===!1}get#v(){return this.#o||this.#i<this.#a}get#b(){return this.#n<this.#f}#w(){this.#n--,this.#l(),this.emit("next")}#E(){this.#x(),this.#m(),this.#u=void 0}get#S(){let t=Date.now();if(this.#r===void 0){let r=this.#p-t;if(r<0)this.#i=this.#t?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#E()},r)),!0}return!1}#l(){if(this.#e.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#s){let t=!this.#S;if(this.#v&&this.#b){let r=this.#e.dequeue();return r?(this.emit("active"),r(),t&&this.#m(),!0):!1}}return!1}#m(){this.#o||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#i===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#i=this.#t?this.#n:0,this.#h()}#h(){for(;this.#l(););}get concurrency(){return this.#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})`);this.#f=t,this.#h()}async#I(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(t.reason)},{once:!0})})}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#y,...r},new Promise((n,i)=>{this.#e.enqueue(async()=>{this.#n++,this.#i++;try{r.signal?.throwIfAborted();let o=t({signal:r.signal});r.timeout&&(o=Jr(Promise.resolve(o),{milliseconds:r.timeout})),r.signal&&(o=Promise.race([o,this.#I(r.signal)]));let s=await o;n(s),this.emit("completed",s)}catch(o){if(o instanceof Rr&&!r.throwOnTimeout){n();return}i(o),this.emit("error",o)}finally{this.#w()}},r),this.emit("add"),this.#l()})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return this.#s?(this.#s=!1,this.#h(),this):this}pause(){this.#s=!0}clear(){this.#e=new this.#g}async onEmpty(){this.#e.size!==0&&await this.#d("empty")}async onSizeLessThan(t){this.#e.size<t||await this.#d("next",()=>this.#e.size<t)}async onIdle(){this.#n===0&&this.#e.size===0||await this.#d("idle")}async#d(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})}get size(){return this.#e.size}sizeBy(t){return this.#e.filter(t).length}get pending(){return this.#n}get isPaused(){return this.#s}};function p9(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),s=n+o;r(e[s],t)<=0?(n=++s,i-=o+1):i=o}return n}var zs=class{#t=[];enqueue(t,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new _("missing peer id",xi);let o={priority:i,peerId:n,run:t};if(this.size>0&&this.#t[this.size-1].priority>=i){this.#t.push(o);return}let s=p9(this.#t,o,(a,c)=>c.priority-a.priority);this.#t.splice(s,0,o)}dequeue(){return this.#t.shift()?.run}filter(t){if(t.peerId!=null){let r=t.peerId;return this.#t.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}},ni=class extends T0{results;constructor(t={}){super({...t,queueClass:zs}),this.results=new En}hasJob(t){return this.sizeBy({peerId:t})>0}async joinJob(t){let r=this.results.get(t);if(r==null)throw new _("No job found for peer id","ERR_NO_JOB_FOR_PEER_ID");return r===!0&&(r=Ct(),this.results.set(t,r)),r.promise}async add(t,r){let n=r?.peerId;if(n==null)throw new _("missing peer id",xi);return this.results.set(r.peerId,!0),super.add(async i=>{try{let o=await t(i),s=this.results.get(n);return s!=null&&s!==!0&&s.resolve(o),o}catch(o){let s=this.results.get(n);throw s!=null&&s!==!0&&s.reject(o),o}finally{this.results.delete(n)}},r)}clear(){this.results.clear(),super.clear()}};function K5(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 Hs(){return{contacts:[],dontSplit:!1,left:null,right:null}}function C0(e,t){if(!(t instanceof Uint8Array))throw new TypeError(e+" is not a Uint8Array")}var ii=class e extends ee{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,C0("option.localNodeId as parameter 1",this.localNodeId),this.root=Hs()}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),s=Math.max(t.length,r.length);for(;i<o;++i)n=n*256+(t[i]^r[i]);for(;i<s;++i)n=n*256+255;return n}add(t){C0("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(C0("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 s=i.pop();if(s!=null)if(s.contacts===null){let a=this._determineNode(s,t,o++);i.push(s.left===a?s.right:s.left),i.push(a)}else n=n.concat(s.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){C0("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(K5(t.contacts[n].id,r))return n;return-1}remove(t){C0("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=Hs(),t.right=Hs();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(!K5(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 g9="kad-close",y9=50,V5=20,m9=1e4,x9=10,oi=class extends ee{kBucketSize;kb;pingQueue;log;components;pingTimeout;pingConcurrency;running;protocol;tagName;tagValue;metrics;constructor(t,r){super();let{kBucketSize:n,pingTimeout:i,logPrefix:o,pingConcurrency:s,protocol:a,tagName:c,tagValue:u}=r;this.components=t,this.log=t.logger.forComponent(`${o}:routing-table`),this.kBucketSize=n??V5,this.pingTimeout=i??m9,this.pingConcurrency=s??x9,this.running=!1,this.protocol=a,this.tagName=c??g9,this.tagValue=u??y9;let f=()=>{this.metrics?.pingQueueSize.update(this.pingQueue.size),this.metrics?.pingRunning.update(this.pingQueue.pending)};this.pingQueue=new ni({concurrency:this.pingConcurrency}),this.pingQueue.addListener("add",f),this.pingQueue.addListener("next",f),this.pingQueue.addListener("error",l=>{this.log.error("error pinging peer",l)}),this.components.metrics!=null&&(this.metrics={routingTableSize:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_routing_table_size`),pingQueueSize:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_ping_queue_size`),pingRunning:this.components.metrics.registerMetric(`${o.replaceAll(":","_")}_ping_running`)})}isStarted(){return this.running}async start(){this.running=!0;let t=new ii({localNodeId:await xe(this.components.peerId),numberOfNodesPerKBucket:this.kBucketSize,numberOfNodesToPing:1});this.kb=t,t.addEventListener("ping",r=>{this._onPing(r).catch(n=>{this.log.error("could not process k-bucket ping event",n)})}),this._tagPeers(t)}async stop(){this.running=!1,this.pingQueue.clear(),this.kb=void 0}_tagPeers(t){let r=new ve,n=Ia(()=>{let i=new ve(t.closest(t.localNodeId,V5).map(a=>a.peer)),o=i.difference(r),s=r.difference(i);Promise.resolve().then(async()=>{for(let a of o)await this.components.peerStore.merge(a,{tags:{[this.tagName]:{value:this.tagValue}}});for(let a of s)await this.components.peerStore.merge(a,{tags:{[this.tagName]:void 0}})}).catch(a=>{this.log.error("Could not update peer tags",a)}),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})})}async _onPing(t){if(!this.running)return;let{oldContacts:r,newContact:n}=t.detail,o=(await Promise.all(r.map(async s=>this.pingQueue.hasJob(s.peer)?this.pingQueue.joinJob(s.peer):this.pingQueue.add(async()=>{let a;try{let c={signal:AbortSignal.timeout(this.pingTimeout)};this.log("pinging old contact %p",s.peer),a=await(await this.components.connectionManager.openConnection(s.peer,c)).newStream(this.protocol,c);let f=o0(a);await f.write({type:X.PING},ue,c);let l=await f.read(ue,c);if(await f.unwrap().close(),l.type!==X.PING)throw new _(`Incorrect message type received, expected PING got ${l.type}`,"ERR_BAD_PING_RESPONSE");return!0}catch(c){return this.running&&this.kb!=null&&(this.log.error("could not ping peer %p",s.peer,c),this.log("evicting old contact after ping failed %p",s.peer),this.kb.remove(s.id)),a?.abort(c),!1}finally{this.metrics?.routingTableSize.update(this.size)}},{peerId:s.peer})))).filter(s=>s).length;this.running&&o<r.length&&this.kb!=null&&(this.log("adding new contact %p",n.peer),this.kb.add(n))}get size(){return this.kb==null?0:this.kb.count()}async find(t){let r=await xe(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 xe(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 xe(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 si=15,ai=class{log;peerRouting;routingTable;refreshInterval;refreshQueryTimeout;commonPrefixLengthRefreshedAt;refreshTimeoutId;constructor(t,r){let{peerRouting:n,routingTable:i,refreshInterval:o,refreshQueryTimeout:s,logPrefix:a}=r;this.log=t.logger.forComponent(`${a}:routing-table:refresh`),this.peerRouting=n,this.routingTable=i,this.refreshInterval=o??3e5,this.refreshQueryTimeout=s??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 s=Math.min(2*(o+1),n.length-1);for(let a=o+1;a<s+1;a++)try{await this._refreshCommonPrefixLength(a,i,t)}catch(c){this.log.error(c)}}}catch(s){this.log.error(s)}})).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 ei(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>si&&(t=si);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=Wr(2),n=(r[1]<<8)+r[0],i=await this._makePeerId(this.routingTable.kb.localNodeId,n,t);return Ze(i)}async _makePeerId(t,r,n){if(n>si)throw new Error(`Cannot generate peer ID for common prefix length greater than ${si}`);let s=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(0,!1)^32768>>n,a=65535<<16-(n+1),c=s&a|r&~a,u=q5[c],f=new ArrayBuffer(34),l=new DataView(f,0,f.byteLength);return l.setUint8(0,xt.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=lr(this.routingTable.kb.localNodeId,t),n=0;for(let i of r)if(i===0)n++;else break;yield n}}};var ci=class{providers;log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:add-provider`),this.providers=r.providers}async handle(t,r){if(this.log("start"),r.key==null||r.key.length===0)throw new _("Missing key","ERR_MISSING_KEY");let n;try{n=Xt.decode(r.key)}catch{throw new _("Invalid CID","ERR_INVALID_CID")}(r.providers==null||r.providers.length===0)&&this.log.error("no providers found in message"),await Promise.all(r.providers.map(async i=>{if(!t.equals(i.id)){this.log("invalid provider peer %p from %p",i.id,t);return}if(i.multiaddrs.length<1){this.log("no valid addresses for provider %p. Ignore",t);return}this.log("received provider %p for %s (addrs %s)",t,n,i.multiaddrs.map(o=>r0(o).toString())),await this.providers.addProvider(n,Ze(i.id))}))}};var ui=class{peerRouting;peerInfoMapper;peerId;addressManager;log;constructor(t,r){let{peerRouting:n,logPrefix:i}=r;this.log=t.logger.forComponent(`${i}:rpc:handlers:find-node`),this.peerId=t.peerId,this.addressManager=t.addressManager,this.peerRouting=n,this.peerInfoMapper=r.peerInfoMapper}async handle(t,r){this.log("incoming request from %p for peers closer to %b",t,r.key);let n=[];if(r.key==null)throw new _("Invalid FIND_NODE message received - key was missing","ERR_INVALID_MESSAGE");Ge(this.peerId.toBytes(),r.key)?n=[{id:this.peerId,multiaddrs:this.addressManager.getAddresses().map(o=>o.decapsulateCode(at("p2p").code))}]:n=await this.peerRouting.getCloserPeersOffline(r.key,t);let i={type:X.FIND_NODE,clusterLevel:r.clusterLevel,closer:n.map(this.peerInfoMapper).filter(({multiaddrs:o})=>o.length).map(o=>({id:o.id.toBytes(),multiaddrs:o.multiaddrs.map(s=>s.bytes)})),providers:[]};return i.closer.length===0&&this.log("could not find any peers closer to %b than %p",r.key,t),i}};var fi=class{peerRouting;providers;peerStore;peerInfoMapper;log;constructor(t,r){let{peerRouting:n,providers:i,logPrefix:o}=r;this.log=t.logger.forComponent(`${o}:rpc:handlers:get-providers`),this.peerStore=t.peerStore,this.peerRouting=n,this.providers=i,this.peerInfoMapper=r.peerInfoMapper}async handle(t,r){if(r.key==null)throw new _("Invalid FIND_NODE message received - key was missing","ERR_INVALID_MESSAGE");let n;try{n=Xt.decode(r.key)}catch{throw new _("Invalid CID","ERR_INVALID_CID")}this.log("%p asking for providers for %s",t,n);let[i,o]=await Promise.all([this.providers.getProviders(n),this.peerRouting.getCloserPeersOffline(r.key,t)]),s=await this._getPeers(i),a=await this._getPeers(o.map(({id:u})=>u)),c={type:X.GET_PROVIDERS,key:r.key,clusterLevel:r.clusterLevel,closer:a.map(this.peerInfoMapper).filter(({multiaddrs:u})=>u.length).map(u=>({id:u.id.toBytes(),multiaddrs:u.multiaddrs.map(f=>f.bytes)})),providers:s.map(this.peerInfoMapper).filter(({multiaddrs:u})=>u.length).map(u=>({id:u.id.toBytes(),multiaddrs:u.multiaddrs.map(f=>f.bytes)}))};return this.log("got %s providers %s closerPeers",c.providers.length,c.closer.length),c}async _getAddresses(t){return[]}async _getPeers(t){let r=[];for(let n of t)try{let i=await this.peerStore.get(n),o=this.peerInfoMapper({id:n,multiaddrs:i.addresses.map(({multiaddr:s})=>s)});o.multiaddrs.length>0&&r.push(o)}catch(i){if(i.code!=="ERR_NOT_FOUND")throw i}return r}};var li=class{peerStore;datastore;peerRouting;log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:get-value`),this.peerStore=t.peerStore,this.datastore=t.datastore,this.peerRouting=r.peerRouting}async handle(t,r){let n=r.key;if(this.log("%p asked for key %b",t,n),n==null||n.length===0)throw new _("Invalid key","ERR_INVALID_KEY");let i={type:X.GET_VALUE,key:n,clusterLevel:r.clusterLevel,closer:[],providers:[]};if(Ea(n)){this.log("is public key");let a=Sa(n),c;try{let u=await this.peerStore.get(a);if(u.id.publicKey==null)throw new _("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 this.log("returning found public key"),i.record=new Lt(n,c,new Date).serialize(),i}let[o,s]=await Promise.all([this._checkLocalDatastore(n),this.peerRouting.getCloserPeersOffline(n,t)]);return o!=null&&(this.log("had record for %b in local datastore",n),i.record=o.serialize()),s.length>0&&(this.log("had %s closer peers in routing table",s.length),i.closer=s.map(a=>({id:a.id.toBytes(),multiaddrs:a.multiaddrs.map(c=>c.bytes)}))),i}async _checkLocalDatastore(t){this.log("checkLocalDatastore looking for %b",t);let r=Je(t),n;try{n=await this.datastore.get(r)}catch(o){if(o.code==="ERR_NOT_FOUND")return;throw o}let i=Lt.deserialize(n);if(i==null)throw new _("Invalid record","ERR_INVALID_RECORD");if(i.timeReceived==null||Date.now()-i.timeReceived.getTime()>1296e5){await this.datastore.delete(r);return}return i}};var hi=class{log;constructor(t,r){this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:ping`)}async handle(t,r){return this.log("ping from %p",t),r}};var di=class{components;validators;log;constructor(t,r){let{validators:n}=r;this.components=t,this.log=t.logger.forComponent(`${r.logPrefix}:rpc:handlers:put-value`),this.validators=n}async handle(t,r){let n=r.key;if(this.log("%p asked us to store value for key %b",t,n),r.record==null){let i=`Empty record from: ${t.toString()}`;throw this.log.error(i),new _(i,"ERR_EMPTY_RECORD")}try{let i=Lt.deserialize(r.record);await pn(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(i){this.log("did not put record for key %b into datastore %o",n,i)}return r}};var pi=class{handlers;routingTable;log;constructor(t,r){let{providers:n,peerRouting:i,validators:o,logPrefix:s,peerInfoMapper:a}=r;this.log=t.logger.forComponent(`${s}:rpc`),this.routingTable=r.routingTable,this.handlers={[X.GET_VALUE.toString()]:new li(t,{peerRouting:i,logPrefix:s}),[X.PUT_VALUE.toString()]:new di(t,{validators:o,logPrefix:s}),[X.FIND_NODE.toString()]:new ui(t,{peerRouting:i,logPrefix:s,peerInfoMapper:a}),[X.ADD_PROVIDER.toString()]:new ci(t,{providers:n,logPrefix:s}),[X.GET_PROVIDERS.toString()]:new fi(t,{peerRouting:i,providers:n,logPrefix:s,peerInfoMapper:a}),[X.PING.toString()]:new hi(t,{logPrefix:s})}}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(s){this.log.error(s)}let o=this;await dr(r,s=>i0(s),async function*(s){for await(let a of s){let c=ue.decode(a);o.log("incoming %s from %p",c.type,i);let u=await o.handleMessage(i,c);u!=null&&(yield ue.encode(u))}},s=>Ur(s),r)}).catch(r=>{this.log.error(r)})}};var gi=class extends ee{log;components;protocol;running;registrarId;constructor(t,r){super();let{protocol:n,logPrefix:i}=r;this.components=t,this.log=t.logger.forComponent(`${i}:topology-listener`),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 Zt("peer",{detail:t}))}}))}async stop(){this.running=!1,this.registrarId!=null&&(this.components.registrar.unregister(this.registrarId),this.registrarId=void 0)}};async function*z5(e,t,r,n={}){yield*en(e,i=>async()=>{if(i.multiaddrs.length>0)return i;try{return await t.findPeer(i.id,{...n,useCache:!1})}catch(o){r.error("could not find peer",o)}})}var $s=class{dht;peerInfoMapper;peerRouting;log;constructor(t,r,n,i){this.dht=t,this.peerInfoMapper=r,this.peerRouting=n,this.log=i}async provide(t,r={}){await bi(this.dht.provide(t,r))}async*findProviders(t,r={}){let n=this,i=async function*(){for await(let o of n.dht.findProviders(t,r))o.name==="PROVIDER"&&(yield*o.providers)};for await(let o of hr(z5(i(),this.peerRouting,this.log,r)))o!=null&&(o=this.peerInfoMapper(o),o.multiaddrs.length!==0&&(yield o))}async put(t,r,n){await bi(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 _("Not found","ERR_NOT_FOUND")}},Gs=class{dht;peerInfoMapper;log;constructor(t,r,n){this.dht=t,this.peerInfoMapper=r,this.log=n}async findPeer(t,r={}){for await(let n of this.dht.findPeer(t,r))if(n.name==="FINAL_PEER"&&this.peerInfoMapper(n.peer).multiaddrs.length>0)return n.peer;throw new _("Not found","ERR_NOT_FOUND")}async*getClosestPeers(t,r={}){let n=this,i=async function*(){for await(let o of n.dht.getClosestPeers(t,r))o.name==="FINAL_PEER"&&(yield o.peer)};for await(let o of hr(z5(i(),this,this.log,r)))o!=null&&(o=this.peerInfoMapper(o),o.multiaddrs.length!==0&&(yield o))}},E9=32,S9=64,yi=class extends ee{protocol;routingTable;providers;network;peerRouting;components;log;running;kBucketSize;clientMode;validators;selectors;queryManager;contentFetching;contentRouting;routingTableRefresh;rpc;topologyListener;querySelf;maxInboundStreams;maxOutboundStreams;dhtContentRouting;dhtPeerRouting;peerInfoMapper;constructor(t,r){super();let{kBucketSize:n,clientMode:i,validators:o,selectors:s,querySelfInterval:a,protocol:c,logPrefix:u,pingTimeout:f,pingConcurrency:l,maxInboundStreams:p,maxOutboundStreams:d,providers:h}=r,g=u??"libp2p:kad-dht";this.running=!1,this.components=t,this.log=t.logger.forComponent(g),this.protocol=c??l2,this.kBucketSize=n??20,this.clientMode=i??!0,this.maxInboundStreams=p??E9,this.maxOutboundStreams=d??S9,this.peerInfoMapper=r.peerInfoMapper??W0,this.routingTable=new oi(t,{kBucketSize:n,pingTimeout:f,pingConcurrency:l,protocol:this.protocol,logPrefix:g}),this.providers=new J1(t,h??{}),this.validators={...X2,...o},this.selectors={...Z2,...s},this.network=new a1(t,{protocol:this.protocol,logPrefix:g});let y=Ct();r.allowQueryWithZeroPeers===!0&&y.resolve(),this.queryManager=new ti(t,{disjointPaths:Math.ceil(this.kBucketSize/2),logPrefix:g,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.peerRouting=new Z1(t,{routingTable:this.routingTable,network:this.network,validators:this.validators,queryManager:this.queryManager,logPrefix:g}),this.contentFetching=new Z0(t,{validators:this.validators,selectors:this.selectors,peerRouting:this.peerRouting,queryManager:this.queryManager,network:this.network,logPrefix:g}),this.contentRouting=new t1(t,{network:this.network,peerRouting:this.peerRouting,queryManager:this.queryManager,routingTable:this.routingTable,providers:this.providers,logPrefix:g}),this.routingTableRefresh=new ai(t,{peerRouting:this.peerRouting,routingTable:this.routingTable,logPrefix:g}),this.rpc=new pi(t,{routingTable:this.routingTable,providers:this.providers,peerRouting:this.peerRouting,validators:this.validators,logPrefix:g,peerInfoMapper:this.peerInfoMapper}),this.topologyListener=new gi(t,{protocol:this.protocol,logPrefix:g}),this.querySelf=new ri(t,{peerRouting:this.peerRouting,interval:a,initialInterval:r.initialQuerySelfInterval,logPrefix:g,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.network.addEventListener("peer",m=>{let x=m.detail;this.onPeerConnect(x).catch(v=>{this.log.error("could not add %p to routing table",x.id,v)}),this.dispatchEvent(new Zt("peer",{detail:x}))}),this.topologyListener.addEventListener("peer",m=>{let x=m.detail;Promise.resolve().then(async()=>{let v=await this.components.peerStore.get(x),T={id:x,multiaddrs:v.addresses.map(({multiaddr:E})=>E),protocols:v.protocols};await this.onPeerConnect(T)}).catch(v=>{this.log.error("could not add %p to routing table",x,v)})}),this.dhtPeerRouting=new Gs(this,this.peerInfoMapper,this.log),this.dhtContentRouting=new $s(this,this.peerInfoMapper,this.dhtPeerRouting,this.log),r.clientMode==null&&t.events.addEventListener("self:peer:update",m=>{this.log("received update of self-peer info"),Promise.resolve().then(async()=>{let x=m.detail.peer.addresses.some(({multiaddr:T})=>Aa(T)),v=this.getMode();x&&v==="client"?await this.setMode("server"):v==="server"&&!x&&await this.setMode("client")}).catch(x=>{this.log.error("error setting dht server mode",x)})})}get[i2](){return this.dhtContentRouting}get[a2](){return this.dhtPeerRouting}get[o2](){return this}async onPeerConnect(t){if(this.log("peer %p connected",t.id),t=this.peerInfoMapper(t),t.multiaddrs.length===0){this.log("ignoring %p as there were no valid addresses in %s after filtering",t.id,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}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"),this.querySelf.start(),await Promise.all([this.providers.start(),this.queryManager.start(),this.network.start(),this.routingTable.start(),this.topologyListener.start(),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 Ys;(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"})(Ys||(Ys={}));var Qs;(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"})(Qs||(Qs={}));function I9(e){return t=>new yi(t,e)}return n8(A9);})();
|
|
27
27
|
/*! Bundled license information:
|
|
28
28
|
|
|
29
29
|
@noble/hashes/esm/utils.js:
|