@libp2p/kad-dht 10.0.15-e2267d437 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +19 -19
- package/dist/src/content-fetching/index.js +1 -1
- package/dist/src/content-fetching/index.js.map +1 -1
- package/dist/src/content-routing/index.d.ts.map +1 -1
- package/dist/src/content-routing/index.js.map +1 -1
- package/dist/src/dual-kad-dht.d.ts +5 -8
- package/dist/src/dual-kad-dht.d.ts.map +1 -1
- package/dist/src/dual-kad-dht.js +5 -8
- package/dist/src/dual-kad-dht.js.map +1 -1
- package/dist/src/index.d.ts +2 -9
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/kad-dht.d.ts +2 -4
- package/dist/src/kad-dht.d.ts.map +1 -1
- package/dist/src/kad-dht.js +1 -1
- package/dist/src/kad-dht.js.map +1 -1
- package/dist/src/message/index.d.ts +1 -1
- package/dist/src/message/index.d.ts.map +1 -1
- package/dist/src/network.d.ts +2 -6
- package/dist/src/network.d.ts.map +1 -1
- package/dist/src/network.js +1 -1
- package/dist/src/network.js.map +1 -1
- package/dist/src/peer-list/index.d.ts +1 -1
- package/dist/src/peer-list/index.d.ts.map +1 -1
- package/dist/src/peer-list/peer-distance-list.d.ts +1 -1
- package/dist/src/peer-list/peer-distance-list.d.ts.map +1 -1
- package/dist/src/peer-routing/index.d.ts +1 -3
- package/dist/src/peer-routing/index.d.ts.map +1 -1
- package/dist/src/peer-routing/index.js +1 -1
- package/dist/src/peer-routing/index.js.map +1 -1
- package/dist/src/providers.d.ts +1 -3
- package/dist/src/providers.d.ts.map +1 -1
- package/dist/src/providers.js.map +1 -1
- package/dist/src/query/events.d.ts +1 -2
- package/dist/src/query/events.d.ts.map +1 -1
- package/dist/src/query/events.js +1 -1
- package/dist/src/query/events.js.map +1 -1
- package/dist/src/query/manager.d.ts +1 -4
- package/dist/src/query/manager.d.ts.map +1 -1
- package/dist/src/query/manager.js +1 -2
- package/dist/src/query/manager.js.map +1 -1
- package/dist/src/query/query-path.d.ts +1 -3
- package/dist/src/query/query-path.d.ts.map +1 -1
- package/dist/src/query/query-path.js.map +1 -1
- package/dist/src/query/types.d.ts +1 -1
- package/dist/src/query/types.d.ts.map +1 -1
- package/dist/src/query/utils.d.ts +1 -2
- package/dist/src/query/utils.d.ts.map +1 -1
- package/dist/src/query/utils.js +1 -1
- package/dist/src/query/utils.js.map +1 -1
- package/dist/src/query-self.d.ts +1 -3
- package/dist/src/query-self.d.ts.map +1 -1
- package/dist/src/query-self.js +1 -1
- package/dist/src/query-self.js.map +1 -1
- package/dist/src/record/selectors.js +1 -1
- package/dist/src/record/selectors.js.map +1 -1
- package/dist/src/record/validators.js +1 -1
- package/dist/src/record/validators.js.map +1 -1
- package/dist/src/routing-table/index.d.ts +3 -7
- package/dist/src/routing-table/index.d.ts.map +1 -1
- package/dist/src/routing-table/index.js +1 -1
- package/dist/src/routing-table/index.js.map +1 -1
- package/dist/src/routing-table/k-bucket.d.ts +2 -2
- package/dist/src/routing-table/k-bucket.d.ts.map +1 -1
- package/dist/src/routing-table/k-bucket.js +1 -1
- package/dist/src/routing-table/k-bucket.js.map +1 -1
- package/dist/src/routing-table/refresh.d.ts +1 -2
- package/dist/src/routing-table/refresh.d.ts.map +1 -1
- package/dist/src/routing-table/refresh.js.map +1 -1
- package/dist/src/rpc/handlers/add-provider.d.ts +1 -2
- package/dist/src/rpc/handlers/add-provider.d.ts.map +1 -1
- package/dist/src/rpc/handlers/add-provider.js +1 -1
- package/dist/src/rpc/handlers/add-provider.js.map +1 -1
- package/dist/src/rpc/handlers/find-node.d.ts +2 -3
- package/dist/src/rpc/handlers/find-node.d.ts.map +1 -1
- package/dist/src/rpc/handlers/find-node.js.map +1 -1
- package/dist/src/rpc/handlers/get-providers.d.ts +1 -4
- package/dist/src/rpc/handlers/get-providers.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-providers.js +1 -1
- package/dist/src/rpc/handlers/get-providers.js.map +1 -1
- package/dist/src/rpc/handlers/get-value.d.ts +1 -3
- package/dist/src/rpc/handlers/get-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/get-value.js +1 -1
- package/dist/src/rpc/handlers/get-value.js.map +1 -1
- package/dist/src/rpc/handlers/ping.d.ts +1 -2
- package/dist/src/rpc/handlers/ping.d.ts.map +1 -1
- package/dist/src/rpc/handlers/ping.js.map +1 -1
- package/dist/src/rpc/handlers/put-value.d.ts +1 -2
- package/dist/src/rpc/handlers/put-value.d.ts.map +1 -1
- package/dist/src/rpc/handlers/put-value.js +1 -1
- package/dist/src/rpc/handlers/put-value.js.map +1 -1
- package/dist/src/rpc/index.d.ts +2 -2
- package/dist/src/rpc/index.d.ts.map +1 -1
- package/dist/src/rpc/index.js.map +1 -1
- package/dist/src/topology-listener.d.ts +2 -3
- package/dist/src/topology-listener.d.ts.map +1 -1
- package/dist/src/topology-listener.js +1 -1
- package/dist/src/topology-listener.js.map +1 -1
- package/dist/src/utils.d.ts +1 -2
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js.map +1 -1
- package/dist/typedoc-urls.json +55 -0
- package/package.json +15 -11
- package/src/content-fetching/index.ts +1 -1
- package/src/content-routing/index.ts +1 -2
- package/src/dual-kad-dht.ts +5 -11
- package/src/index.ts +2 -9
- package/src/kad-dht.ts +2 -5
- package/src/message/index.ts +1 -1
- package/src/network.ts +2 -6
- package/src/peer-list/index.ts +1 -1
- package/src/peer-list/peer-distance-list.ts +1 -1
- package/src/peer-routing/index.ts +2 -4
- package/src/providers.ts +1 -3
- package/src/query/events.ts +2 -3
- package/src/query/manager.ts +2 -6
- package/src/query/query-path.ts +1 -3
- package/src/query/types.ts +1 -1
- package/src/query/utils.ts +2 -3
- package/src/query-self.ts +2 -4
- package/src/record/selectors.ts +1 -1
- package/src/record/validators.ts +1 -1
- package/src/routing-table/index.ts +3 -7
- package/src/routing-table/k-bucket.ts +2 -2
- package/src/routing-table/refresh.ts +1 -2
- package/src/rpc/handlers/add-provider.ts +2 -3
- package/src/rpc/handlers/find-node.ts +2 -4
- package/src/rpc/handlers/get-providers.ts +2 -5
- package/src/rpc/handlers/get-value.ts +2 -4
- package/src/rpc/handlers/ping.ts +1 -2
- package/src/rpc/handlers/put-value.ts +2 -3
- package/src/rpc/index.ts +2 -3
- package/src/topology-listener.ts +2 -4
- package/src/utils.ts +1 -2
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 B0=Object.defineProperty;var Y5=Object.getOwnPropertyDescriptor;var W5=Object.getOwnPropertyNames;var Z5=Object.getPrototypeOf,X5=Object.prototype.hasOwnProperty;var it=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ot=(e,t)=>{for(var r in t)B0(e,r,{get:t[r],enumerable:!0})},e2=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of W5(t))!X5.call(e,i)&&i!==r&&B0(e,i,{get:()=>t[i],enumerable:!(n=Y5(t,i))||n.enumerable});return e};var Bt=(e,t,r)=>(r=e!=null?Q5(Z5(e)):{},e2(t||!e||!e.__esModule?B0(r,"default",{value:e,enumerable:!0}):r,e)),J5=e=>e2(B0({},"__esModule",{value:!0}),e);var s2=it(Kn=>{(function(){var e,t,r,n,i,s,a,o;o=function(c){var u,f,l,p;return u=(c&255<<24)>>>24,f=(c&255<<16)>>>16,l=(c&65280)>>>8,p=c&255,[u,f,l,p].join(".")},a=function(c){var u,f,l,p,d,h;for(u=[],l=p=0;p<=3&&c.length!==0;l=++p){if(l>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}h=t(c),d=h[0],f=h[1],c=c.substring(f),u.push(d)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),s=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])-s)>>>0;else if("A"<=c[l]&&c[l]<="F")p=p*u+(10+r(c[l])-i)>>>0;else break;else break;if(p>4294967295)throw new Error("too large");l++}if(l===d)throw new Error("empty octet");return[p,l]},e=function(){function c(u,f){var l,p,d,h;if(typeof u!="string")throw new Error("Missing `net' parameter");if(f||(h=u.split("/",2),u=h[0],f=h[1]),f||(f=32),typeof f=="string"&&f.indexOf(".")>-1){try{this.maskLong=a(f)}catch(y){throw l=y,new Error("Invalid mask: "+f)}for(p=d=32;d>=0;p=--d)if(this.maskLong===4294967295<<32-p>>>0){this.bitmask=p;break}}else if(f||f===0)this.bitmask=parseInt(f,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(a(u)&this.maskLong)>>>0}catch(y){throw l=y,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+f);this.size=Math.pow(2,32-this.bitmask),this.base=o(this.netLong),this.mask=o(this.maskLong),this.hostmask=o(~this.maskLong),this.first=this.bitmask<=30?o(this.netLong+1):this.base,this.last=this.bitmask<=30?o(this.netLong+this.size-2):o(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?o(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(a(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(o(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var f,l,p;for(p=a(this.first),l=a(this.last),f=0;p<=l;)u(o(p),p,f),f++,p++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Kn.ip2long=a,Kn.long2ip=o,Kn.Netmask=e}).call(Kn)});var h2=it((l2,L0)=>{(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"),s="%[0-9a-z]{1,}",a="(?:[0-9a-f]+::?)+",o={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${a})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${a})|(?:::)(?:${a})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(d,h){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let y=0,g=-1,m=(d.match(o.zoneIndex)||[])[0],x,v;for(m&&(m=m.substring(1),d=d.replace(/%.+$/,""));(g=d.indexOf(":",g+1))>=0;)y++;if(d.substr(0,2)==="::"&&y--,d.substr(-2,2)==="::"&&y--,y>h)return null;for(v=h-y,x=":";v--;)x+="0:";return d=d.replace("::",x),d[0]===":"&&(d=d.slice(1)),d[d.length-1]===":"&&(d=d.slice(0,-1)),h=function(){let 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,y,g){if(d.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let m=0,x;for(;g>0;){if(x=y-g,x<0&&(x=0),d[m]>>x!==h[m]>>x)return!1;g-=y,m+=1}return!0}function f(d){if(i.test(d))return parseInt(d,16);if(d[0]==="0"&&!isNaN(parseInt(d[1],10))){if(n.test(d))return parseInt(d,8);throw new Error(`ipaddr: cannot parse ${d} as octal`)}return parseInt(d,10)}function l(d,h){for(;d.length<h;)d=`0${d}`;return d}let p={};p.IPv4=function(){function d(h){if(h.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let y,g;for(y=0;y<h.length;y++)if(g=h[y],!(0<=g&&g<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=h}return d.prototype.SpecialRanges={unspecified:[[new d([0,0,0,0]),8]],broadcast:[[new d([255,255,255,255]),32]],multicast:[[new d([224,0,0,0]),4]],linkLocal:[[new d([169,254,0,0]),16]],loopback:[[new d([127,0,0,0]),8]],carrierGradeNat:[[new d([100,64,0,0]),10]],private:[[new d([10,0,0,0]),8],[new d([172,16,0,0]),12],[new d([192,168,0,0]),16]],reserved:[[new d([192,0,0,0]),24],[new d([192,0,2,0]),24],[new d([192,88,99,0]),24],[new d([198,18,0,0]),15],[new d([198,51,100,0]),24],[new d([203,0,113,0]),24],[new d([240,0,0,0]),4]]},d.prototype.kind=function(){return"ipv4"},d.prototype.match=function(h,y){let g;if(y===void 0&&(g=h,h=g[0],y=g[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,y)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,y=!1,g={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},m,x,v;for(m=3;m>=0;m-=1)if(x=this.octets[m],x in g){if(v=g[x],y&&v!==0)return null;v!==8&&(y=!0),h+=v}else return null;return 32-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){return this.octets.slice(0)},d.prototype.toIPv4MappedAddress=function(){return p.IPv6.parse(`::ffff:${this.toString()}`)},d.prototype.toNormalizedString=function(){return this.toString()},d.prototype.toString=function(){return this.octets.join(".")},d}(),p.IPv4.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),y=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<4;)m.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.isIPv4=function(d){return this.parser(d)!==null},p.IPv4.isValid=function(d){try{return new this(this.parser(d)),!0}catch{return!1}},p.IPv4.isValidFourPartDecimal=function(d){return!!(p.IPv4.isValid(d)&&d.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},p.IPv4.networkAddressFromCIDR=function(d){let h,y,g,m,x;try{for(h=this.parseCIDR(d),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],y=0;y<4;)m.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.parse=function(d){let h=this.parser(d);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},p.IPv4.parseCIDR=function(d){let h;if(h=d.match(/^(.+)\/(\d+)$/)){let y=parseInt(h[2]);if(y>=0&&y<=32){let g=[this.parse(h[1]),y];return Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},p.IPv4.parser=function(d){let h,y,g;if(h=d.match(r.fourOctet))return function(){let m=h.slice(1,6),x=[];for(let v=0;v<m.length;v++)y=m[v],x.push(f(y));return x}();if(h=d.match(r.longValue)){if(g=f(h[1]),g>4294967295||g<0)throw new Error("ipaddr: address outside defined range");return function(){let m=[],x;for(x=0;x<=24;x+=8)m.push(g>>x&255);return m}().reverse()}else return(h=d.match(r.twoOctet))?function(){let m=h.slice(1,4),x=[];if(g=f(m[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(g>>16&255),x.push(g>>8&255),x.push(g&255),x}():(h=d.match(r.threeOctet))?function(){let m=h.slice(1,5),x=[];if(g=f(m[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(f(m[1])),x.push(g>>8&255),x.push(g&255),x}():null},p.IPv4.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)h[y]=255,y++;return g<4&&(h[g]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.IPv6=function(){function d(h,y){let g,m;if(h.length===16)for(this.parts=[],g=0;g<=14;g+=2)this.parts.push(h[g]<<8|h[g+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(g=0;g<this.parts.length;g++)if(m=this.parts[g],!(0<=m&&m<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");y&&(this.zoneId=y)}return d.prototype.SpecialRanges={unspecified:[new d([0,0,0,0,0,0,0,0]),128],linkLocal:[new d([65152,0,0,0,0,0,0,0]),10],multicast:[new d([65280,0,0,0,0,0,0,0]),8],loopback:[new d([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new d([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new d([0,0,0,0,0,65535,0,0]),96],rfc6145:[new d([0,0,0,0,65535,0,0,0]),96],rfc6052:[new d([100,65435,0,0,0,0,0,0]),96],"6to4":[new d([8194,0,0,0,0,0,0,0]),16],teredo:[new d([8193,0,0,0,0,0,0,0]),32],reserved:[[new d([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new d([8193,2,0,0,0,0,0,0]),48],amt:[new d([8193,3,0,0,0,0,0,0]),32],as112v6:[new d([8193,4,274,0,0,0,0,0]),48],deprecated:[new d([8193,16,0,0,0,0,0,0]),28],orchid2:[new d([8193,32,0,0,0,0,0,0]),28]},d.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},d.prototype.kind=function(){return"ipv6"},d.prototype.match=function(h,y){let g;if(y===void 0&&(g=h,h=g[0],y=g[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,y)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,y=!1,g={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},m,x;for(let v=7;v>=0;v-=1)if(m=this.parts[v],m in g){if(x=g[m],y&&x!==0)return null;x!==16&&(y=!0),h+=x}else return null;return 128-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){let h,y=[],g=this.parts;for(let m=0;m<g.length;m++)h=g[m],y.push(h>>8),y.push(h&255);return y},d.prototype.toFixedLengthString=function(){let h=function(){let g=[];for(let m=0;m<this.parts.length;m++)g.push(l(this.parts[m].toString(16),4));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),h+y},d.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let h=this.parts.slice(-2),y=h[0],g=h[1];return new p.IPv4([y>>8,y&255,g>>8,g&255])},d.prototype.toNormalizedString=function(){let h=function(){let g=[];for(let m=0;m<this.parts.length;m++)g.push(this.parts[m].toString(16));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),h+y},d.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,y=this.toNormalizedString(),g=0,m=-1,x;for(;x=h.exec(y);)x[0].length>m&&(g=x.index,m=x[0].length);return m<0?y:`${y.substring(0,g)}::${y.substring(g+m)}`},d.prototype.toString=function(){return this.toRFC5952String()},d}(),p.IPv6.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),y=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<16;)m.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(m)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},p.IPv6.isIPv6=function(d){return this.parser(d)!==null},p.IPv6.isValid=function(d){if(typeof d=="string"&&d.indexOf(":")===-1)return!1;try{let h=this.parser(d);return new this(h.parts,h.zoneId),!0}catch{return!1}},p.IPv6.networkAddressFromCIDR=function(d){let h,y,g,m,x;try{for(h=this.parseCIDR(d),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],y=0;y<16;)m.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(m)}catch(v){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${v})`)}},p.IPv6.parse=function(d){let h=this.parser(d);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},p.IPv6.parseCIDR=function(d){let h,y,g;if((y=d.match(/^(.+)\/(\d+)$/))&&(h=parseInt(y[2]),h>=0&&h<=128))return g=[this.parse(y[1]),h],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},p.IPv6.parser=function(d){let h,y,g,m,x,v;if(g=d.match(o.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(o.native.test(d))return c(d,8);if((g=d.match(o.transitional))&&(v=g[6]||"",h=c(g[1].slice(0,-1)+v,6),h.parts)){for(x=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],y=0;y<x.length;y++)if(m=x[y],!(0<=m&&m<=255))return null;return h.parts.push(x[0]<<8|x[1]),h.parts.push(x[2]<<8|x[3]),{parts:h.parts,zoneId:h.zoneId}}return null},p.IPv6.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)h[y]=255,y++;return g<16&&(h[g]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.fromByteArray=function(d){let h=d.length;if(h===4)return new p.IPv4(d);if(h===16)return new p.IPv6(d);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},p.isValid=function(d){return p.IPv6.isValid(d)||p.IPv4.isValid(d)},p.parse=function(d){if(p.IPv6.isValid(d))return p.IPv6.parse(d);if(p.IPv4.isValid(d))return p.IPv4.parse(d);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},p.parseCIDR=function(d){try{return p.IPv6.parseCIDR(d)}catch{try{return p.IPv4.parseCIDR(d)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},p.process=function(d){let h=this.parse(d);return h.kind()==="ipv6"&&h.isIPv4MappedAddress()?h.toIPv4Address():h},p.subnetMatch=function(d,h,y){let g,m,x,v;y==null&&(y="unicast");for(m in h)if(Object.prototype.hasOwnProperty.call(h,m)){for(x=h[m],x[0]&&!(x[0]instanceof Array)&&(x=[x]),g=0;g<x.length;g++)if(v=x[g],d.kind()===v[0].kind()&&d.match.apply(d,v))return m}return y},typeof L0<"u"&&L0.exports?L0.exports=p:e.ipaddr=p})(l2)});var Fa=it((xg,Ua)=>{"use strict";function Oa(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function dc(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 Oa(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Oa(new i,r)}}Ua.exports=dc});var ut=it((Og,qa)=>{qa.exports={options:{usePureJavaScript:!1}}});var $a=it((Ug,Ha)=>{var Bs={};Ha.exports=Bs;var za={};Bs.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=gc(e,t);else{var i=0,s=t.length,a=t.charAt(0),o=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[i];c<o.length;++c)u+=o[c]<<8,o[c]=u%s,u=u/s|0;for(;u>0;)o.push(u%s),u=u/s|0}for(i=0;e[i]===0&&i<e.length-1;++i)n+=a;for(i=o.length-1;i>=0;--i)n+=t[o[i]]}if(r){var f=new RegExp(".{1,"+r+"}","g");n=n.match(f).join(`\r
|
|
3
|
-
`)}return n};Bs.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=za[t];if(!r){r=za[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,s=t.charAt(0),a=[0],n=0;n<e.length;n++){var o=r[e.charCodeAt(n)];if(o===void 0)return;for(var c=0,u=o;c<a.length;++c)u+=a[c]*i,a[c]=u&255,u>>=8;for(;u>0;)a.push(u&255),u>>=8}for(var f=0;e[f]===s&&f<e.length-1;++f)a.push(0);return typeof Buffer<"u"?Buffer.from(a.reverse()):new Uint8Array(a.reverse())};function gc(e,t){var r=0,n=t.length,i=t.charAt(0),s=[0];for(r=0;r<e.length();++r){for(var a=0,o=e.at(r);a<s.length;++a)o+=s[a]<<8,s[a]=o%n,o=o/n|0;for(;o>0;)s.push(o%n),o=o/n|0}var c="";for(r=0;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=t[s[r]];return c}});var Lt=it((Fg,Wa)=>{var Ga=ut(),Qa=$a(),b=Wa.exports=Ga.util=Ga.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(o){return setImmediate(o)};return}if(b.setImmediate=function(o){setTimeout(o,0)},typeof window<"u"&&typeof window.postMessage=="function"){let o=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(f){f()})}};var a=o,e="forge.setImmediate",t=[];b.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",o,!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 s=b.setImmediate;b.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(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 t0(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}b.ByteBuffer=Ts;function Ts(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 Ts||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}b.ByteStringBuffer=Ts;var mc=4096;b.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>mc&&(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){t0(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){t0(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 xc(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=xc;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 s;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.hex.decode(e,s,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.base64.decode(e,s,this.write),this;if(t==="utf8"&&(e=b.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=b.binary.raw.decode(s),this;if(t==="utf16")return this.accommodate(e.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=b.text.utf16.encode(s),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){t0(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 t0(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){t0(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="",s="",a=0,o=0;r>0;--r,++a)i=e.charCodeAt(a)^t.charCodeAt(a),o>=10&&(n+=s,s="",o=0),s+=String.fromCharCode(i),++o;return n+=s,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 xr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",vr=[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],Ya="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";b.encode64=function(e,t){for(var r="",n="",i,s,a,o=0;o<e.length;)i=e.charCodeAt(o++),s=e.charCodeAt(o++),a=e.charCodeAt(o++),r+=xr.charAt(i>>2),r+=xr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=xr.charAt((s&15)<<2|a>>6),r+=isNaN(a)?"=":xr.charAt(a&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
4
|
-
`,r=r.substr(t));return n+=r,n};b.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,
|
|
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,s,a,o,c=0,u=r;c<e.length;)i=vr[e.charCodeAt(c++)-43],s=vr[e.charCodeAt(c++)-43],a=vr[e.charCodeAt(c++)-43],o=vr[e.charCodeAt(c++)-43],n[u++]=i<<2|s>>4,a!==64&&(n[u++]=(s&15)<<4|a>>2,o!==64&&(n[u++]=(a&3)<<6|o));return t?u-r:n.subarray(0,u)};b.binary.base58.encode=function(e,t){return b.binary.baseN.encode(e,Ya,t)};b.binary.base58.decode=function(e,t){return b.binary.baseN.decode(e,Ya,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,s=0;s<e.length;++s)n[i++]=e.charCodeAt(s);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 s=r,a=r,o=0;o<e.length;++o)i[a++]=e.charCodeAt(o),s+=2;return t?s-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 _s=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}},Cs=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},vc=function(e,t,r,n){var i=Cs(e,t);i===null&&(i={}),i[r]=n,_s(e,t,i)},bc=function(e,t,r){var n=Cs(e,t);return n!==null&&(n=r in n?n[r]:null),n},wc=function(e,t,r){var n=Cs(e,t);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),_s(e,t,n)}},Ec=function(e,t){_s(e,t,null)},X0=function(e,t,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,s=!1,a=null;for(var o in r){i=r[o];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),s=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),s=!0)}catch(c){a=c}if(s)break}if(!s)throw a;return n};b.setItem=function(e,t,r,n,i){X0(vc,arguments,i)};b.getItem=function(e,t,r,n){return X0(bc,arguments,n)};b.removeItem=function(e,t,r,n){X0(wc,arguments,n)};b.clearItems=function(e,t,r){X0(Ec,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,s=[],a=0;r=t.exec(e);){n=e.substring(a,t.lastIndex-2),n.length>0&&s.push(n),a=t.lastIndex;var o=r[0][1];switch(o){case"s":case"o":i<arguments.length?s.push(arguments[i+++1]):s.push("<?>");break;case"%":s.push("%");break;default:s.push("<%"+o+"?>")}}return s.push(e.substring(a)),s.join("")};b.formatNumber=function(e,t,r,n){var i=e,s=isNaN(t=Math.abs(t))?2:t,a=r===void 0?",":r,o=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(s),10)+"",f=u.length>3?u.length%3:0;return c+(f?u.substr(0,f)+o:"")+u.substr(f).replace(/(\d{3})(?=\d)/g,"$1"+o)+(s?a+Math.abs(i-u).toFixed(s).slice(2):"")};b.formatSize=function(e){return e>=1073741824?e=b.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=b.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=b.formatNumber(e/1024,0)+" KiB":e=b.formatNumber(e,0)+" bytes",e};b.bytesFromIP=function(e){return e.indexOf(".")!==-1?b.bytesFromIPv4(e):e.indexOf(":")!==-1?b.bytesFromIPv6(e):null};b.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=b.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};b.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(a){return a.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=b.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=b.hexToBytes(e[i]);s.length<2&&n.putByte(0),n.putBytes(s)}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 s=b.bytesToHex(e[i]+e[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var a=r[r.length-1],o=t.length;!a||o!==a.end+1?r.push({start:o,end:o}):(a.end=o,a.end-a.start>r[n].end-r[n].start&&(n=r.length-1))}t.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};b.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in b&&!e.update)return t(null,b.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return b.cores=navigator.hardwareConcurrency,t(null,b.cores);if(typeof Worker>"u")return b.cores=1,t(null,b.cores);if(typeof Blob>"u")return b.cores=2,t(null,b.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(a){for(var o=Date.now(),c=o+4;Date.now()<c;);self.postMessage({st:o,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(a,o,c){if(o===0){var u=Math.floor(a.reduce(function(f,l){return f+l},0)/a.length);return b.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,b.cores)}i(c,function(f,l){a.push(s(c,l)),n(a,o-1,c)})}function i(a,o){for(var c=[],u=[],f=0;f<a;++f){var l=new Worker(r);l.addEventListener("message",function(p){if(u.push(p.data),u.length===a){for(var d=0;d<a;++d)c[d].terminate();o(null,u)}}),c.push(l)}for(var f=0;f<a;++f)c[f].postMessage(f)}function s(a,o){for(var c=[],u=0;u<a;++u)for(var f=o[u],l=c[u]=[],p=0;p<a;++p)if(u!==p){var d=o[p];(f.st>d.st&&f.st<d.et||d.st>f.st&&d.st<f.et)&&l.push(p)}return c.reduce(function(h,y){return Math.max(h,y.length)},0)}}});var Ps=it((Kg,Za)=>{var Ht=ut();Lt();Za.exports=Ht.cipher=Ht.cipher||{};Ht.cipher.algorithms=Ht.cipher.algorithms||{};Ht.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ht.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ht.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Ht.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ht.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ht.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Ht.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Ht.cipher.algorithms[e]=t};Ht.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Ht.cipher.algorithms?Ht.cipher.algorithms[e]:null};var Rs=Ht.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};Rs.prototype.start=function(e){e=e||{};var t={};for(var r in e)t[r]=e[r];t.decrypt=this._decrypt,this._finish=!1,this._input=Ht.util.createBuffer(),this.output=e.output||Ht.util.createBuffer(),this.mode.start(t)};Rs.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()};Rs.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 Ns=it((Mg,Xa)=>{var $t=ut();Lt();$t.cipher=$t.cipher||{};var X=Xa.exports=$t.cipher.modes=$t.cipher.modes||{};X.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)};X.ecb.prototype.start=function(e){};X.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])};X.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])};X.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};X.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)};X.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)};X.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=J0(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};X.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};X.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)};X.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};X.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)};X.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};X.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=J0(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};X.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 s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>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),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};X.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 s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>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),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};X.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};X.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=J0(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};X.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 s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(s>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),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};X.ofb.prototype.decrypt=X.ofb.prototype.encrypt;X.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};X.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=J0(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};X.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 s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(s>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}j0(this._inBlock)};X.ctr.prototype.decrypt=X.ctr.prototype.encrypt;X.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0,this._R=3774873600};X.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=$t.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=$t.util.createBuffer(e.additionalData):r=$t.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=$t.util.createBuffer(e.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Ls(n*8)))}this._inBlock=this._j0.slice(0),j0(this._inBlock),this._partialBytes=0,r=$t.util.createBuffer(r),this._aDataLength=Ls(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()])};X.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 s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(s<=0||r){if(r){var a=n%this.blockSize;this._cipherLength+=a,this._partialOutput.truncate(this.blockSize-a)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),j0(this._inBlock)};X.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),j0(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};X.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=$t.util.createBuffer();var n=this._aDataLength.concat(Ls(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^i[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};X.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var s=e[i/32|0]&1<<31-i%32;s&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};X.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)};X.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,s=this._m[r][i];t[0]^=s[0],t[1]^=s[1],t[2]^=s[2],t[3]^=s[3]}return t};X.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)};X.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,i=16*r,s=new Array(i),a=0;a<i;++a){var o=[0,0,0,0],c=a/n|0,u=(n-1-a%n)*t;o[c]=1<<t-1<<u,s[a]=this.generateSubHashTable(this.multiply(o,e),t)}return s};X.gcm.prototype.generateSubHashTable=function(e,t){var r=1<<t,n=r>>>1,i=new Array(r);i[n]=e.slice(0);for(var s=n>>>1;s>0;)this.pow(i[2*s],i[s]=[]),s>>=1;for(s=2;s<n;){for(var a=1;a<s;++a){var o=i[s],c=i[a];i[s+a]=[o[0]^c[0],o[1]^c[1],o[2]^c[2],o[3]^c[3]]}s*=2}for(i[0]=[0,0,0,0],s=n+1;s<r;++s){var u=i[s^n];i[s]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function J0(e,t){if(typeof e=="string"&&(e=$t.util.createBuffer(e)),$t.util.isArray(e)&&e.length>4){var r=e;e=$t.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!$t.util.isArray(e)){for(var i=[],s=t/4,n=0;n<s;++n)i.push(e.getInt32());e=i}return e}function j0(e){e[e.length-1]=e[e.length-1]+1&4294967295}function Ls(e){return[e/4294967296|0,e&4294967295]}});var e1=it((Vg,e3)=>{var pt=ut();Ps();Ns();Lt();e3.exports=pt.aes=pt.aes||{};pt.aes.startEncrypting=function(e,t,r,n){var i=t1({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};pt.aes.createEncryptionCipher=function(e,t){return t1({key:e,output:null,decrypt:!1,mode:t})};pt.aes.startDecrypting=function(e,t,r,n){var i=t1({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};pt.aes.createDecryptionCipher=function(e,t){return t1({key:e,output:null,decrypt:!0,mode:t})};pt.aes.Algorithm=function(e,t){Os||ja();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return ks(r._w,n,i,!1)},decrypt:function(n,i){return ks(r._w,n,i,!0)}}}),r._init=!1};pt.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=pt.util.createBuffer(t);else if(pt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=pt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!pt.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(!pt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,a=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=t3(t,e.decrypt&&!a),this._init=!0}};pt.aes._expandKey=function(e,t){return Os||ja(),t3(e,t)};pt.aes._updateBlock=ks;Sn("AES-ECB",pt.cipher.modes.ecb);Sn("AES-CBC",pt.cipher.modes.cbc);Sn("AES-CFB",pt.cipher.modes.cfb);Sn("AES-OFB",pt.cipher.modes.ofb);Sn("AES-CTR",pt.cipher.modes.ctr);Sn("AES-GCM",pt.cipher.modes.gcm);function Sn(e,t){var r=function(){return new pt.aes.Algorithm(e,t)};pt.cipher.registerAlgorithm(e,r)}var Os=!1,En=4,ie,Ds,Ja,Kr,Ee;function ja(){Os=!0,Ja=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;ie=new Array(256),Ds=new Array(256),Kr=new Array(4),Ee=new Array(4);for(var t=0;t<4;++t)Kr[t]=new Array(256),Ee[t]=new Array(256);for(var r=0,n=0,i,s,a,o,c,u,f,t=0;t<256;++t){o=n^n<<1^n<<2^n<<3^n<<4,o=o>>8^o&255^99,ie[r]=o,Ds[o]=r,c=e[o],i=e[r],s=e[i],a=e[s],u=c<<24^o<<16^o<<8^(o^c),f=(i^s^a)<<24^(r^a)<<16^(r^s^a)<<8^(r^i^a);for(var l=0;l<4;++l)Kr[l][r]=u,Ee[l][o]=f,u=u<<24|u>>>8,f=f<<24|f>>>8;r===0?r=n=1:(r=i^e[e[e[i^a]]],n^=e[e[n]])}}function t3(e,t){for(var r=e.slice(0),n,i=1,s=r.length,a=s+6+1,o=En*a,c=s;c<o;++c)n=r[c-1],c%s===0?(n=ie[n>>>16&255]<<24^ie[n>>>8&255]<<16^ie[n&255]<<8^ie[n>>>24]^Ja[i]<<24,i++):s>6&&c%s===4&&(n=ie[n>>>24]<<24^ie[n>>>16&255]<<16^ie[n>>>8&255]<<8^ie[n&255]),r[c]=r[c-s]^n;if(t){var u,f=Ee[0],l=Ee[1],p=Ee[2],d=Ee[3],h=r.slice(0);o=r.length;for(var c=0,y=o-En;c<o;c+=En,y-=En)if(c===0||c===o-En)h[c]=r[y],h[c+1]=r[y+3],h[c+2]=r[y+2],h[c+3]=r[y+1];else for(var g=0;g<En;++g)u=r[y+g],h[c+(3&-g)]=f[ie[u>>>24]]^l[ie[u>>>16&255]]^p[ie[u>>>8&255]]^d[ie[u&255]];r=h}return r}function ks(e,t,r,n){var i=e.length/4-1,s,a,o,c,u;n?(s=Ee[0],a=Ee[1],o=Ee[2],c=Ee[3],u=Ds):(s=Kr[0],a=Kr[1],o=Kr[2],c=Kr[3],u=ie);var f,l,p,d,h,y,g;f=t[0]^e[0],l=t[n?3:1]^e[1],p=t[2]^e[2],d=t[n?1:3]^e[3];for(var m=3,x=1;x<i;++x)h=s[f>>>24]^a[l>>>16&255]^o[p>>>8&255]^c[d&255]^e[++m],y=s[l>>>24]^a[p>>>16&255]^o[d>>>8&255]^c[f&255]^e[++m],g=s[p>>>24]^a[d>>>16&255]^o[f>>>8&255]^c[l&255]^e[++m],d=s[d>>>24]^a[f>>>16&255]^o[l>>>8&255]^c[p&255]^e[++m],f=h,l=y,p=g;r[0]=u[f>>>24]<<24^u[l>>>16&255]<<16^u[p>>>8&255]<<8^u[d&255]^e[++m],r[n?3:1]=u[l>>>24]<<24^u[p>>>16&255]<<16^u[d>>>8&255]<<8^u[f&255]^e[++m],r[2]=u[p>>>24]<<24^u[d>>>16&255]<<16^u[f>>>8&255]<<8^u[l&255]^e[++m],r[n?1:3]=u[d>>>24]<<24^u[f>>>16&255]<<16^u[l>>>8&255]<<8^u[p&255]^e[++m]}function t1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=pt.cipher.createDecipher(r,e.key):n=pt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,a){var o=null;a instanceof pt.util.ByteBuffer&&(o=a,a={}),a=a||{},a.output=o,a.iv=s,i.call(n,a)},n}});var r1=it((jg,s3)=>{var e0=ut();e0.pki=e0.pki||{};var Us=s3.exports=e0.pki.oids=e0.oids=e0.oids||{};function C(e,t){Us[e]=t,Us[t]=e}function ot(e,t){Us[e]=t}C("1.2.840.113549.1.1.1","rsaEncryption");C("1.2.840.113549.1.1.4","md5WithRSAEncryption");C("1.2.840.113549.1.1.5","sha1WithRSAEncryption");C("1.2.840.113549.1.1.7","RSAES-OAEP");C("1.2.840.113549.1.1.8","mgf1");C("1.2.840.113549.1.1.9","pSpecified");C("1.2.840.113549.1.1.10","RSASSA-PSS");C("1.2.840.113549.1.1.11","sha256WithRSAEncryption");C("1.2.840.113549.1.1.12","sha384WithRSAEncryption");C("1.2.840.113549.1.1.13","sha512WithRSAEncryption");C("1.3.101.112","EdDSA25519");C("1.2.840.10040.4.3","dsa-with-sha1");C("1.3.14.3.2.7","desCBC");C("1.3.14.3.2.26","sha1");C("1.3.14.3.2.29","sha1WithRSASignature");C("2.16.840.1.101.3.4.2.1","sha256");C("2.16.840.1.101.3.4.2.2","sha384");C("2.16.840.1.101.3.4.2.3","sha512");C("2.16.840.1.101.3.4.2.4","sha224");C("2.16.840.1.101.3.4.2.5","sha512-224");C("2.16.840.1.101.3.4.2.6","sha512-256");C("1.2.840.113549.2.2","md2");C("1.2.840.113549.2.5","md5");C("1.2.840.113549.1.7.1","data");C("1.2.840.113549.1.7.2","signedData");C("1.2.840.113549.1.7.3","envelopedData");C("1.2.840.113549.1.7.4","signedAndEnvelopedData");C("1.2.840.113549.1.7.5","digestedData");C("1.2.840.113549.1.7.6","encryptedData");C("1.2.840.113549.1.9.1","emailAddress");C("1.2.840.113549.1.9.2","unstructuredName");C("1.2.840.113549.1.9.3","contentType");C("1.2.840.113549.1.9.4","messageDigest");C("1.2.840.113549.1.9.5","signingTime");C("1.2.840.113549.1.9.6","counterSignature");C("1.2.840.113549.1.9.7","challengePassword");C("1.2.840.113549.1.9.8","unstructuredAddress");C("1.2.840.113549.1.9.14","extensionRequest");C("1.2.840.113549.1.9.20","friendlyName");C("1.2.840.113549.1.9.21","localKeyId");C("1.2.840.113549.1.9.22.1","x509Certificate");C("1.2.840.113549.1.12.10.1.1","keyBag");C("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");C("1.2.840.113549.1.12.10.1.3","certBag");C("1.2.840.113549.1.12.10.1.4","crlBag");C("1.2.840.113549.1.12.10.1.5","secretBag");C("1.2.840.113549.1.12.10.1.6","safeContentsBag");C("1.2.840.113549.1.5.13","pkcs5PBES2");C("1.2.840.113549.1.5.12","pkcs5PBKDF2");C("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");C("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");C("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");C("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");C("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");C("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");C("1.2.840.113549.2.7","hmacWithSHA1");C("1.2.840.113549.2.8","hmacWithSHA224");C("1.2.840.113549.2.9","hmacWithSHA256");C("1.2.840.113549.2.10","hmacWithSHA384");C("1.2.840.113549.2.11","hmacWithSHA512");C("1.2.840.113549.3.7","des-EDE3-CBC");C("2.16.840.1.101.3.4.1.2","aes128-CBC");C("2.16.840.1.101.3.4.1.22","aes192-CBC");C("2.16.840.1.101.3.4.1.42","aes256-CBC");C("2.5.4.3","commonName");C("2.5.4.4","surname");C("2.5.4.5","serialNumber");C("2.5.4.6","countryName");C("2.5.4.7","localityName");C("2.5.4.8","stateOrProvinceName");C("2.5.4.9","streetAddress");C("2.5.4.10","organizationName");C("2.5.4.11","organizationalUnitName");C("2.5.4.12","title");C("2.5.4.13","description");C("2.5.4.15","businessCategory");C("2.5.4.17","postalCode");C("2.5.4.42","givenName");C("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");C("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");C("2.16.840.1.113730.1.1","nsCertType");C("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");C("2.5.29.14","subjectKeyIdentifier");C("2.5.29.15","keyUsage");ot("2.5.29.16","privateKeyUsagePeriod");C("2.5.29.17","subjectAltName");C("2.5.29.18","issuerAltName");C("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");C("2.5.29.31","cRLDistributionPoints");C("2.5.29.32","certificatePolicies");ot("2.5.29.33","policyMappings");ot("2.5.29.34","policyConstraints");C("2.5.29.35","authorityKeyIdentifier");ot("2.5.29.36","policyConstraints");C("2.5.29.37","extKeyUsage");ot("2.5.29.46","freshestCRL");ot("2.5.29.54","inhibitAnyPolicy");C("1.3.6.1.4.1.11129.2.4.2","timestampList");C("1.3.6.1.5.5.7.1.1","authorityInfoAccess");C("1.3.6.1.5.5.7.3.1","serverAuth");C("1.3.6.1.5.5.7.3.2","clientAuth");C("1.3.6.1.5.5.7.3.3","codeSigning");C("1.3.6.1.5.5.7.3.4","emailProtection");C("1.3.6.1.5.5.7.3.8","timeStamping")});var n0=it((tm,a3)=>{var gt=ut();Lt();r1();var O=a3.exports=gt.asn1=gt.asn1||{};O.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};O.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};O.create=function(e,t,r,n,i){if(gt.util.isArray(n)){for(var s=[],a=0;a<n.length;++a)n[a]!==void 0&&s.push(n[a]);n=s}var o={tagClass:e,type:t,constructed:r,composed:r||gt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(o.bitStringContents=i.bitStringContents,o.original=O.copy(o)),o};O.copy=function(e,t){var r;if(gt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(O.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:O.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};O.equals=function(e,t,r){if(gt.util.isArray(e)){if(!gt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!O.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&O.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};O.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function r0(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 _c=function(e,t){var r=e.getByte();if(t--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;r0(e,t,s),n=e.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=gt.util.createBuffer(e));var r=e.length(),n=n1(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 n1(e,t,r,n){var i;r0(e,t,2);var s=e.getByte();t--;var a=s&192,o=s&31;i=e.length();var c=_c(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=(s&32)===32;if(p)if(f=[],c===void 0)for(;;){if(r0(e,t,2),e.bytes(2)==="\0\0"){e.getBytes(2),t-=2;break}i=e.length(),f.push(n1(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),f.push(n1(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(f===void 0&&a===O.Class.UNIVERSAL&&o===O.Type.BITSTRING&&(l=e.bytes(c)),f===void 0&&n.decodeBitStrings&&a===O.Class.UNIVERSAL&&o===O.Type.BITSTRING&&c>1){var d=e.read,h=t,y=0;if(o===O.Type.BITSTRING&&(r0(e,t,1),y=e.getByte(),t--),y===0)try{i=e.length();var g={strict:!0,decodeBitStrings:!0},m=n1(e,t,r+1,g),x=i-e.length();t-=x,o==O.Type.BITSTRING&&x++;var v=m.tagClass;x===c&&(v===O.Class.UNIVERSAL||v===O.Class.CONTEXT_SPECIFIC)&&(f=[m])}catch{}f===void 0&&(e.read=d,t=h)}if(f===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(o===O.Type.BMPSTRING)for(f="";c>0;c-=2)r0(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 O.create(a,o,p,f,T)}O.toDer=function(e){var t=gt.util.createBuffer(),r=e.tagClass|e.type,n=gt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=O.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var s=0;s<e.value.length;++s)e.value[s]!==void 0&&n.putBuffer(O.toDer(e.value[s]))}else if(e.type===O.Type.BMPSTRING)for(var s=0;s<e.value.length;++s)n.putInt16(e.value.charCodeAt(s));else e.type===O.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var a=n.length(),o="";do o+=String.fromCharCode(a&255),a=a>>>8;while(a>0);t.putByte(o.length|128);for(var s=o.length-1;s>=0;--s)t.putByte(o.charCodeAt(s))}return t.putBuffer(n),t};O.oidToDer=function(e){var t=e.split("."),r=gt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,s,a,o=2;o<t.length;++o){n=!0,i=[],s=parseInt(t[o],10);do a=s&127,s=s>>>7,n||(a|=128),i.push(a),n=!1;while(s>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};O.derToOid=function(e){var t;typeof e=="string"&&(e=gt.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};O.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),s=parseInt(e.substr(6,2),10),a=parseInt(e.substr(8,2),10),o=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(o=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(s,a,o,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var f=parseInt(e.substr(u+1,2),10),l=parseInt(e.substr(u+4,2),10),p=f*60+l;p*=6e4,c==="+"?t.setTime(+t-p):t.setTime(+t+p)}return t};O.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),s=parseInt(e.substr(8,2),10),a=parseInt(e.substr(10,2),10),o=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(s,a,o,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(s,a,o,c)),t};O.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push(""+e.getUTCFullYear()),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.integerToDer=function(e){var t=gt.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r};O.derToInteger=function(e){typeof e=="string"&&(e=gt.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};O.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&>.util.isArray(t.value))for(var s=0,a=0;i&&a<t.value.length;++a)i=t.value[a].optional||!1,e.value[s]&&(i=O.validate(e.value[s],t.value[a],r,n),i?++s:t.value[a].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(t.capture&&(r[t.capture]=e.value),t.captureAsn1&&(r[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(r[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)){var o;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 o3=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
|
|
6
|
-
`);for(var i="",
|
|
2
|
+
"use strict";var Libp2PKadDht=(()=>{var X5=Object.create;var T0=Object.defineProperty;var J5=Object.getOwnPropertyDescriptor;var j5=Object.getOwnPropertyNames;var t8=Object.getPrototypeOf,e8=Object.prototype.hasOwnProperty;var it=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ot=(e,t)=>{for(var r in t)T0(e,r,{get:t[r],enumerable:!0})},n2=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of j5(t))!e8.call(e,i)&&i!==r&&T0(e,i,{get:()=>t[i],enumerable:!(n=J5(t,i))||n.enumerable});return e};var Bt=(e,t,r)=>(r=e!=null?X5(t8(e)):{},n2(t||!e||!e.__esModule?T0(r,"default",{value:e,enumerable:!0}):r,e)),r8=e=>n2(T0({},"__esModule",{value:!0}),e);var f2=it(Mn=>{(function(){var e,t,r,n,i,o,a,s;s=function(c){var u,f,l,p;return u=(c&255<<24)>>>24,f=(c&255<<16)>>>16,l=(c&65280)>>>8,p=c&255,[u,f,l,p].join(".")},a=function(c){var u,f,l,p,d,h;for(u=[],l=p=0;p<=3&&c.length!==0;l=++p){if(l>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}h=t(c),d=h[0],f=h[1],c=c.substring(f),u.push(d)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),o=r("a"),i=r("A"),t=function(c){var u,f,l,p,d;for(p=0,u=10,f="9",l=0,c.length>1&&c[l]==="0"&&(c[l+1]==="x"||c[l+1]==="X"?(l+=2,u=16):"0"<=c[l+1]&&c[l+1]<="9"&&(l++,u=8,f="7")),d=l;l<c.length;){if("0"<=c[l]&&c[l]<=f)p=p*u+(r(c[l])-n)>>>0;else if(u===16)if("a"<=c[l]&&c[l]<="f")p=p*u+(10+r(c[l])-o)>>>0;else if("A"<=c[l]&&c[l]<="F")p=p*u+(10+r(c[l])-i)>>>0;else break;else break;if(p>4294967295)throw new Error("too large");l++}if(l===d)throw new Error("empty octet");return[p,l]},e=function(){function c(u,f){var l,p,d,h;if(typeof u!="string")throw new Error("Missing `net' parameter");if(f||(h=u.split("/",2),u=h[0],f=h[1]),f||(f=32),typeof f=="string"&&f.indexOf(".")>-1){try{this.maskLong=a(f)}catch(y){throw l=y,new Error("Invalid mask: "+f)}for(p=d=32;d>=0;p=--d)if(this.maskLong===4294967295<<32-p>>>0){this.bitmask=p;break}}else if(f||f===0)this.bitmask=parseInt(f,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(a(u)&this.maskLong)>>>0}catch(y){throw l=y,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+f);this.size=Math.pow(2,32-this.bitmask),this.base=s(this.netLong),this.mask=s(this.maskLong),this.hostmask=s(~this.maskLong),this.first=this.bitmask<=30?s(this.netLong+1):this.base,this.last=this.bitmask<=30?s(this.netLong+this.size-2):s(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?s(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(a(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(s(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var f,l,p;for(p=a(this.first),l=a(this.last),f=0;p<=l;)u(s(p),p,f),f++,p++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Mn.ip2long=a,Mn.long2ip=s,Mn.Netmask=e}).call(Mn)});var m2=it((g2,N0)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),o="%[0-9a-z]{1,}",a="(?:[0-9a-f]+::?)+",s={zoneIndex:new RegExp(o,"i"),native:new RegExp(`^(::)?(${a})?([0-9a-f]+)?(::)?(${o})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${o})?)$`,"i"),transitional:new RegExp(`^((?:${a})|(?:::)(?:${a})?)${t}\\.${t}\\.${t}\\.${t}(${o})?$`,"i")};function c(d,h){if(d.indexOf("::")!==d.lastIndexOf("::"))return null;let y=0,g=-1,m=(d.match(s.zoneIndex)||[])[0],x,v;for(m&&(m=m.substring(1),d=d.replace(/%.+$/,""));(g=d.indexOf(":",g+1))>=0;)y++;if(d.substr(0,2)==="::"&&y--,d.substr(-2,2)==="::"&&y--,y>h)return null;for(v=h-y,x=":";v--;)x+="0:";return d=d.replace("::",x),d[0]===":"&&(d=d.slice(1)),d[d.length-1]===":"&&(d=d.slice(0,-1)),h=function(){let 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,y,g){if(d.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let m=0,x;for(;g>0;){if(x=y-g,x<0&&(x=0),d[m]>>x!==h[m]>>x)return!1;g-=y,m+=1}return!0}function f(d){if(i.test(d))return parseInt(d,16);if(d[0]==="0"&&!isNaN(parseInt(d[1],10))){if(n.test(d))return parseInt(d,8);throw new Error(`ipaddr: cannot parse ${d} as octal`)}return parseInt(d,10)}function l(d,h){for(;d.length<h;)d=`0${d}`;return d}let p={};p.IPv4=function(){function d(h){if(h.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let y,g;for(y=0;y<h.length;y++)if(g=h[y],!(0<=g&&g<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=h}return d.prototype.SpecialRanges={unspecified:[[new d([0,0,0,0]),8]],broadcast:[[new d([255,255,255,255]),32]],multicast:[[new d([224,0,0,0]),4]],linkLocal:[[new d([169,254,0,0]),16]],loopback:[[new d([127,0,0,0]),8]],carrierGradeNat:[[new d([100,64,0,0]),10]],private:[[new d([10,0,0,0]),8],[new d([172,16,0,0]),12],[new d([192,168,0,0]),16]],reserved:[[new d([192,0,0,0]),24],[new d([192,0,2,0]),24],[new d([192,88,99,0]),24],[new d([198,18,0,0]),15],[new d([198,51,100,0]),24],[new d([203,0,113,0]),24],[new d([240,0,0,0]),4]]},d.prototype.kind=function(){return"ipv4"},d.prototype.match=function(h,y){let g;if(y===void 0&&(g=h,h=g[0],y=g[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,y)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,y=!1,g={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},m,x,v;for(m=3;m>=0;m-=1)if(x=this.octets[m],x in g){if(v=g[x],y&&v!==0)return null;v!==8&&(y=!0),h+=v}else return null;return 32-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){return this.octets.slice(0)},d.prototype.toIPv4MappedAddress=function(){return p.IPv6.parse(`::ffff:${this.toString()}`)},d.prototype.toNormalizedString=function(){return this.toString()},d.prototype.toString=function(){return this.octets.join(".")},d}(),p.IPv4.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),y=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<4;)m.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.isIPv4=function(d){return this.parser(d)!==null},p.IPv4.isValid=function(d){try{return new this(this.parser(d)),!0}catch{return!1}},p.IPv4.isValidFourPartDecimal=function(d){return!!(p.IPv4.isValid(d)&&d.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},p.IPv4.networkAddressFromCIDR=function(d){let h,y,g,m,x;try{for(h=this.parseCIDR(d),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],y=0;y<4;)m.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(m)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},p.IPv4.parse=function(d){let h=this.parser(d);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},p.IPv4.parseCIDR=function(d){let h;if(h=d.match(/^(.+)\/(\d+)$/)){let y=parseInt(h[2]);if(y>=0&&y<=32){let g=[this.parse(h[1]),y];return Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},p.IPv4.parser=function(d){let h,y,g;if(h=d.match(r.fourOctet))return function(){let m=h.slice(1,6),x=[];for(let v=0;v<m.length;v++)y=m[v],x.push(f(y));return x}();if(h=d.match(r.longValue)){if(g=f(h[1]),g>4294967295||g<0)throw new Error("ipaddr: address outside defined range");return function(){let m=[],x;for(x=0;x<=24;x+=8)m.push(g>>x&255);return m}().reverse()}else return(h=d.match(r.twoOctet))?function(){let m=h.slice(1,4),x=[];if(g=f(m[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(g>>16&255),x.push(g>>8&255),x.push(g&255),x}():(h=d.match(r.threeOctet))?function(){let m=h.slice(1,5),x=[];if(g=f(m[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return x.push(f(m[0])),x.push(f(m[1])),x.push(g>>8&255),x.push(g&255),x}():null},p.IPv4.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)h[y]=255,y++;return g<4&&(h[g]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.IPv6=function(){function d(h,y){let g,m;if(h.length===16)for(this.parts=[],g=0;g<=14;g+=2)this.parts.push(h[g]<<8|h[g+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(g=0;g<this.parts.length;g++)if(m=this.parts[g],!(0<=m&&m<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");y&&(this.zoneId=y)}return d.prototype.SpecialRanges={unspecified:[new d([0,0,0,0,0,0,0,0]),128],linkLocal:[new d([65152,0,0,0,0,0,0,0]),10],multicast:[new d([65280,0,0,0,0,0,0,0]),8],loopback:[new d([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new d([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new d([0,0,0,0,0,65535,0,0]),96],rfc6145:[new d([0,0,0,0,65535,0,0,0]),96],rfc6052:[new d([100,65435,0,0,0,0,0,0]),96],"6to4":[new d([8194,0,0,0,0,0,0,0]),16],teredo:[new d([8193,0,0,0,0,0,0,0]),32],reserved:[[new d([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new d([8193,2,0,0,0,0,0,0]),48],amt:[new d([8193,3,0,0,0,0,0,0]),32],as112v6:[new d([8193,4,274,0,0,0,0,0]),48],deprecated:[new d([8193,16,0,0,0,0,0,0]),28],orchid2:[new d([8193,32,0,0,0,0,0,0]),28]},d.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},d.prototype.kind=function(){return"ipv6"},d.prototype.match=function(h,y){let g;if(y===void 0&&(g=h,h=g[0],y=g[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,y)},d.prototype.prefixLengthFromSubnetMask=function(){let h=0,y=!1,g={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},m,x;for(let v=7;v>=0;v-=1)if(m=this.parts[v],m in g){if(x=g[m],y&&x!==0)return null;x!==16&&(y=!0),h+=x}else return null;return 128-h},d.prototype.range=function(){return p.subnetMatch(this,this.SpecialRanges)},d.prototype.toByteArray=function(){let h,y=[],g=this.parts;for(let m=0;m<g.length;m++)h=g[m],y.push(h>>8),y.push(h&255);return y},d.prototype.toFixedLengthString=function(){let h=function(){let g=[];for(let m=0;m<this.parts.length;m++)g.push(l(this.parts[m].toString(16),4));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),h+y},d.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let h=this.parts.slice(-2),y=h[0],g=h[1];return new p.IPv4([y>>8,y&255,g>>8,g&255])},d.prototype.toNormalizedString=function(){let h=function(){let g=[];for(let m=0;m<this.parts.length;m++)g.push(this.parts[m].toString(16));return g}.call(this).join(":"),y="";return this.zoneId&&(y=`%${this.zoneId}`),h+y},d.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,y=this.toNormalizedString(),g=0,m=-1,x;for(;x=h.exec(y);)x[0].length>m&&(g=x.index,m=x[0].length);return m<0?y:`${y.substring(0,g)}::${y.substring(g+m)}`},d.prototype.toString=function(){return this.toRFC5952String()},d}(),p.IPv6.broadcastAddressFromCIDR=function(d){try{let h=this.parseCIDR(d),y=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],x=0;for(;x<16;)m.push(parseInt(y[x],10)|parseInt(g[x],10)^255),x++;return new this(m)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},p.IPv6.isIPv6=function(d){return this.parser(d)!==null},p.IPv6.isValid=function(d){if(typeof d=="string"&&d.indexOf(":")===-1)return!1;try{let h=this.parser(d);return new this(h.parts,h.zoneId),!0}catch{return!1}},p.IPv6.networkAddressFromCIDR=function(d){let h,y,g,m,x;try{for(h=this.parseCIDR(d),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),m=[],y=0;y<16;)m.push(parseInt(g[y],10)&parseInt(x[y],10)),y++;return new this(m)}catch(v){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${v})`)}},p.IPv6.parse=function(d){let h=this.parser(d);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},p.IPv6.parseCIDR=function(d){let h,y,g;if((y=d.match(/^(.+)\/(\d+)$/))&&(h=parseInt(y[2]),h>=0&&h<=128))return g=[this.parse(y[1]),h],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},p.IPv6.parser=function(d){let h,y,g,m,x,v;if(g=d.match(s.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(s.native.test(d))return c(d,8);if((g=d.match(s.transitional))&&(v=g[6]||"",h=c(g[1].slice(0,-1)+v,6),h.parts)){for(x=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],y=0;y<x.length;y++)if(m=x[y],!(0<=m&&m<=255))return null;return h.parts.push(x[0]<<8|x[1]),h.parts.push(x[2]<<8|x[3]),{parts:h.parts,zoneId:h.zoneId}}return null},p.IPv6.subnetMaskFromPrefixLength=function(d){if(d=parseInt(d),d<0||d>128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],y=0,g=Math.floor(d/8);for(;y<g;)h[y]=255,y++;return g<16&&(h[g]=Math.pow(2,d%8)-1<<8-d%8),new this(h)},p.fromByteArray=function(d){let h=d.length;if(h===4)return new p.IPv4(d);if(h===16)return new p.IPv6(d);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},p.isValid=function(d){return p.IPv6.isValid(d)||p.IPv4.isValid(d)},p.parse=function(d){if(p.IPv6.isValid(d))return p.IPv6.parse(d);if(p.IPv4.isValid(d))return p.IPv4.parse(d);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},p.parseCIDR=function(d){try{return p.IPv6.parseCIDR(d)}catch{try{return p.IPv4.parseCIDR(d)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},p.process=function(d){let h=this.parse(d);return h.kind()==="ipv6"&&h.isIPv4MappedAddress()?h.toIPv4Address():h},p.subnetMatch=function(d,h,y){let g,m,x,v;y==null&&(y="unicast");for(m in h)if(Object.prototype.hasOwnProperty.call(h,m)){for(x=h[m],x[0]&&!(x[0]instanceof Array)&&(x=[x]),g=0;g<x.length;g++)if(v=x[g],d.kind()===v[0].kind()&&d.match.apply(d,v))return m}return y},typeof N0<"u"&&N0.exports?N0.exports=p:e.ipaddr=p})(g2)});var qa=it((Jg,Va)=>{"use strict";function Ma(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function mc(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 Ma(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Ma(new i,r)}}Va.exports=mc});var ut=it((gm,Ga)=>{Ga.exports={options:{usePureJavaScript:!1}}});var Wa=it((mm,Ya)=>{var Co={};Ya.exports=Co;var Qa={};Co.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=bc(e,t);else{var i=0,o=t.length,a=t.charAt(0),s=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[i];c<s.length;++c)u+=s[c]<<8,s[c]=u%o,u=u/o|0;for(;u>0;)s.push(u%o),u=u/o|0}for(i=0;e[i]===0&&i<e.length-1;++i)n+=a;for(i=s.length-1;i>=0;--i)n+=t[s[i]]}if(r){var f=new RegExp(".{1,"+r+"}","g");n=n.match(f).join(`\r
|
|
3
|
+
`)}return n};Co.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=Qa[t];if(!r){r=Qa[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,o=t.charAt(0),a=[0],n=0;n<e.length;n++){var s=r[e.charCodeAt(n)];if(s===void 0)return;for(var c=0,u=s;c<a.length;++c)u+=a[c]*i,a[c]=u&255,u>>=8;for(;u>0;)a.push(u&255),u>>=8}for(var f=0;e[f]===o&&f<e.length-1;++f)a.push(0);return typeof Buffer<"u"?Buffer.from(a.reverse()):new Uint8Array(a.reverse())};function bc(e,t){var r=0,n=t.length,i=t.charAt(0),o=[0];for(r=0;r<e.length();++r){for(var a=0,s=e.at(r);a<o.length;++a)s+=o[a]<<8,o[a]=s%n,s=s/n|0;for(;s>0;)o.push(s%n),s=s/n|0}var c="";for(r=0;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=o.length-1;r>=0;--r)c+=t[o[r]];return c}});var Lt=it((xm,ja)=>{var Za=ut(),Xa=Wa(),b=ja.exports=Za.util=Za.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){b.nextTick=process.nextTick,typeof setImmediate=="function"?b.setImmediate=setImmediate:b.setImmediate=b.nextTick;return}if(typeof setImmediate=="function"){b.setImmediate=function(){return setImmediate.apply(void 0,arguments)},b.nextTick=function(s){return setImmediate(s)};return}if(b.setImmediate=function(s){setTimeout(s,0)},typeof window<"u"&&typeof window.postMessage=="function"){let s=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(f){f()})}};var a=s,e="forge.setImmediate",t=[];b.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",s,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var o=b.setImmediate;b.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),o(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}b.nextTick=b.setImmediate})();b.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;b.globalScope=function(){return b.isNodejs?globalThis:typeof self>"u"?window:self}();b.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};b.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};b.isArrayBufferView=function(e){return e&&b.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function e0(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}b.ByteBuffer=Ro;function Ro(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 Ro||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}b.ByteStringBuffer=Ro;var wc=4096;b.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>wc&&(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){e0(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){e0(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 Ec(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=Ec;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){e0(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 e0(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){e0(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};b.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};b.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};b.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};b.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};b.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};b.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};b.DataBuffer.prototype.copy=function(){return new b.DataBuffer(this)};b.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};b.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};b.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};b.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var r=this.data.getUint8(t);r<16&&(e+="0"),e+=r.toString(16)}return e};b.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return b.binary.raw.encode(t);if(e==="hex")return b.binary.hex.encode(t);if(e==="base64")return b.binary.base64.encode(t);if(e==="utf8")return b.text.utf8.decode(t);if(e==="utf16")return b.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};b.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=b.encodeUtf8(e)),new b.ByteBuffer(e)};b.fillString=function(e,t){for(var r="";t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};b.xorBytes=function(e,t,r){for(var n="",i="",o="",a=0,s=0;r>0;--r,++a)i=e.charCodeAt(a)^t.charCodeAt(a),s>=10&&(n+=o,o="",s=0),o+=String.fromCharCode(i),++s;return n+=o,n};b.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t};b.bytesToHex=function(e){return b.createBuffer(e).toHex()};b.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var 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],Ja="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";b.encode64=function(e,t){for(var r="",n="",i,o,a,s=0;s<e.length;)i=e.charCodeAt(s++),o=e.charCodeAt(s++),a=e.charCodeAt(s++),r+=vr.charAt(i>>2),r+=vr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=vr.charAt((o&15)<<2|a>>6),r+=isNaN(a)?"=":vr.charAt(a&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
4
|
+
`,r=r.substr(t));return n+=r,n};b.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,o,a=0;a<e.length;)r=br[e.charCodeAt(a++)-43],n=br[e.charCodeAt(a++)-43],i=br[e.charCodeAt(a++)-43],o=br[e.charCodeAt(a++)-43],t+=String.fromCharCode(r<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),o!==64&&(t+=String.fromCharCode((i&3)<<6|o)));return t};b.encodeUtf8=function(e){return unescape(encodeURIComponent(e))};b.decodeUtf8=function(e){return decodeURIComponent(escape(e))};b.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:Xa.encode,decode:Xa.decode}};b.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)};b.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o);return t?i-r:n};b.binary.hex.encode=b.bytesToHex;b.binary.hex.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/2))),r=r||0;var i=0,o=r;for(e.length&1&&(i=1,n[o++]=parseInt(e[0],16));i<e.length;i+=2)n[o++]=parseInt(e.substr(i,2),16);return t?o-r:n};b.binary.base64.encode=function(e,t){for(var r="",n="",i,o,a,s=0;s<e.byteLength;)i=e[s++],o=e[s++],a=e[s++],r+=vr.charAt(i>>2),r+=vr.charAt((i&3)<<4|o>>4),isNaN(o)?r+="==":(r+=vr.charAt((o&15)<<2|a>>6),r+=isNaN(a)?"=":vr.charAt(a&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
|
|
5
|
+
`,r=r.substr(t));return n+=r,n};b.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,o,a,s,c=0,u=r;c<e.length;)i=br[e.charCodeAt(c++)-43],o=br[e.charCodeAt(c++)-43],a=br[e.charCodeAt(c++)-43],s=br[e.charCodeAt(c++)-43],n[u++]=i<<2|o>>4,a!==64&&(n[u++]=(o&15)<<4|a>>2,s!==64&&(n[u++]=(a&3)<<6|s));return t?u-r:n.subarray(0,u)};b.binary.base58.encode=function(e,t){return b.binary.baseN.encode(e,Ja,t)};b.binary.base58.decode=function(e,t){return b.binary.baseN.decode(e,Ja,t)};b.text={utf8:{},utf16:{}};b.text.utf8.encode=function(e,t,r){e=b.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o);return t?i-r:n};b.text.utf8.decode=function(e){return b.decodeUtf8(String.fromCharCode.apply(null,e))};b.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var o=r,a=r,s=0;s<e.length;++s)i[a++]=e.charCodeAt(s),o+=2;return t?o-r:n};b.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};b.deflate=function(e,t,r){if(t=b.decode64(e.deflate(b.encode64(t)).rval),r){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};b.inflate=function(e,t,r){var n=e.inflate(b.encode64(t)).rval;return n===null?null:b.decode64(n)};var Po=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}},Lo=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},Sc=function(e,t,r,n){var i=Lo(e,t);i===null&&(i={}),i[r]=n,Po(e,t,i)},Ic=function(e,t,r){var n=Lo(e,t);return n!==null&&(n=r in n?n[r]:null),n},Ac=function(e,t,r){var n=Lo(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),Po(e,t,n)}},Bc=function(e,t){Po(e,t,null)},j0=function(e,t,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,o=!1,a=null;for(var s in r){i=r[s];try{if(i==="flash"||i==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),o=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),o=!0)}catch(c){a=c}if(o)break}if(!o)throw a;return n};b.setItem=function(e,t,r,n,i){j0(Sc,arguments,i)};b.getItem=function(e,t,r,n){return j0(Ic,arguments,n)};b.removeItem=function(e,t,r,n){j0(Ac,arguments,n)};b.clearItems=function(e,t,r){j0(Bc,arguments,r)};b.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};b.format=function(e){for(var t=/%./g,r,n,i=0,o=[],a=0;r=t.exec(e);){n=e.substring(a,t.lastIndex-2),n.length>0&&o.push(n),a=t.lastIndex;var s=r[0][1];switch(s){case"s":case"o":i<arguments.length?o.push(arguments[i+++1]):o.push("<?>");break;case"%":o.push("%");break;default:o.push("<%"+s+"?>")}}return o.push(e.substring(a)),o.join("")};b.formatNumber=function(e,t,r,n){var i=e,o=isNaN(t=Math.abs(t))?2:t,a=r===void 0?",":r,s=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(o),10)+"",f=u.length>3?u.length%3:0;return c+(f?u.substr(0,f)+s:"")+u.substr(f).replace(/(\d{3})(?=\d)/g,"$1"+s)+(o?a+Math.abs(i-u).toFixed(o).slice(2):"")};b.formatSize=function(e){return e>=1073741824?e=b.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=b.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=b.formatNumber(e/1024,0)+" KiB":e=b.formatNumber(e,0)+" bytes",e};b.bytesFromIP=function(e){return e.indexOf(".")!==-1?b.bytesFromIPv4(e):e.indexOf(":")!==-1?b.bytesFromIPv6(e):null};b.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=b.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};b.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(a){return a.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=b.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var o=b.hexToBytes(e[i]);o.length<2&&n.putByte(0),n.putBytes(o)}return n.getBytes()};b.bytesToIP=function(e){return e.length===4?b.bytesToIPv4(e):e.length===16?b.bytesToIPv6(e):null};b.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")};b.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var o=b.bytesToHex(e[i]+e[i+1]);o[0]==="0"&&o!=="0";)o=o.substr(1);if(o==="0"){var a=r[r.length-1],s=t.length;!a||s!==a.end+1?r.push({start:s,end:s}):(a.end=s,a.end-a.start>r[n].end-r[n].start&&(n=r.length-1))}t.push(o)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};b.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in b&&!e.update)return t(null,b.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return b.cores=navigator.hardwareConcurrency,t(null,b.cores);if(typeof Worker>"u")return b.cores=1,t(null,b.cores);if(typeof Blob>"u")return b.cores=2,t(null,b.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(a){for(var s=Date.now(),c=s+4;Date.now()<c;);self.postMessage({st:s,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(a,s,c){if(s===0){var u=Math.floor(a.reduce(function(f,l){return f+l},0)/a.length);return b.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,b.cores)}i(c,function(f,l){a.push(o(c,l)),n(a,s-1,c)})}function i(a,s){for(var c=[],u=[],f=0;f<a;++f){var l=new Worker(r);l.addEventListener("message",function(p){if(u.push(p.data),u.length===a){for(var d=0;d<a;++d)c[d].terminate();s(null,u)}}),c.push(l)}for(var f=0;f<a;++f)c[f].postMessage(f)}function o(a,s){for(var c=[],u=0;u<a;++u)for(var f=s[u],l=c[u]=[],p=0;p<a;++p)if(u!==p){var d=s[p];(f.st>d.st&&f.st<d.et||d.st>f.st&&d.st<f.et)&&l.push(p)}return c.reduce(function(h,y){return Math.max(h,y.length)},0)}}});var Do=it((vm,t3)=>{var Ht=ut();Lt();t3.exports=Ht.cipher=Ht.cipher||{};Ht.cipher.algorithms=Ht.cipher.algorithms||{};Ht.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ht.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ht.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Ht.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Ht.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Ht.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Ht.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Ht.cipher.algorithms[e]=t};Ht.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Ht.cipher.algorithms?Ht.cipher.algorithms[e]:null};var No=Ht.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};No.prototype.start=function(e){e=e||{};var t={};for(var r in e)t[r]=e[r];t.decrypt=this._decrypt,this._finish=!1,this._input=Ht.util.createBuffer(),this.output=e.output||Ht.util.createBuffer(),this.mode.start(t)};No.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()};No.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((bm,e3)=>{var $t=ut();Lt();$t.cipher=$t.cipher||{};var X=e3.exports=$t.cipher.modes=$t.cipher.modes||{};X.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)};X.ecb.prototype.start=function(e){};X.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])};X.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])};X.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};X.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)};X.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)};X.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=t1(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};X.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};X.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)};X.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};X.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)};X.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};X.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=t1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};X.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};X.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};X.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};X.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=t1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};X.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};X.ofb.prototype.decrypt=X.ofb.prototype.encrypt;X.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0};X.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=t1(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};X.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}e1(this._inBlock)};X.ctr.prototype.decrypt=X.ctr.prototype.encrypt;X.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=$t.util.createBuffer(),this._partialBytes=0,this._R=3774873600};X.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=$t.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=$t.util.createBuffer(e.additionalData):r=$t.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=$t.util.createBuffer(e.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(ko(n*8)))}this._inBlock=this._j0.slice(0),e1(this._inBlock),this._partialBytes=0,r=$t.util.createBuffer(r),this._aDataLength=ko(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()])};X.gcm.prototype.encrypt=function(e,t,r){var n=e.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^=e.getInt32());this._cipherLength+=this.blockSize}else{var o=(this.blockSize-n)%this.blockSize;o>0&&(o=this.blockSize-o),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(e.getInt32()^this._outBlock[i]);if(o<=0||r){if(r){var a=n%this.blockSize;this._cipherLength+=a,this._partialOutput.truncate(this.blockSize-a)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),o>0&&!r)return e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(o-this._partialBytes)),this._partialBytes=o,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),e1(this._inBlock)};X.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),e1(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};X.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=$t.util.createBuffer();var n=this._aDataLength.concat(ko(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};X.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};X.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)};X.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};X.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)};X.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,n=4*r,i=16*r,o=new Array(i),a=0;a<i;++a){var s=[0,0,0,0],c=a/n|0,u=(n-1-a%n)*t;s[c]=1<<t-1<<u,o[a]=this.generateSubHashTable(this.multiply(s,e),t)}return o};X.gcm.prototype.generateSubHashTable=function(e,t){var r=1<<t,n=r>>>1,i=new Array(r);i[n]=e.slice(0);for(var o=n>>>1;o>0;)this.pow(i[2*o],i[o]=[]),o>>=1;for(o=2;o<n;){for(var a=1;a<o;++a){var s=i[o],c=i[a];i[o+a]=[s[0]^c[0],s[1]^c[1],s[2]^c[2],s[3]^c[3]]}o*=2}for(i[0]=[0,0,0,0],o=n+1;o<r;++o){var u=i[o^n];i[o]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function t1(e,t){if(typeof e=="string"&&(e=$t.util.createBuffer(e)),$t.util.isArray(e)&&e.length>4){var r=e;e=$t.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!$t.util.isArray(e)){for(var i=[],o=t/4,n=0;n<o;++n)i.push(e.getInt32());e=i}return e}function e1(e){e[e.length-1]=e[e.length-1]+1&4294967295}function ko(e){return[e/4294967296|0,e&4294967295]}});var n1=it((wm,o3)=>{var pt=ut();Do();Oo();Lt();o3.exports=pt.aes=pt.aes||{};pt.aes.startEncrypting=function(e,t,r,n){var i=r1({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};pt.aes.createEncryptionCipher=function(e,t){return r1({key:e,output:null,decrypt:!1,mode:t})};pt.aes.startDecrypting=function(e,t,r,n){var i=r1({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};pt.aes.createDecryptionCipher=function(e,t){return r1({key:e,output:null,decrypt:!0,mode:t})};pt.aes.Algorithm=function(e,t){Ko||n3();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return Fo(r._w,n,i,!1)},decrypt:function(n,i){return Fo(r._w,n,i,!0)}}}),r._init=!1};pt.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=pt.util.createBuffer(t);else if(pt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=pt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!pt.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(!pt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var o=this.mode.name,a=["CFB","OFB","CTR","GCM"].indexOf(o)!==-1;this._w=i3(t,e.decrypt&&!a),this._init=!0}};pt.aes._expandKey=function(e,t){return Ko||n3(),i3(e,t)};pt.aes._updateBlock=Fo;In("AES-ECB",pt.cipher.modes.ecb);In("AES-CBC",pt.cipher.modes.cbc);In("AES-CFB",pt.cipher.modes.cfb);In("AES-OFB",pt.cipher.modes.ofb);In("AES-CTR",pt.cipher.modes.ctr);In("AES-GCM",pt.cipher.modes.gcm);function In(e,t){var r=function(){return new pt.aes.Algorithm(e,t)};pt.cipher.registerAlgorithm(e,r)}var Ko=!1,Sn=4,ie,Uo,r3,Mr,Se;function n3(){Ko=!0,r3=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;ie=new Array(256),Uo=new Array(256),Mr=new Array(4),Se=new Array(4);for(var t=0;t<4;++t)Mr[t]=new Array(256),Se[t]=new Array(256);for(var r=0,n=0,i,o,a,s,c,u,f,t=0;t<256;++t){s=n^n<<1^n<<2^n<<3^n<<4,s=s>>8^s&255^99,ie[r]=s,Uo[s]=r,c=e[s],i=e[r],o=e[i],a=e[o],u=c<<24^s<<16^s<<8^(s^c),f=(i^o^a)<<24^(r^a)<<16^(r^o^a)<<8^(r^i^a);for(var l=0;l<4;++l)Mr[l][r]=u,Se[l][s]=f,u=u<<24|u>>>8,f=f<<24|f>>>8;r===0?r=n=1:(r=i^e[e[e[i^a]]],n^=e[e[n]])}}function i3(e,t){for(var r=e.slice(0),n,i=1,o=r.length,a=o+6+1,s=Sn*a,c=o;c<s;++c)n=r[c-1],c%o===0?(n=ie[n>>>16&255]<<24^ie[n>>>8&255]<<16^ie[n&255]<<8^ie[n>>>24]^r3[i]<<24,i++):o>6&&c%o===4&&(n=ie[n>>>24]<<24^ie[n>>>16&255]<<16^ie[n>>>8&255]<<8^ie[n&255]),r[c]=r[c-o]^n;if(t){var u,f=Se[0],l=Se[1],p=Se[2],d=Se[3],h=r.slice(0);s=r.length;for(var c=0,y=s-Sn;c<s;c+=Sn,y-=Sn)if(c===0||c===s-Sn)h[c]=r[y],h[c+1]=r[y+3],h[c+2]=r[y+2],h[c+3]=r[y+1];else for(var g=0;g<Sn;++g)u=r[y+g],h[c+(3&-g)]=f[ie[u>>>24]]^l[ie[u>>>16&255]]^p[ie[u>>>8&255]]^d[ie[u&255]];r=h}return r}function Fo(e,t,r,n){var i=e.length/4-1,o,a,s,c,u;n?(o=Se[0],a=Se[1],s=Se[2],c=Se[3],u=Uo):(o=Mr[0],a=Mr[1],s=Mr[2],c=Mr[3],u=ie);var f,l,p,d,h,y,g;f=t[0]^e[0],l=t[n?3:1]^e[1],p=t[2]^e[2],d=t[n?1:3]^e[3];for(var m=3,x=1;x<i;++x)h=o[f>>>24]^a[l>>>16&255]^s[p>>>8&255]^c[d&255]^e[++m],y=o[l>>>24]^a[p>>>16&255]^s[d>>>8&255]^c[f&255]^e[++m],g=o[p>>>24]^a[d>>>16&255]^s[f>>>8&255]^c[l&255]^e[++m],d=o[d>>>24]^a[f>>>16&255]^s[l>>>8&255]^c[p&255]^e[++m],f=h,l=y,p=g;r[0]=u[f>>>24]<<24^u[l>>>16&255]<<16^u[p>>>8&255]<<8^u[d&255]^e[++m],r[n?3:1]=u[l>>>24]<<24^u[p>>>16&255]<<16^u[d>>>8&255]<<8^u[f&255]^e[++m],r[2]=u[p>>>24]<<24^u[d>>>16&255]<<16^u[f>>>8&255]<<8^u[l&255]^e[++m],r[n?1:3]=u[d>>>24]<<24^u[f>>>16&255]<<16^u[l>>>8&255]<<8^u[p&255]^e[++m]}function r1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=pt.cipher.createDecipher(r,e.key):n=pt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,a){var s=null;a instanceof pt.util.ByteBuffer&&(s=a,a={}),a=a||{},a.output=s,a.iv=o,i.call(n,a)},n}});var i1=it((Nm,u3)=>{var r0=ut();r0.pki=r0.pki||{};var Mo=u3.exports=r0.pki.oids=r0.oids=r0.oids||{};function C(e,t){Mo[e]=t,Mo[t]=e}function st(e,t){Mo[e]=t}C("1.2.840.113549.1.1.1","rsaEncryption");C("1.2.840.113549.1.1.4","md5WithRSAEncryption");C("1.2.840.113549.1.1.5","sha1WithRSAEncryption");C("1.2.840.113549.1.1.7","RSAES-OAEP");C("1.2.840.113549.1.1.8","mgf1");C("1.2.840.113549.1.1.9","pSpecified");C("1.2.840.113549.1.1.10","RSASSA-PSS");C("1.2.840.113549.1.1.11","sha256WithRSAEncryption");C("1.2.840.113549.1.1.12","sha384WithRSAEncryption");C("1.2.840.113549.1.1.13","sha512WithRSAEncryption");C("1.3.101.112","EdDSA25519");C("1.2.840.10040.4.3","dsa-with-sha1");C("1.3.14.3.2.7","desCBC");C("1.3.14.3.2.26","sha1");C("1.3.14.3.2.29","sha1WithRSASignature");C("2.16.840.1.101.3.4.2.1","sha256");C("2.16.840.1.101.3.4.2.2","sha384");C("2.16.840.1.101.3.4.2.3","sha512");C("2.16.840.1.101.3.4.2.4","sha224");C("2.16.840.1.101.3.4.2.5","sha512-224");C("2.16.840.1.101.3.4.2.6","sha512-256");C("1.2.840.113549.2.2","md2");C("1.2.840.113549.2.5","md5");C("1.2.840.113549.1.7.1","data");C("1.2.840.113549.1.7.2","signedData");C("1.2.840.113549.1.7.3","envelopedData");C("1.2.840.113549.1.7.4","signedAndEnvelopedData");C("1.2.840.113549.1.7.5","digestedData");C("1.2.840.113549.1.7.6","encryptedData");C("1.2.840.113549.1.9.1","emailAddress");C("1.2.840.113549.1.9.2","unstructuredName");C("1.2.840.113549.1.9.3","contentType");C("1.2.840.113549.1.9.4","messageDigest");C("1.2.840.113549.1.9.5","signingTime");C("1.2.840.113549.1.9.6","counterSignature");C("1.2.840.113549.1.9.7","challengePassword");C("1.2.840.113549.1.9.8","unstructuredAddress");C("1.2.840.113549.1.9.14","extensionRequest");C("1.2.840.113549.1.9.20","friendlyName");C("1.2.840.113549.1.9.21","localKeyId");C("1.2.840.113549.1.9.22.1","x509Certificate");C("1.2.840.113549.1.12.10.1.1","keyBag");C("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");C("1.2.840.113549.1.12.10.1.3","certBag");C("1.2.840.113549.1.12.10.1.4","crlBag");C("1.2.840.113549.1.12.10.1.5","secretBag");C("1.2.840.113549.1.12.10.1.6","safeContentsBag");C("1.2.840.113549.1.5.13","pkcs5PBES2");C("1.2.840.113549.1.5.12","pkcs5PBKDF2");C("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");C("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");C("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");C("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");C("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");C("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");C("1.2.840.113549.2.7","hmacWithSHA1");C("1.2.840.113549.2.8","hmacWithSHA224");C("1.2.840.113549.2.9","hmacWithSHA256");C("1.2.840.113549.2.10","hmacWithSHA384");C("1.2.840.113549.2.11","hmacWithSHA512");C("1.2.840.113549.3.7","des-EDE3-CBC");C("2.16.840.1.101.3.4.1.2","aes128-CBC");C("2.16.840.1.101.3.4.1.22","aes192-CBC");C("2.16.840.1.101.3.4.1.42","aes256-CBC");C("2.5.4.3","commonName");C("2.5.4.4","surname");C("2.5.4.5","serialNumber");C("2.5.4.6","countryName");C("2.5.4.7","localityName");C("2.5.4.8","stateOrProvinceName");C("2.5.4.9","streetAddress");C("2.5.4.10","organizationName");C("2.5.4.11","organizationalUnitName");C("2.5.4.12","title");C("2.5.4.13","description");C("2.5.4.15","businessCategory");C("2.5.4.17","postalCode");C("2.5.4.42","givenName");C("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");C("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");C("2.16.840.1.113730.1.1","nsCertType");C("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");C("2.5.29.14","subjectKeyIdentifier");C("2.5.29.15","keyUsage");st("2.5.29.16","privateKeyUsagePeriod");C("2.5.29.17","subjectAltName");C("2.5.29.18","issuerAltName");C("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");C("2.5.29.31","cRLDistributionPoints");C("2.5.29.32","certificatePolicies");st("2.5.29.33","policyMappings");st("2.5.29.34","policyConstraints");C("2.5.29.35","authorityKeyIdentifier");st("2.5.29.36","policyConstraints");C("2.5.29.37","extKeyUsage");st("2.5.29.46","freshestCRL");st("2.5.29.54","inhibitAnyPolicy");C("1.3.6.1.4.1.11129.2.4.2","timestampList");C("1.3.6.1.5.5.7.1.1","authorityInfoAccess");C("1.3.6.1.5.5.7.3.1","serverAuth");C("1.3.6.1.5.5.7.3.2","clientAuth");C("1.3.6.1.5.5.7.3.3","codeSigning");C("1.3.6.1.5.5.7.3.4","emailProtection");C("1.3.6.1.5.5.7.3.8","timeStamping")});var i0=it((Dm,l3)=>{var gt=ut();Lt();i1();var O=l3.exports=gt.asn1=gt.asn1||{};O.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};O.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};O.create=function(e,t,r,n,i){if(gt.util.isArray(n)){for(var o=[],a=0;a<n.length;++a)n[a]!==void 0&&o.push(n[a]);n=o}var s={tagClass:e,type:t,constructed:r,composed:r||gt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(s.bitStringContents=i.bitStringContents,s.original=O.copy(s)),s};O.copy=function(e,t){var r;if(gt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(O.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:O.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};O.equals=function(e,t,r){if(gt.util.isArray(e)){if(!gt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!O.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&O.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};O.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function n0(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 Lc=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;n0(e,t,o),n=e.getInt(o<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=gt.util.createBuffer(e));var r=e.length(),n=o1(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 o1(e,t,r,n){var i;n0(e,t,2);var o=e.getByte();t--;var a=o&192,s=o&31;i=e.length();var c=Lc(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(n0(e,t,2),e.bytes(2)==="\0\0"){e.getBytes(2),t-=2;break}i=e.length(),f.push(o1(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),f.push(o1(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(f===void 0&&a===O.Class.UNIVERSAL&&s===O.Type.BITSTRING&&(l=e.bytes(c)),f===void 0&&n.decodeBitStrings&&a===O.Class.UNIVERSAL&&s===O.Type.BITSTRING&&c>1){var d=e.read,h=t,y=0;if(s===O.Type.BITSTRING&&(n0(e,t,1),y=e.getByte(),t--),y===0)try{i=e.length();var g={strict:!0,decodeBitStrings:!0},m=o1(e,t,r+1,g),x=i-e.length();t-=x,s==O.Type.BITSTRING&&x++;var v=m.tagClass;x===c&&(v===O.Class.UNIVERSAL||v===O.Class.CONTEXT_SPECIFIC)&&(f=[m])}catch{}f===void 0&&(e.read=d,t=h)}if(f===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(s===O.Type.BMPSTRING)for(f="";c>0;c-=2)n0(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 O.create(a,s,p,f,T)}O.toDer=function(e){var t=gt.util.createBuffer(),r=e.tagClass|e.type,n=gt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=O.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var o=0;o<e.value.length;++o)e.value[o]!==void 0&&n.putBuffer(O.toDer(e.value[o]))}else if(e.type===O.Type.BMPSTRING)for(var o=0;o<e.value.length;++o)n.putInt16(e.value.charCodeAt(o));else e.type===O.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var a=n.length(),s="";do s+=String.fromCharCode(a&255),a=a>>>8;while(a>0);t.putByte(s.length|128);for(var o=s.length-1;o>=0;--o)t.putByte(s.charCodeAt(o))}return t.putBuffer(n),t};O.oidToDer=function(e){var t=e.split("."),r=gt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,o,a,s=2;s<t.length;++s){n=!0,i=[],o=parseInt(t[s],10);do a=o&127,o=o>>>7,n||(a|=128),i.push(a),n=!1;while(o>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};O.derToOid=function(e){var t;typeof e=="string"&&(e=gt.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};O.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),o=parseInt(e.substr(6,2),10),a=parseInt(e.substr(8,2),10),s=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(s=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(o,a,s,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var f=parseInt(e.substr(u+1,2),10),l=parseInt(e.substr(u+4,2),10),p=f*60+l;p*=6e4,c==="+"?t.setTime(+t-p):t.setTime(+t+p)}return t};O.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),a=parseInt(e.substr(10,2),10),s=parseInt(e.substr(12,2),10),c=0,u=0,f=!1;e.charAt(e.length-1)==="Z"&&(f=!0);var l=e.length-5,p=e.charAt(l);if(p==="+"||p==="-"){var d=parseInt(e.substr(l+1,2),10),h=parseInt(e.substr(l+4,2),10);u=d*60+h,u*=6e4,p==="+"&&(u*=-1),f=!0}return e.charAt(14)==="."&&(c=parseFloat(e.substr(14),10)*1e3),f?(t.setUTCFullYear(r,n,i),t.setUTCHours(o,a,s,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(o,a,s,c)),t};O.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push(""+e.getUTCFullYear()),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.integerToDer=function(e){var t=gt.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r};O.derToInteger=function(e){typeof e=="string"&&(e=gt.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};O.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&>.util.isArray(t.value))for(var o=0,a=0;i&&a<t.value.length;++a)i=t.value[a].optional||!1,e.value[o]&&(i=O.validate(e.value[o],t.value[a],r,n),i?++o:t.value[a].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(t.capture&&(r[t.capture]=e.value),t.captureAsn1&&(r[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(r[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)){var s;if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{var c=e.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return i};var f3=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
|
|
6
|
+
`);for(var i="",o=0;o<t*r;++o)i+=" ";switch(n+=i+"Tag: ",e.tagClass){case O.Class.UNIVERSAL:n+="Universal:";break;case O.Class.APPLICATION:n+="Application:";break;case O.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case O.Class.PRIVATE:n+="Private:";break}if(e.tagClass===O.Class.UNIVERSAL)switch(n+=e.type,e.type){case O.Type.NONE:n+=" (None)";break;case O.Type.BOOLEAN:n+=" (Boolean)";break;case O.Type.INTEGER:n+=" (Integer)";break;case O.Type.BITSTRING:n+=" (Bit string)";break;case O.Type.OCTETSTRING:n+=" (Octet string)";break;case O.Type.NULL:n+=" (Null)";break;case O.Type.OID:n+=" (Object Identifier)";break;case O.Type.ODESC:n+=" (Object Descriptor)";break;case O.Type.EXTERNAL:n+=" (External or Instance of)";break;case O.Type.REAL:n+=" (Real)";break;case O.Type.ENUMERATED:n+=" (Enumerated)";break;case O.Type.EMBEDDED:n+=" (Embedded PDV)";break;case O.Type.UTF8:n+=" (UTF8)";break;case O.Type.ROID:n+=" (Relative Object Identifier)";break;case O.Type.SEQUENCE:n+=" (Sequence)";break;case O.Type.SET:n+=" (Set)";break;case O.Type.PRINTABLESTRING:n+=" (Printable String)";break;case O.Type.IA5String:n+=" (IA5String (ASCII))";break;case O.Type.UTCTIME:n+=" (UTC time)";break;case O.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case O.Type.BMPSTRING:n+=" (BMP String)";break}else n+=e.type;if(n+=`
|
|
7
7
|
`,n+=i+"Constructed: "+e.constructed+`
|
|
8
|
-
`,e.composed){for(var a=0,o="",s=0;s<e.value.length;++s)e.value[s]!==void 0&&(a+=1,o+=O.prettyPrint(e.value[s],t+1,r),s+1<e.value.length&&(o+=","));n+=i+"Sub values: "+a+o}else{if(n+=i+"Value: ",e.type===O.Type.OID){var c=O.derToOid(e.value);n+=c,gt.pki&>.pki.oids&&c in gt.pki.oids&&(n+=" ("+gt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+gt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+gt.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===O.Type.OCTETSTRING)o3.test(e.value)||(n+="("+e.value+") "),n+="0x"+gt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=gt.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")n+="0x"+gt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:o3.test(e.value)?n+="0x"+gt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var f3=it((em,u3)=>{var bt=ut();Ps();Ns();Lt();u3.exports=bt.des=bt.des||{};bt.des.startEncrypting=function(e,t,r,n){var i=i1({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};bt.des.createEncryptionCipher=function(e,t){return i1({key:e,output:null,decrypt:!1,mode:t})};bt.des.startDecrypting=function(e,t,r,n){var i=i1({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};bt.des.createDecryptionCipher=function(e,t){return i1({key:e,output:null,decrypt:!0,mode:t})};bt.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return c3(r._keys,n,i,!1)},decrypt:function(n,i){return c3(r._keys,n,i,!0)}}}),r._init=!1};bt.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=bt.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=Uc(t),this._init=!0}};Oe("DES-ECB",bt.cipher.modes.ecb);Oe("DES-CBC",bt.cipher.modes.cbc);Oe("DES-CFB",bt.cipher.modes.cfb);Oe("DES-OFB",bt.cipher.modes.ofb);Oe("DES-CTR",bt.cipher.modes.ctr);Oe("3DES-ECB",bt.cipher.modes.ecb);Oe("3DES-CBC",bt.cipher.modes.cbc);Oe("3DES-CFB",bt.cipher.modes.cfb);Oe("3DES-OFB",bt.cipher.modes.ofb);Oe("3DES-CTR",bt.cipher.modes.ctr);function Oe(e,t){var r=function(){return new bt.des.Algorithm(e,t)};bt.cipher.registerAlgorithm(e,r)}var Cc=[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],Rc=[-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],Pc=[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],Lc=[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],Nc=[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],Dc=[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],kc=[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],Oc=[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 Uc(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],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],a=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],o=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],f=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],l=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],p=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],d=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],h=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],y=e.length()>8?3:1,g=[],m=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,v,T=0;T<y;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]|s[E>>>12&15]|a[E>>>8&15]|o[E>>>4&15],G=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=(G>>>16^N)&65535,g[x++]=N^v,g[x++]=G^v<<16}}return g}function c3(e,t,r,n){var i=e.length===32?3:9,s;i===3?s=n?[30,-2,-2]:[0,32,2]:s=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var a,o=t[0],c=t[1];a=(o>>>4^c)&252645135,c^=a,o^=a<<4,a=(o>>>16^c)&65535,c^=a,o^=a<<16,a=(c>>>2^o)&858993459,o^=a,c^=a<<2,a=(c>>>8^o)&16711935,o^=a,c^=a<<8,a=(o>>>1^c)&1431655765,c^=a,o^=a<<1,o=o<<1|o>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var f=s[u+1],l=s[u+2],p=s[u];p!=f;p+=l){var d=c^e[p],h=(c>>>4|c<<28)^e[p+1];a=o,o=c,c=a^(Rc[d>>>24&63]|Lc[d>>>16&63]|Dc[d>>>8&63]|Oc[d&63]|Cc[h>>>24&63]|Pc[h>>>16&63]|Nc[h>>>8&63]|kc[h&63])}a=o,o=c,c=a}o=o>>>1|o<<31,c=c>>>1|c<<31,a=(o>>>1^c)&1431655765,c^=a,o^=a<<1,a=(c>>>8^o)&16711935,o^=a,c^=a<<8,a=(c>>>2^o)&858993459,o^=a,c^=a<<2,a=(o>>>16^c)&65535,c^=a,o^=a<<16,a=(o>>>4^c)&252645135,c^=a,o^=a<<4,r[0]=o,r[1]=c}function i1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=bt.cipher.createDecipher(r,e.key):n=bt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,a){var o=null;a instanceof bt.util.ByteBuffer&&(o=a,a={}),a=a||{},a.output=o,a.iv=s,i.call(n,a)},n}});var Mr=it((rm,l3)=>{var s1=ut();l3.exports=s1.md=s1.md||{};s1.md.algorithms=s1.md.algorithms||{}});var d3=it((nm,h3)=>{var Ze=ut();Mr();Lt();var Fc=h3.exports=Ze.hmac=Ze.hmac||{};Fc.create=function(){var e=null,t=null,r=null,n=null,i={};return i.start=function(s,a){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in Ze.md.algorithms)t=Ze.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else t=s;if(a===null)a=e;else{if(typeof a=="string")a=Ze.util.createBuffer(a);else if(Ze.util.isArray(a)){var o=a;a=Ze.util.createBuffer();for(var c=0;c<o.length;++c)a.putByte(o[c])}var u=a.length();u>t.blockLength&&(t.start(),t.update(a.bytes()),a=t.digest()),r=Ze.util.createBuffer(),n=Ze.util.createBuffer(),u=a.length();for(var c=0;c<u;++c){var o=a.at(c);r.putByte(54^o),n.putByte(92^o)}if(u<t.blockLength)for(var o=t.blockLength-u,c=0;c<o;++c)r.putByte(54),n.putByte(92);e=a,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(s){t.update(s)},i.getMac=function(){var s=t.digest().bytes();return t.start(),t.update(n),t.update(s),t.digest()},i.digest=i.getMac,i}});var o1=it(()=>{});var Fs=it((om,p3)=>{var se=ut();d3();Mr();Lt();var Kc=se.pkcs5=se.pkcs5||{},Xe;se.util.isNodejs&&!se.options.usePureJavaScript&&(Xe=o1());p3.exports=se.pbkdf2=Kc.pbkdf2=function(e,t,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),se.util.isNodejs&&!se.options.usePureJavaScript&&Xe.pbkdf2&&(i===null||typeof i!="object")&&(Xe.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),s?Xe.pbkdf2Sync.length===4?Xe.pbkdf2(e,t,r,n,function(v,T){if(v)return s(v);s(null,T.toString("binary"))}):Xe.pbkdf2(e,t,r,n,i,function(v,T){if(v)return s(v);s(null,T.toString("binary"))}):Xe.pbkdf2Sync.length===4?Xe.pbkdf2Sync(e,t,r,n).toString("binary"):Xe.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in se.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=se.md[i].create()}var a=i.digestLength;if(n>4294967295*a){var o=new Error("Derived key is too long.");if(s)return s(o);throw o}var c=Math.ceil(n/a),u=n-(c-1)*a,f=se.hmac.create();f.start(i,e);var l="",p,d,h;if(!s){for(var y=1;y<=c;++y){f.start(null,null),f.update(t),f.update(se.util.int32ToBytes(y)),p=h=f.digest().getBytes();for(var g=2;g<=r;++g)f.start(null,null),f.update(h),d=f.digest().getBytes(),p=se.util.xorBytes(p,d,a),h=d;l+=y<c?p:p.substr(0,u)}return l}var y=1,g;function m(){if(y>c)return s(null,l);f.start(null,null),f.update(t),f.update(se.util.int32ToBytes(y)),p=h=f.digest().getBytes(),g=2,x()}function x(){if(g<=r)return f.start(null,null),f.update(h),d=f.digest().getBytes(),p=se.util.xorBytes(p,d,a),h=d,++g,se.util.setImmediate(x);l+=y<c?p:p.substr(0,u),++y,m()}m()}});var m3=it((am,g3)=>{var c1=ut();Lt();var y3=g3.exports=c1.pem=c1.pem||{};y3.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
|
|
9
|
-
`,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r+=
|
|
10
|
-
`),r+=
|
|
8
|
+
`,e.composed){for(var a=0,s="",o=0;o<e.value.length;++o)e.value[o]!==void 0&&(a+=1,s+=O.prettyPrint(e.value[o],t+1,r),o+1<e.value.length&&(s+=","));n+=i+"Sub values: "+a+s}else{if(n+=i+"Value: ",e.type===O.Type.OID){var c=O.derToOid(e.value);n+=c,gt.pki&>.pki.oids&&c in gt.pki.oids&&(n+=" ("+gt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+gt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+gt.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===O.Type.OCTETSTRING)f3.test(e.value)||(n+="("+e.value+") "),n+="0x"+gt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=gt.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")n+="0x"+gt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:f3.test(e.value)?n+="0x"+gt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var p3=it((km,d3)=>{var bt=ut();Do();Oo();Lt();d3.exports=bt.des=bt.des||{};bt.des.startEncrypting=function(e,t,r,n){var i=s1({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};bt.des.createEncryptionCipher=function(e,t){return s1({key:e,output:null,decrypt:!1,mode:t})};bt.des.startDecrypting=function(e,t,r,n){var i=s1({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};bt.des.createDecryptionCipher=function(e,t){return s1({key:e,output:null,decrypt:!0,mode:t})};bt.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return h3(r._keys,n,i,!1)},decrypt:function(n,i){return h3(r._keys,n,i,!0)}}}),r._init=!1};bt.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=bt.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=Vc(t),this._init=!0}};Fe("DES-ECB",bt.cipher.modes.ecb);Fe("DES-CBC",bt.cipher.modes.cbc);Fe("DES-CFB",bt.cipher.modes.cfb);Fe("DES-OFB",bt.cipher.modes.ofb);Fe("DES-CTR",bt.cipher.modes.ctr);Fe("3DES-ECB",bt.cipher.modes.ecb);Fe("3DES-CBC",bt.cipher.modes.cbc);Fe("3DES-CFB",bt.cipher.modes.cfb);Fe("3DES-OFB",bt.cipher.modes.ofb);Fe("3DES-CTR",bt.cipher.modes.ctr);function Fe(e,t){var r=function(){return new bt.des.Algorithm(e,t)};bt.cipher.registerAlgorithm(e,r)}var Nc=[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],Dc=[-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],kc=[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],Oc=[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],Uc=[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],Fc=[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],Kc=[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],Mc=[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 Vc(e){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],o=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],a=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],s=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],f=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],l=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],p=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],d=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],h=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],y=e.length()>8?3:1,g=[],m=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,v,T=0;T<y;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]|a[E>>>8&15]|s[E>>>4&15],G=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=(G>>>16^N)&65535,g[x++]=N^v,g[x++]=G^v<<16}}return g}function h3(e,t,r,n){var i=e.length===32?3:9,o;i===3?o=n?[30,-2,-2]:[0,32,2]:o=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var a,s=t[0],c=t[1];a=(s>>>4^c)&252645135,c^=a,s^=a<<4,a=(s>>>16^c)&65535,c^=a,s^=a<<16,a=(c>>>2^s)&858993459,s^=a,c^=a<<2,a=(c>>>8^s)&16711935,s^=a,c^=a<<8,a=(s>>>1^c)&1431655765,c^=a,s^=a<<1,s=s<<1|s>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var f=o[u+1],l=o[u+2],p=o[u];p!=f;p+=l){var d=c^e[p],h=(c>>>4|c<<28)^e[p+1];a=s,s=c,c=a^(Dc[d>>>24&63]|Oc[d>>>16&63]|Fc[d>>>8&63]|Mc[d&63]|Nc[h>>>24&63]|kc[h>>>16&63]|Uc[h>>>8&63]|Kc[h&63])}a=s,s=c,c=a}s=s>>>1|s<<31,c=c>>>1|c<<31,a=(s>>>1^c)&1431655765,c^=a,s^=a<<1,a=(c>>>8^s)&16711935,s^=a,c^=a<<8,a=(c>>>2^s)&858993459,s^=a,c^=a<<2,a=(s>>>16^c)&65535,c^=a,s^=a<<16,a=(s>>>4^c)&252645135,c^=a,s^=a<<4,r[0]=s,r[1]=c}function s1(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=bt.cipher.createDecipher(r,e.key):n=bt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(o,a){var s=null;a instanceof bt.util.ByteBuffer&&(s=a,a={}),a=a||{},a.output=s,a.iv=o,i.call(n,a)},n}});var Vr=it((Om,y3)=>{var a1=ut();y3.exports=a1.md=a1.md||{};a1.md.algorithms=a1.md.algorithms||{}});var m3=it((Um,g3)=>{var Je=ut();Vr();Lt();var qc=g3.exports=Je.hmac=Je.hmac||{};qc.create=function(){var e=null,t=null,r=null,n=null,i={};return i.start=function(o,a){if(o!==null)if(typeof o=="string")if(o=o.toLowerCase(),o in Je.md.algorithms)t=Je.md.algorithms[o].create();else throw new Error('Unknown hash algorithm "'+o+'"');else t=o;if(a===null)a=e;else{if(typeof a=="string")a=Je.util.createBuffer(a);else if(Je.util.isArray(a)){var s=a;a=Je.util.createBuffer();for(var c=0;c<s.length;++c)a.putByte(s[c])}var u=a.length();u>t.blockLength&&(t.start(),t.update(a.bytes()),a=t.digest()),r=Je.util.createBuffer(),n=Je.util.createBuffer(),u=a.length();for(var c=0;c<u;++c){var s=a.at(c);r.putByte(54^s),n.putByte(92^s)}if(u<t.blockLength)for(var s=t.blockLength-u,c=0;c<s;++c)r.putByte(54),n.putByte(92);e=a,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(o){t.update(o)},i.getMac=function(){var o=t.digest().bytes();return t.start(),t.update(n),t.update(o),t.digest()},i.digest=i.getMac,i}});var c1=it(()=>{});var Vo=it((Mm,x3)=>{var oe=ut();m3();Vr();Lt();var zc=oe.pkcs5=oe.pkcs5||{},je;oe.util.isNodejs&&!oe.options.usePureJavaScript&&(je=c1());x3.exports=oe.pbkdf2=zc.pbkdf2=function(e,t,r,n,i,o){if(typeof i=="function"&&(o=i,i=null),oe.util.isNodejs&&!oe.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 oe.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=oe.md[i].create()}var a=i.digestLength;if(n>4294967295*a){var s=new Error("Derived key is too long.");if(o)return o(s);throw s}var c=Math.ceil(n/a),u=n-(c-1)*a,f=oe.hmac.create();f.start(i,e);var l="",p,d,h;if(!o){for(var y=1;y<=c;++y){f.start(null,null),f.update(t),f.update(oe.util.int32ToBytes(y)),p=h=f.digest().getBytes();for(var g=2;g<=r;++g)f.start(null,null),f.update(h),d=f.digest().getBytes(),p=oe.util.xorBytes(p,d,a),h=d;l+=y<c?p:p.substr(0,u)}return l}var y=1,g;function m(){if(y>c)return o(null,l);f.start(null,null),f.update(t),f.update(oe.util.int32ToBytes(y)),p=h=f.digest().getBytes(),g=2,x()}function x(){if(g<=r)return f.start(null,null),f.update(h),d=f.digest().getBytes(),p=oe.util.xorBytes(p,d,a),h=d,++g,oe.util.setImmediate(x);l+=y<c?p:p.substr(0,u),++y,m()}m()}});var w3=it((Vm,b3)=>{var f1=ut();Lt();var v3=b3.exports=f1.pem=f1.pem||{};v3.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+=u1(n)),e.contentDomain&&(n={name:"Content-Domain",values:[e.contentDomain]},r+=u1(n)),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),r+=u1(n)),e.headers)for(var i=0;i<e.headers.length;++i)r+=u1(e.headers[i]);return e.procType&&(r+=`\r
|
|
10
|
+
`),r+=f1.util.encode64(e.body,t.maxline||64)+`\r
|
|
11
11
|
`,r+="-----END "+e.type+`-----\r
|
|
12
|
-
`,r};
|
|
13
|
-
`;for(var
|
|
12
|
+
`,r};v3.decode=function(e){for(var t=[],r=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,o;o=r.exec(e),!!o;){var a=o[1];a==="NEW CERTIFICATE REQUEST"&&(a="CERTIFICATE REQUEST");var s={type:a,procType:null,contentDomain:null,dekInfo:null,headers:[],body:f1.util.decode64(o[3])};if(t.push(s),!!o[2]){for(var c=o[2].split(i),u=0;o&&u<c.length;){for(var f=c[u].replace(/\s+$/,""),l=u+1;l<c.length;++l){var p=c[l];if(!/\s/.test(p[0]))break;f+=p,u=l}if(o=f.match(n),o){for(var d={name:o[1],values:[]},h=o[2].split(","),y=0;y<h.length;++y)d.values.push(Hc(h[y]));if(s.procType)if(!s.contentDomain&&d.name==="Content-Domain")s.contentDomain=h[0]||"";else if(!s.dekInfo&&d.name==="DEK-Info"){if(d.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');s.dekInfo={algorithm:h[0],parameters:h[1]||null}}else s.headers.push(d);else{if(d.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(d.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');s.procType={version:h[0],type:h[1]}}}++u}if(s.procType==="ENCRYPTED"&&!s.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function u1(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
|
+
`;for(var o=0,a=-1,i=0;i<t.length;++i,++o)if(o>65&&a!==-1){var s=t[a];s===","?(++a,t=t.substr(0,a)+`\r
|
|
14
14
|
`+t.substr(a)):t=t.substr(0,a)+`\r
|
|
15
|
-
`+o+t.substr(a+1),s=i-a-1,a=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(a=i);return t}function Mc(e){return e.replace(/^\s+/,"")}});var S3=it((cm,E3)=>{var Ue=ut();Mr();Lt();var v3=E3.exports=Ue.sha256=Ue.sha256||{};Ue.md.sha256=Ue.md.algorithms.sha256=v3;v3.create=function(){b3||Vc();var e=null,t=Ue.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return t=Ue.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,s){s==="utf8"&&(i=Ue.util.encodeUtf8(i));var a=i.length;n.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var o=n.fullMessageLength.length-1;o>=0;--o)n.fullMessageLength[o]+=a[1],a[1]=a[0]+(n.fullMessageLength[o]/4294967296>>>0),n.fullMessageLength[o]=n.fullMessageLength[o]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(i),x3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Ue.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,a=s&n.blockLength-1;i.putBytes(Ks.substr(0,n.blockLength-a));for(var o,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)o=n.fullMessageLength[f+1]*8,c=o/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=o>>>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};x3(l,r,i);var p=Ue.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 Ks=null,b3=!1,w3=null;function Vc(){Ks="\x80",Ks+=Ue.util.fillString("\0",64),w3=[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],b3=!0}function x3(e,t,r){for(var n,i,s,a,o,c,u,f,l,p,d,h,y,g,m,x=r.length();x>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(f=e.h0,l=e.h1,p=e.h2,d=e.h3,h=e.h4,y=e.h5,g=e.h6,m=e.h7,u=0;u<64;++u)a=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),o=g^h&(y^g),s=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),c=f&l|p&(f^l),n=m+a+o+w3[u]+t[u],i=s+c,m=g,g=y,y=h,h=d+n>>>0,d=p,p=l,l=f,f=n+i>>>0;e.h0=e.h0+f|0,e.h1=e.h1+l|0,e.h2=e.h2+p|0,e.h3=e.h3+d|0,e.h4=e.h4+h|0,e.h5=e.h5+y|0,e.h6=e.h6+g|0,e.h7=e.h7+m|0,x-=64}}});var A3=it((um,I3)=>{var Fe=ut();Lt();var u1=null;Fe.util.isNodejs&&!Fe.options.usePureJavaScript&&!process.versions["node-webkit"]&&(u1=o1());var qc=I3.exports=Fe.prng=Fe.prng||{};qc.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,f){if(!f)return t.generateSync(u);var l=t.plugin.cipher,p=t.plugin.increment,d=t.plugin.formatKey,h=t.plugin.formatSeed,y=Fe.util.createBuffer();t.key=null,g();function g(m){if(m)return f(m);if(y.length()>=u)return f(null,y.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return Fe.util.nextTick(function(){s(g)});var x=l(t.key,t.seed);t.generated+=x.length,y.putBytes(x),t.key=d(l(t.key,p(t.seed))),t.seed=h(l(t.key,t.seed)),Fe.util.setImmediate(g)}},t.generateSync=function(u){var f=t.plugin.cipher,l=t.plugin.increment,p=t.plugin.formatKey,d=t.plugin.formatSeed;t.key=null;for(var h=Fe.util.createBuffer();h.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&a();var y=f(t.key,t.seed);t.generated+=y.length,h.putBytes(y),t.key=p(f(t.key,l(t.seed))),t.seed=d(f(t.key,t.seed))}return h.getBytes(u)};function s(u){if(t.pools[0].messageLength>=32)return o(),u();var f=32-t.pools[0].messageLength<<5;t.seedFile(f,function(l,p){if(l)return u(l);t.collect(p),o(),u()})}function a(){if(t.pools[0].messageLength>=32)return o();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),o()}function o(){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),y=new Uint32Array(Math.floor(h));try{f(y);for(var g=0;g<y.length;++g)d.putInt32(y[g])}catch(E){if(!(typeof QuotaExceededError<"u"&&E instanceof QuotaExceededError))throw E}}if(d.length()<u)for(var m,x,v,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 g=0;g<3;++g)v=T>>>(g<<3),v^=Math.floor(Math.random()*256),d.putByte(v&255)}return d.getBytes(u)}return u1?(t.seedFile=function(u,f){u1.randomBytes(u,function(l,p){if(l)return f(l);f(null,p.toString())})},t.seedFileSync=function(u){return u1.randomBytes(u).toString()}):(t.seedFile=function(u,f){try{f(null,c(u))}catch(l){f(l)}},t.seedFileSync=c),t.collect=function(u){for(var f=u.length,l=0;l<f;++l)t.pools[t.pool].update(u.substr(l,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,f){for(var l="",p=0;p<f;p+=8)l+=String.fromCharCode(u>>p&255);t.collect(l)},t.registerWorker=function(u){if(u===self)t.seedFile=function(l,p){function d(h){var y=h.data;y.forge&&y.forge.prng&&(self.removeEventListener("message",d),p(y.forge.prng.err,y.forge.prng.bytes))}self.addEventListener("message",d),self.postMessage({forge:{prng:{needed:l}}})};else{var f=function(l){var p=l.data;p.forge&&p.forge.prng&&t.seedFile(p.forge.prng.needed,function(d,h){u.postMessage({forge:{prng:{err:d,bytes:h}}})})};u.addEventListener("message",f)}},t}});var i0=it((fm,Ms)=>{var Gt=ut();e1();S3();A3();Lt();(function(){if(Gt.random&&Gt.random.getBytes){Ms.exports=Gt.random;return}(function(e){var t={},r=new Array(4),n=Gt.util.createBuffer();t.formatKey=function(l){var p=Gt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),Gt.aes._expandKey(l,!1)},t.formatSeed=function(l){var p=Gt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),l},t.cipher=function(l,p){return Gt.aes._updateBlock(l,p,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(l){return++l[3],l},t.md=Gt.md.sha256;function i(){var l=Gt.prng.create(t);return l.getBytes=function(p,d){return l.generate(p,d)},l.getBytesSync=function(p){return l.generate(p)},l}var s=i(),a=null,o=Gt.util.globalScope,c=o.crypto||o.msCrypto;if(c&&c.getRandomValues&&(a=function(l){return c.getRandomValues(l)}),Gt.options.usePureJavaScript||!Gt.util.isNodejs&&!a){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var f in navigator)try{typeof navigator[f]=="string"&&(u+=navigator[f])}catch{}s.collect(u),u=null}e&&(e().mousemove(function(l){s.collectInt(l.clientX,16),s.collectInt(l.clientY,16)}),e().keypress(function(l){s.collectInt(l.charCode,8)}))}if(!Gt.random)Gt.random=s;else for(var f in s)Gt.random[f]=s[f];Gt.random.createInstance=i,Ms.exports=Gt.random})(typeof jQuery<"u"?jQuery:null)})()});var C3=it((lm,_3)=>{var ce=ut();Lt();var Vs=[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],B3=[1,2,3,5],zc=function(e,t){return e<<t&65535|(e&65535)>>16-t},Hc=function(e,t){return(e&65535)>>t|e<<16-t&65535};_3.exports=ce.rc2=ce.rc2||{};ce.rc2.expandKey=function(e,t){typeof e=="string"&&(e=ce.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,s=Math.ceil(i/8),a=255>>(i&7),o;for(o=n;o<128;o++)r.putByte(Vs[r.at(o-1)+r.at(o-n)&255]);for(r.setAt(128-s,Vs[r.at(128-s)&a]),o=127-s;o>=0;o--)r.setAt(o,Vs[r.at(o+1)^r.at(o+s)]);return r};var T3=function(e,t,r){var n=!1,i=null,s=null,a=null,o,c,u,f,l=[];for(e=ce.rc2.expandKey(e,t),u=0;u<64;u++)l.push(e.getInt16Le());r?(o=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]=zc(h[u],B3[u]),f++},c=function(h){for(u=0;u<4;u++)h[u]+=l[h[(u+3)%4]&63]}):(o=function(h){for(u=3;u>=0;u--)h[u]=Hc(h[u],B3[u]),h[u]-=l[f]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),f--},c=function(h){for(u=3;u>=0;u--)h[u]-=l[h[(u+3)%4]&63]});var p=function(h){var y=[];for(u=0;u<4;u++){var g=i.getInt16Le();a!==null&&(r?g^=a.getInt16Le():a.putInt16Le(g)),y.push(g&65535)}f=r?0:63;for(var m=0;m<h.length;m++)for(var x=0;x<h[m][0];x++)h[m][1](y);for(u=0;u<4;u++)a!==null&&(r?a.putInt16Le(y[u]):y[u]^=a.getInt16Le()),s.putInt16Le(y[u])},d=null;return d={start:function(h,y){h&&typeof h=="string"&&(h=ce.util.createBuffer(h)),n=!1,i=ce.util.createBuffer(),s=y||new ce.util.createBuffer,a=h,d.output=s},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)p([[5,o],[1,c],[6,o],[1,c],[5,o]])},finish:function(h){var y=!0;if(r)if(h)y=h(8,i,!r);else{var g=i.length()===8?8:8-i.length();i.fillWithByte(g,g)}if(y&&(n=!0,d.update()),!r&&(y=i.length()===0,y))if(h)y=h(8,s,!r);else{var m=s.length(),x=s.at(m-1);x>m?y=!1:s.truncate(x)}return y}},d};ce.rc2.startEncrypting=function(e,t,r){var n=ce.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};ce.rc2.createEncryptionCipher=function(e,t){return T3(e,t,!0)};ce.rc2.startDecrypting=function(e,t,r){var n=ce.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};ce.rc2.createDecryptionCipher=function(e,t){return T3(e,t,!1)}});var h1=it((hm,U3)=>{var qs=ut();U3.exports=qs.jsbn=qs.jsbn||{};var Je,$c=0xdeadbeefcafe,R3=($c&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))}qs.jsbn.BigInteger=B;function rt(){return new B(null)}function Gc(e,t,r,n,i,s){for(;--s>=0;){var a=t*this.data[e++]+r.data[n]+i;i=Math.floor(a/67108864),r.data[n++]=a&67108863}return i}function Qc(e,t,r,n,i,s){for(var a=t&32767,o=t>>15;--s>=0;){var c=this.data[e]&32767,u=this.data[e++]>>15,f=o*c+u*a;c=a*c+((f&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(f>>>15)+o*u+(i>>>30),r.data[n++]=c&1073741823}return i}function P3(e,t,r,n,i,s){for(var a=t&16383,o=t>>14;--s>=0;){var c=this.data[e]&16383,u=this.data[e++]>>14,f=o*c+u*a;c=a*c+((f&16383)<<14)+r.data[n]+i,i=(c>>28)+(f>>14)+o*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(B.prototype.am=P3,Je=28):R3&&navigator.appName=="Microsoft Internet Explorer"?(B.prototype.am=Qc,Je=30):R3&&navigator.appName!="Netscape"?(B.prototype.am=Gc,Je=26):(B.prototype.am=P3,Je=28);B.prototype.DB=Je;B.prototype.DM=(1<<Je)-1;B.prototype.DV=1<<Je;var zs=52;B.prototype.FV=Math.pow(2,zs);B.prototype.F1=zs-Je;B.prototype.F2=2*Je-zs;var Yc="0123456789abcdefghijklmnopqrstuvwxyz",f1=new Array,In,ye;In=48;for(ye=0;ye<=9;++ye)f1[In++]=ye;In=97;for(ye=10;ye<36;++ye)f1[In++]=ye;In=65;for(ye=10;ye<36;++ye)f1[In++]=ye;function L3(e){return Yc.charAt(e)}function N3(e,t){var r=f1[e.charCodeAt(t)];return r??-1}function Wc(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 Zc(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 br(e){var t=rt();return t.fromInt(e),t}function Xc(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,s=0;--n>=0;){var a=r==8?e[n]&255:N3(e,n);if(a<0){e.charAt(n)=="-"&&(i=!0);continue}i=!1,s==0?this.data[this.t++]=a:s+r>this.DB?(this.data[this.t-1]|=(a&(1<<this.DB-s)-1)<<s,this.data[this.t++]=a>>this.DB-s):this.data[this.t-1]|=a<<s,s+=r,s>=this.DB&&(s-=this.DB)}r==8&&e[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&B.ZERO.subTo(this,this)}function Jc(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function jc(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,s="",a=this.t,o=this.DB-a*this.DB%t;if(a-- >0)for(o<this.DB&&(n=this.data[a]>>o)>0&&(i=!0,s=L3(n));a>=0;)o<t?(n=(this.data[a]&(1<<o)-1)<<t-o,n|=this.data[--a]>>(o+=this.DB-t)):(n=this.data[a]>>(o-=t)&r,o<=0&&(o+=this.DB,--a)),n>0&&(i=!0),i&&(s+=L3(n));return i?s:"0"}function tu(){var e=rt();return B.ZERO.subTo(this,e),e}function eu(){return this.s<0?this.negate():this}function ru(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 l1(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 nu(){return this.t<=0?0:this.DB*(this.t-1)+l1(this.data[this.t-1]^this.s&this.DM)}function iu(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 su(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 ou(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(e/this.DB),a=this.s<<r&this.DM,o;for(o=this.t-1;o>=0;--o)t.data[o+s+1]=this.data[o]>>n|a,a=(this.data[o]&i)<<r;for(o=s-1;o>=0;--o)t.data[o]=0;t.data[s]=a,t.t=this.t+s+1,t.s=this.s,t.clamp()}function au(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,s=(1<<n)-1;t.data[0]=this.data[r]>>n;for(var a=r+1;a<this.t;++a)t.data[a-r-1]|=(this.data[a]&s)<<i,t.data[a-r]=this.data[a]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&s)<<i),t.t=this.t-r,t.clamp()}function cu(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 uu(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 fu(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 lu(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 s=rt(),a=this.s,o=e.s,c=this.DB-l1(n.data[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,r)):(n.copyTo(s),i.copyTo(r));var u=s.t,f=s.data[u-1];if(f!=0){var l=f*(1<<this.F1)+(u>1?s.data[u-2]>>this.F2:0),p=this.FV/l,d=(1<<this.F1)/l,h=1<<this.F2,y=r.t,g=y-u,m=t??rt();for(s.dlShiftTo(g,m),r.compareTo(m)>=0&&(r.data[r.t++]=1,r.subTo(m,r)),B.ONE.dlShiftTo(u,m),m.subTo(s,s);s.t<u;)s.data[s.t++]=0;for(;--g>=0;){var x=r.data[--y]==f?this.DM:Math.floor(r.data[y]*p+(r.data[y-1]+h)*d);if((r.data[y]+=s.am(0,x,r,g,0,u))<x)for(s.dlShiftTo(g,m),r.subTo(m,r);r.data[y]<--x;)r.subTo(m,r)}t!=null&&(r.drShiftTo(u,t),a!=o&&B.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),a<0&&B.ZERO.subTo(r,r)}}}function hu(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 Vr(e){this.m=e}function du(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function pu(e){return e}function yu(e){e.divRemTo(this.m,null,e)}function gu(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function mu(e,t){e.squareTo(t),this.reduce(t)}Vr.prototype.convert=du;Vr.prototype.revert=pu;Vr.prototype.reduce=yu;Vr.prototype.mulTo=gu;Vr.prototype.sqrTo=mu;function xu(){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 vu(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 bu(e){var t=rt();return e.copyTo(t),this.reduce(t),t}function wu(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 Eu(e,t){e.squareTo(t),this.reduce(t)}function Su(e,t,r){e.multiplyTo(t,r),this.reduce(r)}qr.prototype.convert=vu;qr.prototype.revert=bu;qr.prototype.reduce=wu;qr.prototype.mulTo=Su;qr.prototype.sqrTo=Eu;function Iu(){return(this.t>0?this.data[0]&1:this.s)==0}function Au(e,t){if(e>4294967295||e<1)return B.ONE;var r=rt(),n=rt(),i=t.convert(this),s=l1(e)-1;for(i.copyTo(r);--s>=0;)if(t.sqrTo(r,n),(e&1<<s)>0)t.mulTo(n,i,r);else{var a=r;r=n,n=a}return t.revert(r)}function Bu(e,t){var r;return e<256||t.isEven()?r=new Vr(t):r=new qr(t),this.exp(e,r)}B.prototype.copyTo=Wc;B.prototype.fromInt=Zc;B.prototype.fromString=Xc;B.prototype.clamp=Jc;B.prototype.dlShiftTo=iu;B.prototype.drShiftTo=su;B.prototype.lShiftTo=ou;B.prototype.rShiftTo=au;B.prototype.subTo=cu;B.prototype.multiplyTo=uu;B.prototype.squareTo=fu;B.prototype.divRemTo=lu;B.prototype.invDigit=xu;B.prototype.isEven=Iu;B.prototype.exp=Au;B.prototype.toString=jc;B.prototype.negate=tu;B.prototype.abs=eu;B.prototype.compareTo=ru;B.prototype.bitLength=nu;B.prototype.mod=hu;B.prototype.modPowInt=Bu;B.ZERO=br(0);B.ONE=br(1);function Tu(){var e=rt();return this.copyTo(e),e}function _u(){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 Cu(){return this.t==0?this.s:this.data[0]<<24>>24}function Ru(){return this.t==0?this.s:this.data[0]<<16>>16}function Pu(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function Lu(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Nu(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=br(r),i=rt(),s=rt(),a="";for(this.divRemTo(n,i,s);i.signum()>0;)a=(r+s.intValue()).toString(e).substr(1)+a,i.divRemTo(n,i,s);return s.intValue().toString(e)+a}function Du(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,s=0,a=0,o=0;o<e.length;++o){var c=N3(e,o);if(c<0){e.charAt(o)=="-"&&this.signum()==0&&(i=!0);continue}a=t*a+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(a,0),s=0,a=0)}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(a,0)),i&&B.ZERO.subTo(this,this)}function ku(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),Hs,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 Ou(){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 Uu(e){return this.compareTo(e)==0}function Fu(e){return this.compareTo(e)<0?this:e}function Ku(e){return this.compareTo(e)>0?this:e}function Mu(e,t,r){var n,i,s=Math.min(e.t,this.t);for(n=0;n<s;++n)r.data[n]=t(this.data[n],e.data[n]);if(e.t<this.t){for(i=e.s&this.DM,n=s;n<this.t;++n)r.data[n]=t(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;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 Vu(e,t){return e&t}function qu(e){var t=rt();return this.bitwiseTo(e,Vu,t),t}function Hs(e,t){return e|t}function zu(e){var t=rt();return this.bitwiseTo(e,Hs,t),t}function D3(e,t){return e^t}function Hu(e){var t=rt();return this.bitwiseTo(e,D3,t),t}function k3(e,t){return e&~t}function $u(e){var t=rt();return this.bitwiseTo(e,k3,t),t}function Gu(){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 Qu(e){var t=rt();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function Yu(e){var t=rt();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function Wu(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 Zu(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+Wu(this.data[e]);return this.s<0?this.t*this.DB:-1}function Xu(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function Ju(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=Xu(this.data[r]^t);return e}function ju(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function t7(e,t){var r=B.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function e7(e){return this.changeBit(e,Hs)}function r7(e){return this.changeBit(e,k3)}function n7(e){return this.changeBit(e,D3)}function i7(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 s7(e){var t=rt();return this.addTo(e,t),t}function o7(e){var t=rt();return this.subTo(e,t),t}function a7(e){var t=rt();return this.multiplyTo(e,t),t}function c7(e){var t=rt();return this.divRemTo(e,t,null),t}function u7(e){var t=rt();return this.divRemTo(e,null,t),t}function f7(e){var t=rt(),r=rt();return this.divRemTo(e,t,r),new Array(t,r)}function l7(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function h7(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 s0(){}function O3(e){return e}function d7(e,t,r){e.multiplyTo(t,r)}function p7(e,t){e.squareTo(t)}s0.prototype.convert=O3;s0.prototype.revert=O3;s0.prototype.mulTo=d7;s0.prototype.sqrTo=p7;function y7(e){return this.exp(e,new s0)}function g7(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 m7(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 An(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 x7(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 v7(e){return e}function b7(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 w7(e,t){e.squareTo(t),this.reduce(t)}function E7(e,t,r){e.multiplyTo(t,r),this.reduce(r)}An.prototype.convert=x7;An.prototype.revert=v7;An.prototype.reduce=b7;An.prototype.mulTo=E7;An.prototype.sqrTo=w7;function S7(e,t){var r=e.bitLength(),n,i=br(1),s;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?s=new Vr(t):t.isEven()?s=new An(t):s=new qr(t);var a=new Array,o=3,c=n-1,u=(1<<n)-1;if(a[1]=s.convert(this),n>1){var f=rt();for(s.sqrTo(a[1],f);o<=u;)a[o]=rt(),s.mulTo(f,a[o-2],a[o]),o+=2}var l=e.t-1,p,d=!0,h=rt(),y;for(r=l1(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)),o=n;!(p&1);)p>>=1,--o;if((r-=o)<0&&(r+=this.DB,--l),d)a[p].copyTo(i),d=!1;else{for(;o>1;)s.sqrTo(i,h),s.sqrTo(h,i),o-=2;o>0?s.sqrTo(i,h):(y=i,i=h,h=y),s.mulTo(h,a[p],i)}for(;l>=0&&!(e.data[l]&1<<r);)s.sqrTo(i,h),y=i,i=h,h=y,--r<0&&(r=this.DB-1,--l)}return s.revert(i)}function I7(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(),s=r.getLowestSetBit();if(s<0)return t;for(i<s&&(s=i),s>0&&(t.rShiftTo(s,t),r.rShiftTo(s,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 s>0&&r.lShiftTo(s,r),r}function A7(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 B7(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return B.ZERO;for(var r=e.clone(),n=this.clone(),i=br(1),s=br(0),a=br(0),o=br(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),t?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(e,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),t?((!a.isEven()||!o.isEven())&&(a.addTo(this,a),o.subTo(e,o)),a.rShiftTo(1,a)):o.isEven()||o.subTo(e,o),o.rShiftTo(1,o);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(a,i),s.subTo(o,s)):(n.subTo(r,n),t&&a.subTo(i,a),o.subTo(s,o))}if(n.compareTo(B.ONE)!=0)return B.ZERO;if(o.compareTo(e)>=0)return o.subtract(e);if(o.signum()<0)o.addTo(e,o);else return o;return o.signum()<0?o.add(e):o}var Se=[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],T7=(1<<26)/Se[Se.length-1];function _7(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=Se[Se.length-1]){for(t=0;t<Se.length;++t)if(r.data[0]==Se[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<Se.length;){for(var n=Se[t],i=t+1;i<Se.length&&n<T7;)n*=Se[i++];for(n=r.modInt(n);t<i;)if(n%Se[t++]==0)return!1}return r.millerRabin(e)}function C7(e){var t=this.subtract(B.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=R7(),s,a=0;a<e;++a){do s=new B(this.bitLength(),i);while(s.compareTo(B.ONE)<=0||s.compareTo(t)>=0);var o=s.modPow(n,this);if(o.compareTo(B.ONE)!=0&&o.compareTo(t)!=0){for(var c=1;c++<r&&o.compareTo(t)!=0;)if(o=o.modPowInt(2,this),o.compareTo(B.ONE)==0)return!1;if(o.compareTo(t)!=0)return!1}}return!0}function R7(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}B.prototype.chunkSize=Pu;B.prototype.toRadix=Nu;B.prototype.fromRadix=Du;B.prototype.fromNumber=ku;B.prototype.bitwiseTo=Mu;B.prototype.changeBit=t7;B.prototype.addTo=i7;B.prototype.dMultiply=l7;B.prototype.dAddOffset=h7;B.prototype.multiplyLowerTo=g7;B.prototype.multiplyUpperTo=m7;B.prototype.modInt=A7;B.prototype.millerRabin=C7;B.prototype.clone=Tu;B.prototype.intValue=_u;B.prototype.byteValue=Cu;B.prototype.shortValue=Ru;B.prototype.signum=Lu;B.prototype.toByteArray=Ou;B.prototype.equals=Uu;B.prototype.min=Fu;B.prototype.max=Ku;B.prototype.and=qu;B.prototype.or=zu;B.prototype.xor=Hu;B.prototype.andNot=$u;B.prototype.not=Gu;B.prototype.shiftLeft=Qu;B.prototype.shiftRight=Yu;B.prototype.getLowestSetBit=Zu;B.prototype.bitCount=Ju;B.prototype.testBit=ju;B.prototype.setBit=e7;B.prototype.clearBit=r7;B.prototype.flipBit=n7;B.prototype.add=s7;B.prototype.subtract=o7;B.prototype.multiply=a7;B.prototype.divide=c7;B.prototype.remainder=u7;B.prototype.divideAndRemainder=f7;B.prototype.modPow=S7;B.prototype.modInverse=B7;B.prototype.pow=y7;B.prototype.gcd=I7;B.prototype.isProbablePrime=_7});var q3=it((dm,V3)=>{var Ke=ut();Mr();Lt();var K3=V3.exports=Ke.sha1=Ke.sha1||{};Ke.md.sha1=Ke.md.algorithms.sha1=K3;K3.create=function(){M3||P7();var e=null,t=Ke.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return t=Ke.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Ke.util.encodeUtf8(i));var a=i.length;n.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var o=n.fullMessageLength.length-1;o>=0;--o)n.fullMessageLength[o]+=a[1],a[1]=a[0]+(n.fullMessageLength[o]/4294967296>>>0),n.fullMessageLength[o]=n.fullMessageLength[o]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(i),F3(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 s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,a=s&n.blockLength-1;i.putBytes($s.substr(0,n.blockLength-a));for(var o,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)o=n.fullMessageLength[f+1]*8,c=o/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=o>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};F3(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},n};var $s=null,M3=!1;function P7(){$s="\x80",$s+=Ke.util.fillString("\0",64),M3=!0}function F3(e,t,r){for(var n,i,s,a,o,c,u,f,l=r.length();l>=64;){for(i=e.h0,s=e.h1,a=e.h2,o=e.h3,c=e.h4,f=0;f<16;++f)n=r.getInt32(),t[f]=n,u=o^s&(a^o),n=(i<<5|i>>>27)+u+c+1518500249+n,c=o,o=a,a=(s<<30|s>>>2)>>>0,s=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=o^s&(a^o),n=(i<<5|i>>>27)+u+c+1518500249+n,c=o,o=a,a=(s<<30|s>>>2)>>>0,s=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=s^a^o,n=(i<<5|i>>>27)+u+c+1859775393+n,c=o,o=a,a=(s<<30|s>>>2)>>>0,s=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=s^a^o,n=(i<<5|i>>>27)+u+c+1859775393+n,c=o,o=a,a=(s<<30|s>>>2)>>>0,s=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=s&a|o&(s^a),n=(i<<5|i>>>27)+u+c+2400959708+n,c=o,o=a,a=(s<<30|s>>>2)>>>0,s=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=s^a^o,n=(i<<5|i>>>27)+u+c+3395469782+n,c=o,o=a,a=(s<<30|s>>>2)>>>0,s=i,i=n;e.h0=e.h0+i|0,e.h1=e.h1+s|0,e.h2=e.h2+a|0,e.h3=e.h3+o|0,e.h4=e.h4+c|0,l-=64}}});var $3=it((pm,H3)=>{var Me=ut();Lt();i0();q3();var z3=H3.exports=Me.pkcs1=Me.pkcs1||{};z3.encode_rsa_oaep=function(e,t,r){var n,i,s,a;typeof r=="string"?(n=r,i=arguments[3]||void 0,s=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(a=r.mgf1.md)),s?s.start():s=Me.md.sha1.create(),a||(a=s);var o=Math.ceil(e.n.bitLength()/8),c=o-2*s.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=""),s.update(n,"raw");for(var f=s.digest(),l="",p=c-t.length,d=0;d<p;d++)l+="\0";var h=f.getBytes()+l+""+t;if(!i)i=Me.random.getBytes(s.digestLength);else if(i.length!==s.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=s.digestLength,u}var y=d1(i,o-s.digestLength-1,a),g=Me.util.xorBytes(h,y,h.length),m=d1(g,s.digestLength,a),x=Me.util.xorBytes(i,m,i.length);return"\0"+x+g};z3.decode_rsa_oaep=function(e,t,r){var n,i,s;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md));var a=Math.ceil(e.n.bitLength()/8);if(t.length!==a){var g=new Error("RSAES-OAEP encoded message length is invalid.");throw g.length=t.length,g.expectedLength=a,g}if(i===void 0?i=Me.md.sha1.create():i.start(),s||(s=i),a<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var o=i.digest().getBytes(),c=t.charAt(0),u=t.substring(1,i.digestLength+1),f=t.substring(1+i.digestLength),l=d1(f,i.digestLength,s),p=Me.util.xorBytes(u,l,u.length),d=d1(p,a-i.digestLength-1,s),h=Me.util.xorBytes(f,d,f.length),y=h.substring(0,i.digestLength),g=c!=="\0",m=0;m<i.digestLength;++m)g|=o.charAt(m)!==y.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;g|=E&L,x=x&S,v+=x}if(g||h.charCodeAt(v)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(v+1)};function d1(e,t,r){r||(r=Me.md.sha1.create());for(var n="",i=Math.ceil(t/r.digestLength),s=0;s<i;++s){var a=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);r.start(),r.update(e+a),n+=r.digest().getBytes()}return n.substring(0,t)}});var G3=it((ym,Gs)=>{var wr=ut();Lt();h1();i0();(function(){if(wr.prime){Gs.exports=wr.prime;return}var e=Gs.exports=wr.prime=wr.prime||{},t=wr.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(l,p){return l|p};e.generateProbablePrime=function(l,p,d){typeof p=="function"&&(d=p,p={}),p=p||{};var h=p.algorithm||"PRIMEINC";typeof h=="string"&&(h={name:h}),h.options=h.options||{};var y=p.prng||wr.random,g={nextBytes:function(m){for(var x=y.getBytesSync(m.length),v=0;v<m.length;++v)m[v]=x.charCodeAt(v)}};if(h.name==="PRIMEINC")return s(l,g,h.options,d);throw new Error("Invalid prime generation algorithm: "+h.name)};function s(l,p,d,h){return"workers"in d?c(l,p,d,h):a(l,p,d,h)}function a(l,p,d,h){var y=u(l,p),g=0,m=f(y.bitLength());"millerRabinTests"in d&&(m=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),o(y,l,p,g,m,x,h)}function o(l,p,d,h,y,g,m){var x=+new Date;do{if(l.bitLength()>p&&(l=u(p,d)),l.isProbablePrime(y))return m(null,l);l.dAddOffset(r[h++%8],0)}while(g<0||+new Date-x<g);wr.util.setImmediate(function(){o(l,p,d,h,y,g,m)})}function c(l,p,d,h){if(typeof Worker>"u")return a(l,p,d,h);var y=u(l,p),g=d.workers,m=d.workLoad||100,x=m*30/8,v=d.workerScript||"forge/prime.worker.js";if(g===-1)return wr.util.estimateCores(function(E,S){E&&(S=2),g=S-1,T()});T();function T(){g=Math.max(1,g);for(var E=[],S=0;S<g;++S)E[S]=new Worker(v);for(var L=g,S=0;S<g;++S)E[S].addEventListener("message",G);var N=!1;function G($){if(!N){--L;var q=$.data;if(q.found){for(var J=0;J<E.length;++J)E[J].terminate();return N=!0,h(null,new t(q.prime,16))}y.bitLength()>l&&(y=u(l,p));var ft=y.toString(16);$.target.postMessage({hex:ft,workLoad:m}),y.dAddOffset(x,0)}}}}function u(l,p){var d=new t(l,p),h=l-1;return d.testBit(h)||d.bitwiseTo(t.ONE.shiftLeft(h),i,d),d.dAddOffset(31-d.mod(n).byteValue(),0),d}function f(l){return l<=100?27:l<=150?18:l<=200?15:l<=250?12:l<=300?9:l<=350?8:l<=400?7:l<=500?6:l<=600?5:l<=800?4:l<=1250?3:2}})()});var y1=it((gm,j3)=>{var V=ut();n0();h1();r1();$3();G3();i0();Lt();typeof et>"u"&&(et=V.jsbn.BigInteger);var et,Qs=V.util.isNodejs?o1():null,w=V.asn1,ge=V.util;V.pki=V.pki||{};j3.exports=V.pki.rsa=V.rsa=V.rsa||{};var Q=V.pki,L7=[6,4,2,4,2,4,6,2],N7={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"}]},D7={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"}]},k7={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"}]},O7=V.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},U7={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"}]},F7=function(e){var t;if(e.algorithm in Q.oids)t=Q.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=w.oidToDer(t).getBytes(),i=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]),s=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]);s.value.push(w.create(w.Class.UNIVERSAL,w.Type.OID,!1,n)),s.value.push(w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,""));var a=w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(s),i.value.push(a),w.toDer(i).getBytes()},X3=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(V.util.bytesToHex(V.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),s=e.mod(t.q).modPow(t.dQ,t.q);i.compareTo(s)<0;)i=i.add(t.p);var a=i.subtract(s).multiply(t.qInv).mod(t.p).multiply(t.q).add(s);return a=a.multiply(n.modInverse(t.n)).mod(t.n),a};Q.rsa.encrypt=function(e,t,r){var n=r,i,s=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=J3(e,t,r)):(i=V.util.createBuffer(),i.putBytes(e));for(var a=new et(i.toHex(),16),o=X3(a,t,n),c=o.toString(16),u=V.util.createBuffer(),f=s-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),u.getBytes()};Q.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=e.length,s.expected=i,s}var a=new et(V.util.createBuffer(e).toHex(),16);if(a.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var o=X3(a,t,r),c=o.toString(16),u=V.util.createBuffer(),f=i-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),n!==!1?p1(u.getBytes(),t,r):u.getBytes()};Q.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||V.random,i={nextBytes:function(o){for(var c=n.getBytesSync(o.length),u=0;u<o.length;++u)o[u]=c.charCodeAt(u)}},s=r.algorithm||"PRIMEINC",a;if(s==="PRIMEINC")a={algorithm:s,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},a.e.fromInt(a.eInt);else throw new Error("Invalid key generation algorithm: "+s);return a};Q.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},s=+new Date,a,o=0;e.keys===null&&(t<=0||o<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(M7(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(L7[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:Q.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)}}a=+new Date,o+=a-s,s=a}return e.keys!==null};Q.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!V.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(Q3("generateKeyPair"))return Qs.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(o,c,u){if(o)return n(o);n(null,{privateKey:Q.privateKeyFromPem(u),publicKey:Q.publicKeyFromPem(c)})});if(Y3("generateKey")&&Y3("exportKey"))return ge.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:Z3(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(o){return ge.globalScope.crypto.subtle.exportKey("pkcs8",o.privateKey)}).then(void 0,function(o){n(o)}).then(function(o){if(o){var c=Q.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(o)));n(null,{privateKey:c,publicKey:Q.setRsaPublicKey(c.n,c.e)})}});if(W3("generateKey")&&W3("exportKey")){var i=ge.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:Z3(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(o){var c=o.target.result,u=ge.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(f){var l=f.target.result,p=Q.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(l)));n(null,{privateKey:p,publicKey:Q.setRsaPublicKey(p.n,p.e)})},u.onerror=function(f){n(f)}},i.onerror=function(o){n(o)};return}}else if(Q3("generateKeyPairSync")){var s=Qs.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Q.privateKeyFromPem(s.privateKey),publicKey:Q.publicKeyFromPem(s.publicKey)}}}var a=Q.rsa.createKeyPairGenerationState(e,t,r);if(!n)return Q.rsa.stepKeyPairGenerationState(a,0),a.keys;K7(a,r,n)};Q.setRsaPublicKey=Q.rsa.setPublicKey=function(e,t){var r={n:e,e:t};return r.encrypt=function(n,i,s){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(o,c,u){return J3(o,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(o,c){return V.pkcs1.encode_rsa_oaep(c,o,s)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(o){return o}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var a=i.encode(n,r,!0);return Q.rsa.encrypt(a,r,!0)},r.verify=function(n,i,s,a){typeof s=="string"?s=s.toUpperCase():s===void 0&&(s="RSASSA-PKCS1-V1_5"),a===void 0&&(a={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in a||(a._parseAllDigestBytes=!0),s==="RSASSA-PKCS1-V1_5"?s={verify:function(c,u){u=p1(u,r,!0);var f=w.fromDer(u,{parseAllBytes:a._parseAllDigestBytes}),l={},p=[];if(!w.validate(f,U7,l,p)){var d=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw d.errors=p,d}var h=w.derToOid(l.algorithmIdentifier);if(!(h===V.oids.md2||h===V.oids.md5||h===V.oids.sha1||h===V.oids.sha224||h===V.oids.sha256||h===V.oids.sha384||h===V.oids.sha512||h===V.oids["sha512-224"]||h===V.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=h,d}if((h===V.oids.md2||h===V.oids.md5)&&!("parameters"in l))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===l.digest}}:(s==="NONE"||s==="NULL"||s===null)&&(s={verify:function(c,u){return u=p1(u,r,!0),c===u}});var o=Q.rsa.decrypt(i,r,!0,!1);return s.verify(n,o,r.n.bitLength())},r};Q.setRsaPrivateKey=Q.rsa.setPrivateKey=function(e,t,r,n,i,s,a,o){var c={n:e,e:t,d:r,p:n,q:i,dP:s,dQ:a,qInv:o};return c.decrypt=function(u,f,l){typeof f=="string"?f=f.toUpperCase():f===void 0&&(f="RSAES-PKCS1-V1_5");var p=Q.rsa.decrypt(u,c,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:p1};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(d,h){return V.pkcs1.decode_rsa_oaep(h,d,l)}};else if(["RAW","NONE","NULL",null].indexOf(f)!==-1)f={decode:function(d){return d}};else throw new Error('Unsupported encryption scheme: "'+f+'".');return f.decode(p,c,!1)},c.sign=function(u,f){var l=!1;typeof f=="string"&&(f=f.toUpperCase()),f===void 0||f==="RSASSA-PKCS1-V1_5"?(f={encode:F7},l=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return u}},l=1);var p=f.encode(u,c.n.bitLength());return Q.rsa.encrypt(p,c,l)},c};Q.wrapRsaPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer(Q.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,w.toDer(e).getBytes())])};Q.privateKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,N7,t,r)&&(e=w.fromDer(V.util.createBuffer(t.privateKey))),t={},r=[],!w.validate(e,D7,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,s,a,o,c,u,f,l;return i=V.util.createBuffer(t.privateKeyModulus).toHex(),s=V.util.createBuffer(t.privateKeyPublicExponent).toHex(),a=V.util.createBuffer(t.privateKeyPrivateExponent).toHex(),o=V.util.createBuffer(t.privateKeyPrime1).toHex(),c=V.util.createBuffer(t.privateKeyPrime2).toHex(),u=V.util.createBuffer(t.privateKeyExponent1).toHex(),f=V.util.createBuffer(t.privateKeyExponent2).toHex(),l=V.util.createBuffer(t.privateKeyCoefficient).toHex(),Q.setRsaPrivateKey(new et(i,16),new et(s,16),new et(a,16),new et(o,16),new et(c,16),new et(u,16),new et(f,16),new et(l,16))};Q.privateKeyToAsn1=Q.privateKeyToRSAPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,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))])};Q.publicKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,O7,t,r)){var n=w.derToOid(t.publicKeyOid);if(n!==Q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!w.validate(e,k7,t,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var s=V.util.createBuffer(t.publicKeyModulus).toHex(),a=V.util.createBuffer(t.publicKeyExponent).toHex();return Q.setRsaPublicKey(new et(s,16),new et(a,16))};Q.publicKeyToAsn1=Q.publicKeyToSubjectPublicKeyInfo=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer(Q.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.BITSTRING,!1,[Q.publicKeyToRSAPublicKey(e)])])};Q.publicKeyToRSAPublicKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,Ve(e.e))])};function J3(e,t,r){var n=V.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=e.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var a=i-3-e.length,o;if(r===0||r===1){o=r===0?0:255;for(var c=0;c<a;++c)n.putByte(o)}else for(;a>0;){for(var u=0,f=V.random.getBytes(a),c=0;c<a;++c)o=f.charCodeAt(c),o===0?++u:n.putByte(o);a=u}return n.putByte(0),n.putBytes(e),n}function p1(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),s=V.util.createBuffer(e),a=s.getByte(),o=s.getByte();if(a!==0||r&&o!==0&&o!==1||!r&&o!=2||r&&o===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(o===0){c=i-3-n;for(var u=0;u<c;++u)if(s.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(o===1)for(c=0;s.length()>1;){if(s.getByte()!==255){--s.read;break}++c}else if(o===2)for(c=0;s.length()>1;){if(s.getByte()===0){--s.read;break}++c}var f=s.getByte();if(f!==0||c!==i-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function K7(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(){s(e.pBits,function(o,c){if(o)return r(o);if(e.p=c,e.q!==null)return a(o,e.q);s(e.qBits,a)})}function s(o,c){V.prime.generateProbablePrime(o,n,c)}function a(o,c){if(o)return r(o);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,s(e.qBits,a);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,s(e.qBits,a);return}var f=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Ve(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=V.util.hexToBytes(t);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function M7(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 Q3(e){return V.util.isNodejs&&typeof Qs[e]=="function"}function Y3(e){return typeof ge.globalScope<"u"&&typeof ge.globalScope.crypto=="object"&&typeof ge.globalScope.crypto.subtle=="object"&&typeof ge.globalScope.crypto.subtle[e]=="function"}function W3(e){return typeof ge.globalScope<"u"&&typeof ge.globalScope.msCrypto=="object"&&typeof ge.globalScope.msCrypto.subtle=="object"&&typeof ge.globalScope.msCrypto.subtle[e]=="function"}function Z3(e){for(var t=V.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var s4=it((mm,i4)=>{var U=ut();e1();n0();f3();Mr();r1();Fs();m3();i0();C3();y1();Lt();typeof t4>"u"&&(t4=U.jsbn.BigInteger);var t4,I=U.asn1,Y=U.pki=U.pki||{};i4.exports=Y.pbe=U.pbe=U.pbe||{};var zr=Y.oids,V7={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"}]},q7={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"}]}]},z7={name:"pkcs-12PbeParams",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"iterations"}]};Y.encryptPrivateKeyInfo=function(e,t,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=U.random.getBytesSync(r.saltSize),i=r.count,s=I.integerToDer(i),a,o,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,f,l;switch(r.algorithm){case"aes128":a=16,u=16,f=zr["aes128-CBC"],l=U.aes.createEncryptionCipher;break;case"aes192":a=24,u=16,f=zr["aes192-CBC"],l=U.aes.createEncryptionCipher;break;case"aes256":a=32,u=16,f=zr["aes256-CBC"],l=U.aes.createEncryptionCipher;break;case"des":a=8,u=8,f=zr.desCBC,l=U.des.createEncryptionCipher;break;default:var p=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw p.algorithm=r.algorithm,p}var d="hmacWith"+r.prfAlgorithm.toUpperCase(),h=n4(d),y=U.pkcs5.pbkdf2(t,n,i,a,h),g=U.random.getBytesSync(u),m=l(y);m.start(g),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes();var x=H7(n,s,a,d);o=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,g)])])])}else if(r.algorithm==="3des"){a=24;var v=new U.util.ByteBuffer(n),y=Y.pbe.generatePkcs12Key(t,v,1,i,a),g=Y.pbe.generatePkcs12Key(t,v,2,i,a),m=U.des.createEncryptionCipher(y);m.start(g),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes(),o=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,s.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,[o,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return T};Y.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!I.validate(e,V7,n,i)){var s=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var a=I.derToOid(n.encryptionOid),o=Y.pbe.getCipher(a,n.encryptionParams,t),c=U.util.createBuffer(n.encryptedData);return o.update(c),o.finish()&&(r=I.fromDer(o.output)),r};Y.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(e).getBytes()};return U.pem.encode(r,{maxline:t})};Y.encryptedPrivateKeyFromPem=function(e){var t=U.pem.decode(e)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=t.type,r}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return I.fromDer(t.body)};Y.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Y.wrapRsaPrivateKey(Y.privateKeyToAsn1(e));return n=Y.encryptPrivateKeyInfo(n,t,r),Y.encryptedPrivateKeyToPem(n)}var i,s,a,o;switch(r.algorithm){case"aes128":i="AES-128-CBC",a=16,s=U.random.getBytesSync(16),o=U.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",a=24,s=U.random.getBytesSync(16),o=U.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",a=32,s=U.random.getBytesSync(16),o=U.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",a=24,s=U.random.getBytesSync(8),o=U.des.createEncryptionCipher;break;case"des":i="DES-CBC",a=8,s=U.random.getBytesSync(8),o=U.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=U.pbe.opensslDeriveBytes(t,s.substr(0,8),a),f=o(u);f.start(s),f.update(I.toDer(Y.privateKeyToAsn1(e))),f.finish();var l={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:U.util.bytesToHex(s).toUpperCase()},body:f.output.getBytes()};return U.pem.encode(l)};Y.decryptRsaPrivateKey=function(e,t){var r=null,n=U.pem.decode(e)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var s,a;switch(n.dekInfo.algorithm){case"DES-CBC":s=8,a=U.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,a=U.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,a=U.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,a=U.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,a=U.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,a=function(l){return U.rc2.createDecryptionCipher(l,40)};break;case"RC2-64-CBC":s=8,a=function(l){return U.rc2.createDecryptionCipher(l,64)};break;case"RC2-128-CBC":s=16,a=function(l){return U.rc2.createDecryptionCipher(l,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var o=U.util.hexToBytes(n.dekInfo.parameters),c=U.pbe.opensslDeriveBytes(t,o.substr(0,8),s),u=a(c);if(u.start(o),u.update(U.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=Y.decryptPrivateKeyInfo(I.fromDer(r),t):r=I.fromDer(r),r!==null&&(r=Y.privateKeyFromAsn1(r)),r};Y.pbe.generatePkcs12Key=function(e,t,r,n,i,s){var a,o;if(typeof s>"u"||s===null){if(!("sha1"in U.md))throw new Error('"sha1" hash algorithm unavailable.');s=U.md.sha1.create()}var c=s.digestLength,u=s.blockLength,f=new U.util.ByteBuffer,l=new U.util.ByteBuffer;if(e!=null){for(o=0;o<e.length;o++)l.putInt16(e.charCodeAt(o));l.putInt16(0)}var p=l.length(),d=t.length(),h=new U.util.ByteBuffer;h.fillWithByte(r,u);var y=u*Math.ceil(d/u),g=new U.util.ByteBuffer;for(o=0;o<y;o++)g.putByte(t.at(o%d));var m=u*Math.ceil(p/u),x=new U.util.ByteBuffer;for(o=0;o<m;o++)x.putByte(l.at(o%p));var v=g;v.putBuffer(x);for(var T=Math.ceil(i/c),E=1;E<=T;E++){var S=new U.util.ByteBuffer;S.putBytes(h.bytes()),S.putBytes(v.bytes());for(var L=0;L<n;L++)s.start(),s.update(S.getBytes()),S=s.digest();var N=new U.util.ByteBuffer;for(o=0;o<u;o++)N.putByte(S.at(o%c));var G=Math.ceil(d/u)+Math.ceil(p/u),$=new U.util.ByteBuffer;for(a=0;a<G;a++){var q=new U.util.ByteBuffer(v.getBytes(u)),J=511;for(o=N.length()-1;o>=0;o--)J=J>>8,J+=N.at(o)+q.at(o),q.setAt(o,J&255);$.putBuffer(q)}v=$,f.putBuffer(S)}return f.truncate(f.length()-i),f};Y.pbe.getCipher=function(e,t,r){switch(e){case Y.oids.pkcs5PBES2:return Y.pbe.getCipherForPBES2(e,t,r);case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:return Y.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Y.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!I.validate(t,q7,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}if(e=I.derToOid(n.kdfOid),e!==Y.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=e,s.supportedOids=["pkcs5PBKDF2"],s}if(e=I.derToOid(n.encOid),e!==Y.oids["aes128-CBC"]&&e!==Y.oids["aes192-CBC"]&&e!==Y.oids["aes256-CBC"]&&e!==Y.oids["des-EDE3-CBC"]&&e!==Y.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=e,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var a=n.kdfSalt,o=U.util.createBuffer(n.kdfIterationCount);o=o.getInt(o.length()<<3);var c,u;switch(Y.oids[e]){case"aes128-CBC":c=16,u=U.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=U.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=U.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=U.des.createDecryptionCipher;break;case"desCBC":c=8,u=U.des.createDecryptionCipher;break}var f=r4(n.prfOid),l=U.pkcs5.pbkdf2(r,a,o,c,f),p=n.encIv,d=u(l);return d.start(p),d};Y.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!I.validate(t,z7,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var a=U.util.createBuffer(n.salt),o=U.util.createBuffer(n.iterations);o=o.getInt(o.length()<<3);var c,u,f;switch(e){case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,f=U.des.startDecrypting;break;case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,f=function(y,g){var m=U.rc2.createDecryptionCipher(y,40);return m.start(g,null),m};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=e,s}var l=r4(n.prfOid),p=Y.pbe.generatePkcs12Key(r,a,1,o,c,l);l.start();var d=Y.pbe.generatePkcs12Key(r,a,2,o,u,l);return f(p,d)};Y.pbe.opensslDeriveBytes=function(e,t,r,n){if(typeof n>"u"||n===null){if(!("md5"in U.md))throw new Error('"md5" hash algorithm unavailable.');n=U.md.md5.create()}t===null&&(t="");for(var i=[e4(n,e+t)],s=16,a=1;s<r;++a,s+=16)i.push(e4(n,i[a-1]+e+t));return i.join("").substr(0,r)};function e4(e,t){return e.start().update(t).digest().getBytes()}function r4(e){var t;if(!e)t="hmacWithSHA1";else if(t=Y.oids[I.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return n4(t)}function n4(e){var t=U.md;switch(e){case"hmacWithSHA224":t=U.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function H7(e,t,r,n){var i=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,e),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,U.util.hexToBytes(r.toString(16))),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Y.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var z4=it((Ux,q4)=>{var xt=ut();Mr();Lt();var f0=q4.exports=xt.sha512=xt.sha512||{};xt.md.sha512=xt.md.algorithms.sha512=f0;var M4=xt.sha384=xt.sha512.sha384=xt.sha512.sha384||{};M4.create=function(){return f0.create("SHA-384")};xt.md.sha384=xt.md.algorithms.sha384=M4;xt.sha512.sha256=xt.sha512.sha256||{create:function(){return f0.create("SHA-512/256")}};xt.md["sha512/256"]=xt.md.algorithms["sha512/256"]=xt.sha512.sha256;xt.sha512.sha224=xt.sha512.sha224||{create:function(){return f0.create("SHA-512/224")}};xt.md["sha512/224"]=xt.md.algorithms["sha512/224"]=xt.sha512.sha224;f0.create=function(e){if(V4||rl(),typeof e>"u"&&(e="SHA-512"),!(e in Yr))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=Yr[e],r=null,n=xt.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var a=64;switch(e){case"SHA-384":a=48;break;case"SHA-512/256":a=32;break;case"SHA-512/224":a=28;break}var o={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:a,messageLength:0,fullMessageLength:null,messageLengthSize:16};return o.start=function(){o.messageLength=0,o.fullMessageLength=o.messageLength128=[];for(var c=o.messageLengthSize/4,u=0;u<c;++u)o.fullMessageLength.push(0);n=xt.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return o},o.start(),o.update=function(c,u){u==="utf8"&&(c=xt.util.encodeUtf8(c));var f=c.length;o.messageLength+=f,f=[f/4294967296>>>0,f>>>0];for(var l=o.fullMessageLength.length-1;l>=0;--l)o.fullMessageLength[l]+=f[1],f[1]=f[0]+(o.fullMessageLength[l]/4294967296>>>0),o.fullMessageLength[l]=o.fullMessageLength[l]>>>0,f[0]=f[1]/4294967296>>>0;return n.putBytes(c),K4(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),o},o.digest=function(){var c=xt.util.createBuffer();c.putBytes(n.bytes());var u=o.fullMessageLength[o.fullMessageLength.length-1]+o.messageLengthSize,f=u&o.blockLength-1;c.putBytes(go.substr(0,o.blockLength-f));for(var l,p,d=o.fullMessageLength[0]*8,h=0;h<o.fullMessageLength.length-1;++h)l=o.fullMessageLength[h+1]*8,p=l/4294967296>>>0,d+=p,c.putInt32(d>>>0),d=l>>>0;c.putInt32(d);for(var y=new Array(r.length),h=0;h<r.length;++h)y[h]=r[h].slice(0);K4(y,i,c);var g=xt.util.createBuffer(),m;e==="SHA-512"?m=y.length:e==="SHA-384"?m=y.length-2:m=y.length-4;for(var h=0;h<m;++h)g.putInt32(y[h][0]),(h!==m-1||e!=="SHA-512/224")&&g.putInt32(y[h][1]);return g},o};var go=null,V4=!1,mo=null,Yr=null;function rl(){go="\x80",go+=xt.util.fillString("\0",128),mo=[[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]],Yr={},Yr["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],Yr["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],Yr["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],Yr["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],V4=!0}function K4(e,t,r){for(var n,i,s,a,o,c,u,f,l,p,d,h,y,g,m,x,v,T,E,S,L,N,G,$,q,J,ft,Qt,_,k,R,D,A,F,M,H=r.length();H>=128;){for(_=0;_<16;++_)t[_][0]=r.getInt32()>>>0,t[_][1]=r.getInt32()>>>0;for(;_<80;++_)D=t[_-2],k=D[0],R=D[1],n=((k>>>19|R<<13)^(R>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|R>>>19)^(R<<3|k>>>29)^(k<<26|R>>>6))>>>0,F=t[_-15],k=F[0],R=F[1],s=((k>>>1|R<<31)^(k>>>8|R<<24)^k>>>7)>>>0,a=((k<<31|R>>>1)^(k<<24|R>>>8)^(k<<25|R>>>7))>>>0,A=t[_-7],M=t[_-16],R=i+A[1]+a+M[1],t[_][0]=n+A[0]+s+M[0]+(R/4294967296>>>0)>>>0,t[_][1]=R>>>0;for(y=e[0][0],g=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],G=e[5][0],$=e[5][1],q=e[6][0],J=e[6][1],ft=e[7][0],Qt=e[7][1],_=0;_<80;++_)u=((L>>>14|N<<18)^(L>>>18|N<<14)^(N>>>9|L<<23))>>>0,f=((L<<18|N>>>14)^(L<<14|N>>>18)^(N<<23|L>>>9))>>>0,l=(q^L&(G^q))>>>0,p=(J^N&($^J))>>>0,o=((y>>>28|g<<4)^(g>>>2|y<<30)^(g>>>7|y<<25))>>>0,c=((y<<4|g>>>28)^(g<<30|y>>>2)^(g<<25|y>>>7))>>>0,d=(y&m|v&(y^m))>>>0,h=(g&x|T&(g^x))>>>0,R=Qt+f+p+mo[_][1]+t[_][1],n=ft+u+l+mo[_][0]+t[_][0]+(R/4294967296>>>0)>>>0,i=R>>>0,R=c+h,s=o+d+(R/4294967296>>>0)>>>0,a=R>>>0,ft=q,Qt=J,q=G,J=$,G=L,$=N,R=S+i,L=E+n+(R/4294967296>>>0)>>>0,N=R>>>0,E=v,S=T,v=m,T=x,m=y,x=g,R=i+a,y=n+s+(R/4294967296>>>0)>>>0,g=R>>>0;R=e[0][1]+g,e[0][0]=e[0][0]+y+(R/4294967296>>>0)>>>0,e[0][1]=R>>>0,R=e[1][1]+x,e[1][0]=e[1][0]+m+(R/4294967296>>>0)>>>0,e[1][1]=R>>>0,R=e[2][1]+T,e[2][0]=e[2][0]+v+(R/4294967296>>>0)>>>0,e[2][1]=R>>>0,R=e[3][1]+S,e[3][0]=e[3][0]+E+(R/4294967296>>>0)>>>0,e[3][1]=R>>>0,R=e[4][1]+N,e[4][0]=e[4][0]+L+(R/4294967296>>>0)>>>0,e[4][1]=R>>>0,R=e[5][1]+$,e[5][0]=e[5][0]+G+(R/4294967296>>>0)>>>0,e[5][1]=R>>>0,R=e[6][1]+J,e[6][0]=e[6][0]+q+(R/4294967296>>>0)>>>0,e[6][1]=R>>>0,R=e[7][1]+Qt,e[7][0]=e[7][0]+ft+(R/4294967296>>>0)>>>0,e[7][1]=R>>>0,H-=128}}});var y5=it((pb,p5)=>{p5.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(s,a){r[s]=a,t++,t>=e&&(t=0,n=r,r=Object.create(null))}return{has:function(s){return r[s]!==void 0||n[s]!==void 0},remove:function(s){r[s]!==void 0&&(r[s]=void 0),n[s]!==void 0&&(n[s]=void 0)},get:function(s){var a=r[s];if(a!==void 0)return a;if((a=n[s])!==void 0)return i(s,a),a},set:function(s,a){r[s]!==void 0?r[s]=a:i(s,a)},clear:function(){r=Object.create(null),n=Object.create(null)}}}});var m5=it((yb,Co)=>{"use strict";var Ol=Object.prototype.hasOwnProperty,oe="~";function g0(){}Object.create&&(g0.prototype=Object.create(null),new g0().__proto__||(oe=!1));function Ul(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function g5(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new Ul(r,n||e,i),a=oe?oe+t:t;return e._events[a]?e._events[a].fn?e._events[a]=[e._events[a],s]:e._events[a].push(s):(e._events[a]=s,e._eventsCount++),e}function K1(e,t){--e._eventsCount===0?e._events=new g0:delete e._events[t]}function ee(){this._events=new g0,this._eventsCount=0}ee.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)Ol.call(r,n)&&t.push(oe?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};ee.prototype.listeners=function(t){var r=oe?oe+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,a=new Array(s);i<s;i++)a[i]=n[i].fn;return a};ee.prototype.listenerCount=function(t){var r=oe?oe+t:t,n=this._events[r];return n?n.fn?1:n.length:0};ee.prototype.emit=function(t,r,n,i,s,a){var o=oe?oe+t:t;if(!this._events[o])return!1;var c=this._events[o],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,s),!0;case 6:return c.fn.call(c.context,r,n,i,s,a),!0}for(l=1,f=new Array(u-1);l<u;l++)f[l-1]=arguments[l];c.fn.apply(c.context,f)}else{var p=c.length,d;for(l=0;l<p;l++)switch(c[l].once&&this.removeListener(t,c[l].fn,void 0,!0),u){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,r);break;case 3:c[l].fn.call(c[l].context,r,n);break;case 4:c[l].fn.call(c[l].context,r,n,i);break;default:if(!f)for(d=1,f=new Array(u-1);d<u;d++)f[d-1]=arguments[d];c[l].fn.apply(c[l].context,f)}}return!0};ee.prototype.on=function(t,r,n){return g5(this,t,r,n,!1)};ee.prototype.once=function(t,r,n){return g5(this,t,r,n,!0)};ee.prototype.removeListener=function(t,r,n,i){var s=oe?oe+t:t;if(!this._events[s])return this;if(!r)return K1(this,s),this;var a=this._events[s];if(a.fn)a.fn===r&&(!i||a.once)&&(!n||a.context===n)&&K1(this,s);else{for(var o=0,c=[],u=a.length;o<u;o++)(a[o].fn!==r||i&&!a[o].once||n&&a[o].context!==n)&&c.push(a[o]);c.length?this._events[s]=c.length===1?c[0]:c:K1(this,s)}return this};ee.prototype.removeAllListeners=function(t){var r;return t?(r=oe?oe+t:t,this._events[r]&&K1(this,r)):(this._events=new g0,this._eventsCount=0),this};ee.prototype.off=ee.prototype.removeListener;ee.prototype.addListener=ee.prototype.on;ee.prefixed=oe;ee.EventEmitter=ee;typeof Co<"u"&&(Co.exports=ee)});var m9={};Ot(m9,{EventTypes:()=>$o,MessageType:()=>Go,Record:()=>Mt,kadDHT:()=>g9});var r2=Symbol.for("@libp2p/content-routing");var T0=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"},P=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var Xt=class extends EventTarget{#t=new Map;listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#t.get(t);i==null&&(i=[],this.#t.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#t.get(t);i!=null&&(i=i.filter(({callback:s})=>s!==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 Rt(t,r))}},pi=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},Rt=globalThis.CustomEvent??pi,jr=(e,...t)=>{try{[...t]}catch{}};var n2=Symbol.for("@libp2p/peer-discovery");var i2=Symbol.for("@libp2p/peer-routing");function j5(e){return e[Symbol.asyncIterator]!=null}function t8(e){if(j5(e))return(async()=>{for await(let t of e);})();for(let t of e);}var yi=t8;function qt(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}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}},tn=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 gi=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function en(e={}){return e8(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 e8(e,t){t=t??{};let r=t.onEnd,n=new tn,i,s,a,o=qt(),c=async()=>{try{return n.isEmpty()?a?{done:!0}:await new Promise((g,m)=>{s=x=>{s=null,n.push(x);try{g(e(n))}catch(v){m(v)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{o.resolve(),o=qt()})}},u=g=>s!=null?s(g):(n.push(g),i),f=g=>(n=new tn,s!=null?s({error:g}):(n.push({error:g}),i)),l=g=>{if(a)return i;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},p=g=>a?i:(a=!0,g!=null?f(g):u({done:!0})),d=()=>(n=new tn,p(),{done:!0}),h=g=>(p(g),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:d,throw:h,push:l,end:p,get readableLength(){return n.size},onEmpty:async g=>{let m=g?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let x,v;m!=null&&(x=new Promise((T,E)=>{v=()=>{E(new gi)},m.addEventListener("abort",v)}));try{await Promise.race([o.promise,x])}finally{v!=null&&m!=null&&m?.removeEventListener("abort",v)}}},r==null)return i;let y=i;return i={[Symbol.asyncIterator](){return this},next(){return y.next()},throw(g){return y.throw(g),r!=null&&(r(g),r=void 0),{done:!0}},return(){return y.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(g){return y.end(g),r!=null&&(r(g),r=void 0),i},get readableLength(){return y.readableLength},onEmpty:g=>y.onEmpty(g)},i}function r8(e){return e[Symbol.asyncIterator]!=null}function n8(...e){let t=[];for(let r of e)r8(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=en({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 xe=n8;var p2=Bt(s2(),1);var o2="[a-fA-F\\d:]",fr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${o2})|(?<=${o2})(?=\\s|$))`:"",ve="(?: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}",Ut="[a-fA-F\\d]{1,4}",C0=`
|
|
15
|
+
`+s+t.substr(a+1),o=i-a-1,a=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(a=i);return t}function Hc(e){return e.replace(/^\s+/,"")}});var T3=it((qm,B3)=>{var Ke=ut();Vr();Lt();var S3=B3.exports=Ke.sha256=Ke.sha256||{};Ke.md.sha256=Ke.md.algorithms.sha256=S3;S3.create=function(){I3||$c();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 a=i.length;n.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var s=n.fullMessageLength.length-1;s>=0;--s)n.fullMessageLength[s]+=a[1],a[1]=a[0]+(n.fullMessageLength[s]/4294967296>>>0),n.fullMessageLength[s]=n.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(i),E3(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,a=o&n.blockLength-1;i.putBytes(qo.substr(0,n.blockLength-a));for(var s,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)s=n.fullMessageLength[f+1]*8,c=s/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=s>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};E3(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 qo=null,I3=!1,A3=null;function $c(){qo="\x80",qo+=Ke.util.fillString("\0",64),A3=[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],I3=!0}function E3(e,t,r){for(var n,i,o,a,s,c,u,f,l,p,d,h,y,g,m,x=r.length();x>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(f=e.h0,l=e.h1,p=e.h2,d=e.h3,h=e.h4,y=e.h5,g=e.h6,m=e.h7,u=0;u<64;++u)a=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),s=g^h&(y^g),o=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),c=f&l|p&(f^l),n=m+a+s+A3[u]+t[u],i=o+c,m=g,g=y,y=h,h=d+n>>>0,d=p,p=l,l=f,f=n+i>>>0;e.h0=e.h0+f|0,e.h1=e.h1+l|0,e.h2=e.h2+p|0,e.h3=e.h3+d|0,e.h4=e.h4+h|0,e.h5=e.h5+y|0,e.h6=e.h6+g|0,e.h7=e.h7+m|0,x-=64}}});var C3=it((zm,_3)=>{var Me=ut();Lt();var l1=null;Me.util.isNodejs&&!Me.options.usePureJavaScript&&!process.versions["node-webkit"]&&(l1=c1());var Gc=_3.exports=Me.prng=Me.prng||{};Gc.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,f){if(!f)return t.generateSync(u);var l=t.plugin.cipher,p=t.plugin.increment,d=t.plugin.formatKey,h=t.plugin.formatSeed,y=Me.util.createBuffer();t.key=null,g();function g(m){if(m)return f(m);if(y.length()>=u)return f(null,y.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return Me.util.nextTick(function(){o(g)});var x=l(t.key,t.seed);t.generated+=x.length,y.putBytes(x),t.key=d(l(t.key,p(t.seed))),t.seed=h(l(t.key,t.seed)),Me.util.setImmediate(g)}},t.generateSync=function(u){var f=t.plugin.cipher,l=t.plugin.increment,p=t.plugin.formatKey,d=t.plugin.formatSeed;t.key=null;for(var h=Me.util.createBuffer();h.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&a();var y=f(t.key,t.seed);t.generated+=y.length,h.putBytes(y),t.key=p(f(t.key,l(t.seed))),t.seed=d(f(t.key,t.seed))}return h.getBytes(u)};function o(u){if(t.pools[0].messageLength>=32)return s(),u();var f=32-t.pools[0].messageLength<<5;t.seedFile(f,function(l,p){if(l)return u(l);t.collect(p),s(),u()})}function a(){if(t.pools[0].messageLength>=32)return s();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),s()}function s(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var u=t.plugin.md.create();u.update(t.keyBytes);for(var f=1,l=0;l<32;++l)t.reseeds%f===0&&(u.update(t.pools[l].digest().getBytes()),t.pools[l].start()),f=f<<1;t.keyBytes=u.digest().getBytes(),u.start(),u.update(t.keyBytes);var p=u.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(p),t.generated=0}function c(u){var f=null,l=Me.util.globalScope,p=l.crypto||l.msCrypto;p&&p.getRandomValues&&(f=function(E){return p.getRandomValues(E)});var d=Me.util.createBuffer();if(f)for(;d.length()<u;){var h=Math.max(1,Math.min(u-d.length(),65536)/4),y=new Uint32Array(Math.floor(h));try{f(y);for(var g=0;g<y.length;++g)d.putInt32(y[g])}catch(E){if(!(typeof QuotaExceededError<"u"&&E instanceof QuotaExceededError))throw E}}if(d.length()<u)for(var m,x,v,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 g=0;g<3;++g)v=T>>>(g<<3),v^=Math.floor(Math.random()*256),d.putByte(v&255)}return d.getBytes(u)}return l1?(t.seedFile=function(u,f){l1.randomBytes(u,function(l,p){if(l)return f(l);f(null,p.toString())})},t.seedFileSync=function(u){return l1.randomBytes(u).toString()}):(t.seedFile=function(u,f){try{f(null,c(u))}catch(l){f(l)}},t.seedFileSync=c),t.collect=function(u){for(var f=u.length,l=0;l<f;++l)t.pools[t.pool].update(u.substr(l,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,f){for(var l="",p=0;p<f;p+=8)l+=String.fromCharCode(u>>p&255);t.collect(l)},t.registerWorker=function(u){if(u===self)t.seedFile=function(l,p){function d(h){var y=h.data;y.forge&&y.forge.prng&&(self.removeEventListener("message",d),p(y.forge.prng.err,y.forge.prng.bytes))}self.addEventListener("message",d),self.postMessage({forge:{prng:{needed:l}}})};else{var f=function(l){var p=l.data;p.forge&&p.forge.prng&&t.seedFile(p.forge.prng.needed,function(d,h){u.postMessage({forge:{prng:{err:d,bytes:h}}})})};u.addEventListener("message",f)}},t}});var o0=it((Hm,zo)=>{var Gt=ut();n1();T3();C3();Lt();(function(){if(Gt.random&&Gt.random.getBytes){zo.exports=Gt.random;return}(function(e){var t={},r=new Array(4),n=Gt.util.createBuffer();t.formatKey=function(l){var p=Gt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),Gt.aes._expandKey(l,!1)},t.formatSeed=function(l){var p=Gt.util.createBuffer(l);return l=new Array(4),l[0]=p.getInt32(),l[1]=p.getInt32(),l[2]=p.getInt32(),l[3]=p.getInt32(),l},t.cipher=function(l,p){return Gt.aes._updateBlock(l,p,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(l){return++l[3],l},t.md=Gt.md.sha256;function i(){var l=Gt.prng.create(t);return l.getBytes=function(p,d){return l.generate(p,d)},l.getBytesSync=function(p){return l.generate(p)},l}var o=i(),a=null,s=Gt.util.globalScope,c=s.crypto||s.msCrypto;if(c&&c.getRandomValues&&(a=function(l){return c.getRandomValues(l)}),Gt.options.usePureJavaScript||!Gt.util.isNodejs&&!a){if(typeof window>"u"||window.document,o.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var f in navigator)try{typeof navigator[f]=="string"&&(u+=navigator[f])}catch{}o.collect(u),u=null}e&&(e().mousemove(function(l){o.collectInt(l.clientX,16),o.collectInt(l.clientY,16)}),e().keypress(function(l){o.collectInt(l.charCode,8)}))}if(!Gt.random)Gt.random=o;else for(var f in o)Gt.random[f]=o[f];Gt.random.createInstance=i,zo.exports=Gt.random})(typeof jQuery<"u"?jQuery:null)})()});var N3=it(($m,L3)=>{var ce=ut();Lt();var Ho=[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],R3=[1,2,3,5],Qc=function(e,t){return e<<t&65535|(e&65535)>>16-t},Yc=function(e,t){return(e&65535)>>t|e<<16-t&65535};L3.exports=ce.rc2=ce.rc2||{};ce.rc2.expandKey=function(e,t){typeof e=="string"&&(e=ce.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,o=Math.ceil(i/8),a=255>>(i&7),s;for(s=n;s<128;s++)r.putByte(Ho[r.at(s-1)+r.at(s-n)&255]);for(r.setAt(128-o,Ho[r.at(128-o)&a]),s=127-o;s>=0;s--)r.setAt(s,Ho[r.at(s+1)^r.at(s+o)]);return r};var P3=function(e,t,r){var n=!1,i=null,o=null,a=null,s,c,u,f,l=[];for(e=ce.rc2.expandKey(e,t),u=0;u<64;u++)l.push(e.getInt16Le());r?(s=function(h){for(u=0;u<4;u++)h[u]+=l[f]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),h[u]=Qc(h[u],R3[u]),f++},c=function(h){for(u=0;u<4;u++)h[u]+=l[h[(u+3)%4]&63]}):(s=function(h){for(u=3;u>=0;u--)h[u]=Yc(h[u],R3[u]),h[u]-=l[f]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),f--},c=function(h){for(u=3;u>=0;u--)h[u]-=l[h[(u+3)%4]&63]});var p=function(h){var y=[];for(u=0;u<4;u++){var g=i.getInt16Le();a!==null&&(r?g^=a.getInt16Le():a.putInt16Le(g)),y.push(g&65535)}f=r?0:63;for(var m=0;m<h.length;m++)for(var x=0;x<h[m][0];x++)h[m][1](y);for(u=0;u<4;u++)a!==null&&(r?a.putInt16Le(y[u]):y[u]^=a.getInt16Le()),o.putInt16Le(y[u])},d=null;return d={start:function(h,y){h&&typeof h=="string"&&(h=ce.util.createBuffer(h)),n=!1,i=ce.util.createBuffer(),o=y||new ce.util.createBuffer,a=h,d.output=o},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)p([[5,s],[1,c],[6,s],[1,c],[5,s]])},finish:function(h){var y=!0;if(r)if(h)y=h(8,i,!r);else{var g=i.length()===8?8:8-i.length();i.fillWithByte(g,g)}if(y&&(n=!0,d.update()),!r&&(y=i.length()===0,y))if(h)y=h(8,o,!r);else{var m=o.length(),x=o.at(m-1);x>m?y=!1:o.truncate(x)}return y}},d};ce.rc2.startEncrypting=function(e,t,r){var n=ce.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};ce.rc2.createEncryptionCipher=function(e,t){return P3(e,t,!0)};ce.rc2.startDecrypting=function(e,t,r){var n=ce.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};ce.rc2.createDecryptionCipher=function(e,t){return P3(e,t,!1)}});var p1=it((Gm,V3)=>{var $o=ut();V3.exports=$o.jsbn=$o.jsbn||{};var tr,Wc=0xdeadbeefcafe,D3=(Wc&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))}$o.jsbn.BigInteger=B;function rt(){return new B(null)}function Zc(e,t,r,n,i,o){for(;--o>=0;){var a=t*this.data[e++]+r.data[n]+i;i=Math.floor(a/67108864),r.data[n++]=a&67108863}return i}function Xc(e,t,r,n,i,o){for(var a=t&32767,s=t>>15;--o>=0;){var c=this.data[e]&32767,u=this.data[e++]>>15,f=s*c+u*a;c=a*c+((f&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(f>>>15)+s*u+(i>>>30),r.data[n++]=c&1073741823}return i}function k3(e,t,r,n,i,o){for(var a=t&16383,s=t>>14;--o>=0;){var c=this.data[e]&16383,u=this.data[e++]>>14,f=s*c+u*a;c=a*c+((f&16383)<<14)+r.data[n]+i,i=(c>>28)+(f>>14)+s*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(B.prototype.am=k3,tr=28):D3&&navigator.appName=="Microsoft Internet Explorer"?(B.prototype.am=Xc,tr=30):D3&&navigator.appName!="Netscape"?(B.prototype.am=Zc,tr=26):(B.prototype.am=k3,tr=28);B.prototype.DB=tr;B.prototype.DM=(1<<tr)-1;B.prototype.DV=1<<tr;var Go=52;B.prototype.FV=Math.pow(2,Go);B.prototype.F1=Go-tr;B.prototype.F2=2*tr-Go;var Jc="0123456789abcdefghijklmnopqrstuvwxyz",h1=new Array,An,ye;An=48;for(ye=0;ye<=9;++ye)h1[An++]=ye;An=97;for(ye=10;ye<36;++ye)h1[An++]=ye;An=65;for(ye=10;ye<36;++ye)h1[An++]=ye;function O3(e){return Jc.charAt(e)}function U3(e,t){var r=h1[e.charCodeAt(t)];return r??-1}function jc(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 tu(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=rt();return t.fromInt(e),t}function eu(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,i=!1,o=0;--n>=0;){var a=r==8?e[n]&255:U3(e,n);if(a<0){e.charAt(n)=="-"&&(i=!0);continue}i=!1,o==0?this.data[this.t++]=a:o+r>this.DB?(this.data[this.t-1]|=(a&(1<<this.DB-o)-1)<<o,this.data[this.t++]=a>>this.DB-o):this.data[this.t-1]|=a<<o,o+=r,o>=this.DB&&(o-=this.DB)}r==8&&e[0]&128&&(this.s=-1,o>0&&(this.data[this.t-1]|=(1<<this.DB-o)-1<<o)),this.clamp(),i&&B.ZERO.subTo(this,this)}function ru(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function nu(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<<t)-1,n,i=!1,o="",a=this.t,s=this.DB-a*this.DB%t;if(a-- >0)for(s<this.DB&&(n=this.data[a]>>s)>0&&(i=!0,o=O3(n));a>=0;)s<t?(n=(this.data[a]&(1<<s)-1)<<t-s,n|=this.data[--a]>>(s+=this.DB-t)):(n=this.data[a]>>(s-=t)&r,s<=0&&(s+=this.DB,--a)),n>0&&(i=!0),i&&(o+=O3(n));return i?o:"0"}function iu(){var e=rt();return B.ZERO.subTo(this,e),e}function ou(){return this.s<0?this.negate():this}function su(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 d1(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 au(){return this.t<=0?0:this.DB*(this.t-1)+d1(this.data[this.t-1]^this.s&this.DM)}function cu(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 uu(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 fu(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,o=Math.floor(e/this.DB),a=this.s<<r&this.DM,s;for(s=this.t-1;s>=0;--s)t.data[s+o+1]=this.data[s]>>n|a,a=(this.data[s]&i)<<r;for(s=o-1;s>=0;--s)t.data[s]=0;t.data[o]=a,t.t=this.t+o+1,t.s=this.s,t.clamp()}function lu(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}var n=e%this.DB,i=this.DB-n,o=(1<<n)-1;t.data[0]=this.data[r]>>n;for(var a=r+1;a<this.t;++a)t.data[a-r-1]|=(this.data[a]&o)<<i,t.data[a-r]=this.data[a]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&o)<<i),t.t=this.t-r,t.clamp()}function hu(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 du(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 pu(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 yu(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(),a=this.s,s=e.s,c=this.DB-d1(n.data[n.t-1]);c>0?(n.lShiftTo(c,o),i.lShiftTo(c,r)):(n.copyTo(o),i.copyTo(r));var u=o.t,f=o.data[u-1];if(f!=0){var l=f*(1<<this.F1)+(u>1?o.data[u-2]>>this.F2:0),p=this.FV/l,d=(1<<this.F1)/l,h=1<<this.F2,y=r.t,g=y-u,m=t??rt();for(o.dlShiftTo(g,m),r.compareTo(m)>=0&&(r.data[r.t++]=1,r.subTo(m,r)),B.ONE.dlShiftTo(u,m),m.subTo(o,o);o.t<u;)o.data[o.t++]=0;for(;--g>=0;){var x=r.data[--y]==f?this.DM:Math.floor(r.data[y]*p+(r.data[y-1]+h)*d);if((r.data[y]+=o.am(0,x,r,g,0,u))<x)for(o.dlShiftTo(g,m),r.subTo(m,r);r.data[y]<--x;)r.subTo(m,r)}t!=null&&(r.drShiftTo(u,t),a!=s&&B.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),a<0&&B.ZERO.subTo(r,r)}}}function gu(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 qr(e){this.m=e}function mu(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function xu(e){return e}function vu(e){e.divRemTo(this.m,null,e)}function bu(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function wu(e,t){e.squareTo(t),this.reduce(t)}qr.prototype.convert=mu;qr.prototype.revert=xu;qr.prototype.reduce=vu;qr.prototype.mulTo=bu;qr.prototype.sqrTo=wu;function Eu(){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 zr(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 Su(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 Iu(e){var t=rt();return e.copyTo(t),this.reduce(t),t}function Au(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 Bu(e,t){e.squareTo(t),this.reduce(t)}function Tu(e,t,r){e.multiplyTo(t,r),this.reduce(r)}zr.prototype.convert=Su;zr.prototype.revert=Iu;zr.prototype.reduce=Au;zr.prototype.mulTo=Tu;zr.prototype.sqrTo=Bu;function _u(){return(this.t>0?this.data[0]&1:this.s)==0}function Cu(e,t){if(e>4294967295||e<1)return B.ONE;var r=rt(),n=rt(),i=t.convert(this),o=d1(e)-1;for(i.copyTo(r);--o>=0;)if(t.sqrTo(r,n),(e&1<<o)>0)t.mulTo(n,i,r);else{var a=r;r=n,n=a}return t.revert(r)}function Ru(e,t){var r;return e<256||t.isEven()?r=new qr(t):r=new zr(t),this.exp(e,r)}B.prototype.copyTo=jc;B.prototype.fromInt=tu;B.prototype.fromString=eu;B.prototype.clamp=ru;B.prototype.dlShiftTo=cu;B.prototype.drShiftTo=uu;B.prototype.lShiftTo=fu;B.prototype.rShiftTo=lu;B.prototype.subTo=hu;B.prototype.multiplyTo=du;B.prototype.squareTo=pu;B.prototype.divRemTo=yu;B.prototype.invDigit=Eu;B.prototype.isEven=_u;B.prototype.exp=Cu;B.prototype.toString=nu;B.prototype.negate=iu;B.prototype.abs=ou;B.prototype.compareTo=su;B.prototype.bitLength=au;B.prototype.mod=gu;B.prototype.modPowInt=Ru;B.ZERO=wr(0);B.ONE=wr(1);function Pu(){var e=rt();return this.copyTo(e),e}function Lu(){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 Nu(){return this.t==0?this.s:this.data[0]<<24>>24}function Du(){return this.t==0?this.s:this.data[0]<<16>>16}function ku(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function Ou(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Uu(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=rt(),o=rt(),a="";for(this.divRemTo(n,i,o);i.signum()>0;)a=(r+o.intValue()).toString(e).substr(1)+a,i.divRemTo(n,i,o);return o.intValue().toString(e)+a}function Fu(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,o=0,a=0,s=0;s<e.length;++s){var c=U3(e,s);if(c<0){e.charAt(s)=="-"&&this.signum()==0&&(i=!0);continue}a=t*a+c,++o>=r&&(this.dMultiply(n),this.dAddOffset(a,0),o=0,a=0)}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(a,0)),i&&B.ZERO.subTo(this,this)}function Ku(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 Mu(){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 Vu(e){return this.compareTo(e)==0}function qu(e){return this.compareTo(e)<0?this:e}function zu(e){return this.compareTo(e)>0?this:e}function Hu(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 $u(e,t){return e&t}function Gu(e){var t=rt();return this.bitwiseTo(e,$u,t),t}function Qo(e,t){return e|t}function Qu(e){var t=rt();return this.bitwiseTo(e,Qo,t),t}function F3(e,t){return e^t}function Yu(e){var t=rt();return this.bitwiseTo(e,F3,t),t}function K3(e,t){return e&~t}function Wu(e){var t=rt();return this.bitwiseTo(e,K3,t),t}function Zu(){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 Xu(e){var t=rt();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function Ju(e){var t=rt();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function ju(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 tf(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+ju(this.data[e]);return this.s<0?this.t*this.DB:-1}function ef(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function rf(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=ef(this.data[r]^t);return e}function nf(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function of(e,t){var r=B.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function sf(e){return this.changeBit(e,Qo)}function af(e){return this.changeBit(e,K3)}function cf(e){return this.changeBit(e,F3)}function uf(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 ff(e){var t=rt();return this.addTo(e,t),t}function lf(e){var t=rt();return this.subTo(e,t),t}function hf(e){var t=rt();return this.multiplyTo(e,t),t}function df(e){var t=rt();return this.divRemTo(e,t,null),t}function pf(e){var t=rt();return this.divRemTo(e,null,t),t}function yf(e){var t=rt(),r=rt();return this.divRemTo(e,t,r),new Array(t,r)}function gf(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function mf(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 s0(){}function M3(e){return e}function xf(e,t,r){e.multiplyTo(t,r)}function vf(e,t){e.squareTo(t)}s0.prototype.convert=M3;s0.prototype.revert=M3;s0.prototype.mulTo=xf;s0.prototype.sqrTo=vf;function bf(e){return this.exp(e,new s0)}function wf(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 Ef(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 Sf(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 If(e){return e}function Af(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 Bf(e,t){e.squareTo(t),this.reduce(t)}function Tf(e,t,r){e.multiplyTo(t,r),this.reduce(r)}Bn.prototype.convert=Sf;Bn.prototype.revert=If;Bn.prototype.reduce=Af;Bn.prototype.mulTo=Tf;Bn.prototype.sqrTo=Bf;function _f(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 qr(t):t.isEven()?o=new Bn(t):o=new zr(t);var a=new Array,s=3,c=n-1,u=(1<<n)-1;if(a[1]=o.convert(this),n>1){var f=rt();for(o.sqrTo(a[1],f);s<=u;)a[s]=rt(),o.mulTo(f,a[s-2],a[s]),s+=2}var l=e.t-1,p,d=!0,h=rt(),y;for(r=d1(e.data[l])-1;l>=0;){for(r>=c?p=e.data[l]>>r-c&u:(p=(e.data[l]&(1<<r+1)-1)<<c-r,l>0&&(p|=e.data[l-1]>>this.DB+r-c)),s=n;!(p&1);)p>>=1,--s;if((r-=s)<0&&(r+=this.DB,--l),d)a[p].copyTo(i),d=!1;else{for(;s>1;)o.sqrTo(i,h),o.sqrTo(h,i),s-=2;s>0?o.sqrTo(i,h):(y=i,i=h,h=y),o.mulTo(h,a[p],i)}for(;l>=0&&!(e.data[l]&1<<r);)o.sqrTo(i,h),y=i,i=h,h=y,--r<0&&(r=this.DB-1,--l)}return o.revert(i)}function Cf(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 Rf(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 Pf(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),a=wr(0),s=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?((!a.isEven()||!s.isEven())&&(a.addTo(this,a),s.subTo(e,s)),a.rShiftTo(1,a)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(a,i),o.subTo(s,o)):(n.subTo(r,n),t&&a.subTo(i,a),s.subTo(o,s))}if(n.compareTo(B.ONE)!=0)return B.ZERO;if(s.compareTo(e)>=0)return s.subtract(e);if(s.signum()<0)s.addTo(e,s);else return s;return s.signum()<0?s.add(e):s}var Ie=[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],Lf=(1<<26)/Ie[Ie.length-1];function Nf(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=Ie[Ie.length-1]){for(t=0;t<Ie.length;++t)if(r.data[0]==Ie[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<Ie.length;){for(var n=Ie[t],i=t+1;i<Ie.length&&n<Lf;)n*=Ie[i++];for(n=r.modInt(n);t<i;)if(n%Ie[t++]==0)return!1}return r.millerRabin(e)}function Df(e){var t=this.subtract(B.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=kf(),o,a=0;a<e;++a){do o=new B(this.bitLength(),i);while(o.compareTo(B.ONE)<=0||o.compareTo(t)>=0);var s=o.modPow(n,this);if(s.compareTo(B.ONE)!=0&&s.compareTo(t)!=0){for(var c=1;c++<r&&s.compareTo(t)!=0;)if(s=s.modPowInt(2,this),s.compareTo(B.ONE)==0)return!1;if(s.compareTo(t)!=0)return!1}}return!0}function kf(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}B.prototype.chunkSize=ku;B.prototype.toRadix=Uu;B.prototype.fromRadix=Fu;B.prototype.fromNumber=Ku;B.prototype.bitwiseTo=Hu;B.prototype.changeBit=of;B.prototype.addTo=uf;B.prototype.dMultiply=gf;B.prototype.dAddOffset=mf;B.prototype.multiplyLowerTo=wf;B.prototype.multiplyUpperTo=Ef;B.prototype.modInt=Rf;B.prototype.millerRabin=Df;B.prototype.clone=Pu;B.prototype.intValue=Lu;B.prototype.byteValue=Nu;B.prototype.shortValue=Du;B.prototype.signum=Ou;B.prototype.toByteArray=Mu;B.prototype.equals=Vu;B.prototype.min=qu;B.prototype.max=zu;B.prototype.and=Gu;B.prototype.or=Qu;B.prototype.xor=Yu;B.prototype.andNot=Wu;B.prototype.not=Zu;B.prototype.shiftLeft=Xu;B.prototype.shiftRight=Ju;B.prototype.getLowestSetBit=tf;B.prototype.bitCount=rf;B.prototype.testBit=nf;B.prototype.setBit=sf;B.prototype.clearBit=af;B.prototype.flipBit=cf;B.prototype.add=ff;B.prototype.subtract=lf;B.prototype.multiply=hf;B.prototype.divide=df;B.prototype.remainder=pf;B.prototype.divideAndRemainder=yf;B.prototype.modPow=_f;B.prototype.modInverse=Pf;B.prototype.pow=bf;B.prototype.gcd=Cf;B.prototype.isProbablePrime=Nf});var G3=it((Qm,$3)=>{var Ve=ut();Vr();Lt();var z3=$3.exports=Ve.sha1=Ve.sha1||{};Ve.md.sha1=Ve.md.algorithms.sha1=z3;z3.create=function(){H3||Of();var e=null,t=Ve.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=Ve.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,o){o==="utf8"&&(i=Ve.util.encodeUtf8(i));var a=i.length;n.messageLength+=a,a=[a/4294967296>>>0,a>>>0];for(var s=n.fullMessageLength.length-1;s>=0;--s)n.fullMessageLength[s]+=a[1],a[1]=a[0]+(n.fullMessageLength[s]/4294967296>>>0),n.fullMessageLength[s]=n.fullMessageLength[s]>>>0,a[0]=a[1]/4294967296>>>0;return t.putBytes(i),q3(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Ve.util.createBuffer();i.putBytes(t.bytes());var o=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,a=o&n.blockLength-1;i.putBytes(Yo.substr(0,n.blockLength-a));for(var s,c,u=n.fullMessageLength[0]*8,f=0;f<n.fullMessageLength.length-1;++f)s=n.fullMessageLength[f+1]*8,c=s/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=s>>>0;i.putInt32(u);var l={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};q3(l,r,i);var p=Ve.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 Yo=null,H3=!1;function Of(){Yo="\x80",Yo+=Ve.util.fillString("\0",64),H3=!0}function q3(e,t,r){for(var n,i,o,a,s,c,u,f,l=r.length();l>=64;){for(i=e.h0,o=e.h1,a=e.h2,s=e.h3,c=e.h4,f=0;f<16;++f)n=r.getInt32(),t[f]=n,u=s^o&(a^s),n=(i<<5|i>>>27)+u+c+1518500249+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<20;++f)n=t[f-3]^t[f-8]^t[f-14]^t[f-16],n=n<<1|n>>>31,t[f]=n,u=s^o&(a^s),n=(i<<5|i>>>27)+u+c+1518500249+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<32;++f)n=t[f-3]^t[f-8]^t[f-14]^t[f-16],n=n<<1|n>>>31,t[f]=n,u=o^a^s,n=(i<<5|i>>>27)+u+c+1859775393+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<40;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o^a^s,n=(i<<5|i>>>27)+u+c+1859775393+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<60;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o&a|s&(o^a),n=(i<<5|i>>>27)+u+c+2400959708+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;for(;f<80;++f)n=t[f-6]^t[f-16]^t[f-28]^t[f-32],n=n<<2|n>>>30,t[f]=n,u=o^a^s,n=(i<<5|i>>>27)+u+c+3395469782+n,c=s,s=a,a=(o<<30|o>>>2)>>>0,o=i,i=n;e.h0=e.h0+i|0,e.h1=e.h1+o|0,e.h2=e.h2+a|0,e.h3=e.h3+s|0,e.h4=e.h4+c|0,l-=64}}});var W3=it((Ym,Y3)=>{var qe=ut();Lt();o0();G3();var Q3=Y3.exports=qe.pkcs1=qe.pkcs1||{};Q3.encode_rsa_oaep=function(e,t,r){var n,i,o,a;typeof r=="string"?(n=r,i=arguments[3]||void 0,o=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,o=r.md||void 0,r.mgf1&&r.mgf1.md&&(a=r.mgf1.md)),o?o.start():o=qe.md.sha1.create(),a||(a=o);var s=Math.ceil(e.n.bitLength()/8),c=s-2*o.digestLength-2;if(t.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=t.length,u.maxLength=c,u}n||(n=""),o.update(n,"raw");for(var f=o.digest(),l="",p=c-t.length,d=0;d<p;d++)l+="\0";var h=f.getBytes()+l+""+t;if(!i)i=qe.random.getBytes(o.digestLength);else if(i.length!==o.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=o.digestLength,u}var y=y1(i,s-o.digestLength-1,a),g=qe.util.xorBytes(h,y,h.length),m=y1(g,o.digestLength,a),x=qe.util.xorBytes(i,m,i.length);return"\0"+x+g};Q3.decode_rsa_oaep=function(e,t,r){var n,i,o;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md));var a=Math.ceil(e.n.bitLength()/8);if(t.length!==a){var g=new Error("RSAES-OAEP encoded message length is invalid.");throw g.length=t.length,g.expectedLength=a,g}if(i===void 0?i=qe.md.sha1.create():i.start(),o||(o=i),a<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var s=i.digest().getBytes(),c=t.charAt(0),u=t.substring(1,i.digestLength+1),f=t.substring(1+i.digestLength),l=y1(f,i.digestLength,o),p=qe.util.xorBytes(u,l,u.length),d=y1(p,a-i.digestLength-1,o),h=qe.util.xorBytes(f,d,f.length),y=h.substring(0,i.digestLength),g=c!=="\0",m=0;m<i.digestLength;++m)g|=s.charAt(m)!==y.charAt(m);for(var x=1,v=i.digestLength,T=i.digestLength;T<h.length;T++){var E=h.charCodeAt(T),S=E&1^1,L=x?65534:0;g|=E&L,x=x&S,v+=x}if(g||h.charCodeAt(v)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(v+1)};function y1(e,t,r){r||(r=qe.md.sha1.create());for(var n="",i=Math.ceil(t/r.digestLength),o=0;o<i;++o){var a=String.fromCharCode(o>>24&255,o>>16&255,o>>8&255,o&255);r.start(),r.update(e+a),n+=r.digest().getBytes()}return n.substring(0,t)}});var Z3=it((Wm,Wo)=>{var Er=ut();Lt();p1();o0();(function(){if(Er.prime){Wo.exports=Er.prime;return}var e=Wo.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 y=p.prng||Er.random,g={nextBytes:function(m){for(var x=y.getBytesSync(m.length),v=0;v<m.length;++v)m[v]=x.charCodeAt(v)}};if(h.name==="PRIMEINC")return o(l,g,h.options,d);throw new Error("Invalid prime generation algorithm: "+h.name)};function o(l,p,d,h){return"workers"in d?c(l,p,d,h):a(l,p,d,h)}function a(l,p,d,h){var y=u(l,p),g=0,m=f(y.bitLength());"millerRabinTests"in d&&(m=d.millerRabinTests);var x=10;"maxBlockTime"in d&&(x=d.maxBlockTime),s(y,l,p,g,m,x,h)}function s(l,p,d,h,y,g,m){var x=+new Date;do{if(l.bitLength()>p&&(l=u(p,d)),l.isProbablePrime(y))return m(null,l);l.dAddOffset(r[h++%8],0)}while(g<0||+new Date-x<g);Er.util.setImmediate(function(){s(l,p,d,h,y,g,m)})}function c(l,p,d,h){if(typeof Worker>"u")return a(l,p,d,h);var y=u(l,p),g=d.workers,m=d.workLoad||100,x=m*30/8,v=d.workerScript||"forge/prime.worker.js";if(g===-1)return Er.util.estimateCores(function(E,S){E&&(S=2),g=S-1,T()});T();function T(){g=Math.max(1,g);for(var E=[],S=0;S<g;++S)E[S]=new Worker(v);for(var L=g,S=0;S<g;++S)E[S].addEventListener("message",G);var N=!1;function G($){if(!N){--L;var q=$.data;if(q.found){for(var J=0;J<E.length;++J)E[J].terminate();return N=!0,h(null,new t(q.prime,16))}y.bitLength()>l&&(y=u(l,p));var ft=y.toString(16);$.target.postMessage({hex:ft,workLoad:m}),y.dAddOffset(x,0)}}}}function u(l,p){var d=new t(l,p),h=l-1;return d.testBit(h)||d.bitwiseTo(t.ONE.shiftLeft(h),i,d),d.dAddOffset(31-d.mod(n).byteValue(),0),d}function f(l){return l<=100?27:l<=150?18:l<=200?15:l<=250?12:l<=300?9:l<=350?8:l<=400?7:l<=500?6:l<=600?5:l<=800?4:l<=1250?3:2}})()});var m1=it((Zm,n4)=>{var V=ut();i0();p1();i1();W3();Z3();o0();Lt();typeof et>"u"&&(et=V.jsbn.BigInteger);var et,Zo=V.util.isNodejs?c1():null,w=V.asn1,ge=V.util;V.pki=V.pki||{};n4.exports=V.pki.rsa=V.rsa=V.rsa||{};var Q=V.pki,Uf=[6,4,2,4,2,4,6,2],Ff={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"}]},Kf={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"}]},Mf={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"}]},Vf=V.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:w.Class.UNIVERSAL,type:w.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:w.Class.UNIVERSAL,type:w.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},qf={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"}]},zf=function(e){var t;if(e.algorithm in Q.oids)t=Q.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=w.oidToDer(t).getBytes(),i=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]),o=w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[]);o.value.push(w.create(w.Class.UNIVERSAL,w.Type.OID,!1,n)),o.value.push(w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,""));var a=w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(o),i.value.push(a),w.toDer(i).getBytes()},e4=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(V.util.bytesToHex(V.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 a=i.subtract(o).multiply(t.qInv).mod(t.p).multiply(t.q).add(o);return a=a.multiply(n.modInverse(t.n)).mod(t.n),a};Q.rsa.encrypt=function(e,t,r){var n=r,i,o=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=r4(e,t,r)):(i=V.util.createBuffer(),i.putBytes(e));for(var a=new et(i.toHex(),16),s=e4(a,t,n),c=s.toString(16),u=V.util.createBuffer(),f=o-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),u.getBytes()};Q.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var o=new Error("Encrypted message length is invalid.");throw o.length=e.length,o.expected=i,o}var a=new et(V.util.createBuffer(e).toHex(),16);if(a.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var s=e4(a,t,r),c=s.toString(16),u=V.util.createBuffer(),f=i-Math.ceil(c.length/2);f>0;)u.putByte(0),--f;return u.putBytes(V.util.hexToBytes(c)),n!==!1?g1(u.getBytes(),t,r):u.getBytes()};Q.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,r=r||{};var n=r.prng||V.random,i={nextBytes:function(s){for(var c=n.getBytesSync(s.length),u=0;u<s.length;++u)s[u]=c.charCodeAt(u)}},o=r.algorithm||"PRIMEINC",a;if(o==="PRIMEINC")a={algorithm:o,state:0,bits:e,rng:i,eInt:t||65537,e:new et(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},a.e.fromInt(a.eInt);else throw new Error("Invalid key generation algorithm: "+o);return a};Q.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new et(null);r.fromInt(30);for(var n=0,i=function(l,p){return l|p},o=+new Date,a,s=0;e.keys===null&&(t<=0||s<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new 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($f(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(Uf[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:Q.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)}}a=+new Date,s+=a-o,o=a}return e.keys!==null};Q.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!V.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(X3("generateKeyPair"))return Zo.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(s,c,u){if(s)return n(s);n(null,{privateKey:Q.privateKeyFromPem(u),publicKey:Q.publicKeyFromPem(c)})});if(J3("generateKey")&&J3("exportKey"))return ge.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:t4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(s){return ge.globalScope.crypto.subtle.exportKey("pkcs8",s.privateKey)}).then(void 0,function(s){n(s)}).then(function(s){if(s){var c=Q.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(s)));n(null,{privateKey:c,publicKey:Q.setRsaPublicKey(c.n,c.e)})}});if(j3("generateKey")&&j3("exportKey")){var i=ge.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:t4(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(s){var c=s.target.result,u=ge.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(f){var l=f.target.result,p=Q.privateKeyFromAsn1(w.fromDer(V.util.createBuffer(l)));n(null,{privateKey:p,publicKey:Q.setRsaPublicKey(p.n,p.e)})},u.onerror=function(f){n(f)}},i.onerror=function(s){n(s)};return}}else if(X3("generateKeyPairSync")){var o=Zo.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Q.privateKeyFromPem(o.privateKey),publicKey:Q.publicKeyFromPem(o.publicKey)}}}var a=Q.rsa.createKeyPairGenerationState(e,t,r);if(!n)return Q.rsa.stepKeyPairGenerationState(a,0),a.keys;Hf(a,r,n)};Q.setRsaPublicKey=Q.rsa.setPublicKey=function(e,t){var r={n:e,e:t};return r.encrypt=function(n,i,o){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(s,c,u){return r4(s,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(s,c){return V.pkcs1.encode_rsa_oaep(c,s,o)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(s){return s}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var a=i.encode(n,r,!0);return Q.rsa.encrypt(a,r,!0)},r.verify=function(n,i,o,a){typeof o=="string"?o=o.toUpperCase():o===void 0&&(o="RSASSA-PKCS1-V1_5"),a===void 0&&(a={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in a||(a._parseAllDigestBytes=!0),o==="RSASSA-PKCS1-V1_5"?o={verify:function(c,u){u=g1(u,r,!0);var f=w.fromDer(u,{parseAllBytes:a._parseAllDigestBytes}),l={},p=[];if(!w.validate(f,qf,l,p)){var d=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw d.errors=p,d}var h=w.derToOid(l.algorithmIdentifier);if(!(h===V.oids.md2||h===V.oids.md5||h===V.oids.sha1||h===V.oids.sha224||h===V.oids.sha256||h===V.oids.sha384||h===V.oids.sha512||h===V.oids["sha512-224"]||h===V.oids["sha512-256"])){var d=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw d.oid=h,d}if((h===V.oids.md2||h===V.oids.md5)&&!("parameters"in l))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===l.digest}}:(o==="NONE"||o==="NULL"||o===null)&&(o={verify:function(c,u){return u=g1(u,r,!0),c===u}});var s=Q.rsa.decrypt(i,r,!0,!1);return o.verify(n,s,r.n.bitLength())},r};Q.setRsaPrivateKey=Q.rsa.setPrivateKey=function(e,t,r,n,i,o,a,s){var c={n:e,e:t,d:r,p:n,q:i,dP:o,dQ:a,qInv:s};return c.decrypt=function(u,f,l){typeof f=="string"?f=f.toUpperCase():f===void 0&&(f="RSAES-PKCS1-V1_5");var p=Q.rsa.decrypt(u,c,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:g1};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(d,h){return V.pkcs1.decode_rsa_oaep(h,d,l)}};else if(["RAW","NONE","NULL",null].indexOf(f)!==-1)f={decode:function(d){return d}};else throw new Error('Unsupported encryption scheme: "'+f+'".');return f.decode(p,c,!1)},c.sign=function(u,f){var l=!1;typeof f=="string"&&(f=f.toUpperCase()),f===void 0||f==="RSASSA-PKCS1-V1_5"?(f={encode:zf},l=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return u}},l=1);var p=f.encode(u,c.n.bitLength());return Q.rsa.encrypt(p,c,l)},c};Q.wrapRsaPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer(Q.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.OCTETSTRING,!1,w.toDer(e).getBytes())])};Q.privateKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,Ff,t,r)&&(e=w.fromDer(V.util.createBuffer(t.privateKey))),t={},r=[],!w.validate(e,Kf,t,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,o,a,s,c,u,f,l;return i=V.util.createBuffer(t.privateKeyModulus).toHex(),o=V.util.createBuffer(t.privateKeyPublicExponent).toHex(),a=V.util.createBuffer(t.privateKeyPrivateExponent).toHex(),s=V.util.createBuffer(t.privateKeyPrime1).toHex(),c=V.util.createBuffer(t.privateKeyPrime2).toHex(),u=V.util.createBuffer(t.privateKeyExponent1).toHex(),f=V.util.createBuffer(t.privateKeyExponent2).toHex(),l=V.util.createBuffer(t.privateKeyCoefficient).toHex(),Q.setRsaPrivateKey(new et(i,16),new et(o,16),new et(a,16),new et(s,16),new et(c,16),new et(u,16),new et(f,16),new et(l,16))};Q.privateKeyToAsn1=Q.privateKeyToRSAPrivateKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,w.integerToDer(0).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,ze(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,ze(e.e)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,ze(e.d)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,ze(e.p)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,ze(e.q)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,ze(e.dP)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,ze(e.dQ)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,ze(e.qInv))])};Q.publicKeyFromAsn1=function(e){var t={},r=[];if(w.validate(e,Vf,t,r)){var n=w.derToOid(t.publicKeyOid);if(n!==Q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!w.validate(e,Mf,t,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var o=V.util.createBuffer(t.publicKeyModulus).toHex(),a=V.util.createBuffer(t.publicKeyExponent).toHex();return Q.setRsaPublicKey(new et(o,16),new et(a,16))};Q.publicKeyToAsn1=Q.publicKeyToSubjectPublicKeyInfo=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.OID,!1,w.oidToDer(Q.oids.rsaEncryption).getBytes()),w.create(w.Class.UNIVERSAL,w.Type.NULL,!1,"")]),w.create(w.Class.UNIVERSAL,w.Type.BITSTRING,!1,[Q.publicKeyToRSAPublicKey(e)])])};Q.publicKeyToRSAPublicKey=function(e){return w.create(w.Class.UNIVERSAL,w.Type.SEQUENCE,!0,[w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,ze(e.n)),w.create(w.Class.UNIVERSAL,w.Type.INTEGER,!1,ze(e.e))])};function r4(e,t,r){var n=V.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var o=new Error("Message is too long for PKCS#1 v1.5 padding.");throw o.length=e.length,o.max=i-11,o}n.putByte(0),n.putByte(r);var a=i-3-e.length,s;if(r===0||r===1){s=r===0?0:255;for(var c=0;c<a;++c)n.putByte(s)}else for(;a>0;){for(var u=0,f=V.random.getBytes(a),c=0;c<a;++c)s=f.charCodeAt(c),s===0?++u:n.putByte(s);a=u}return n.putByte(0),n.putBytes(e),n}function g1(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),o=V.util.createBuffer(e),a=o.getByte(),s=o.getByte();if(a!==0||r&&s!==0&&s!==1||!r&&s!=2||r&&s===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(s===0){c=i-3-n;for(var u=0;u<c;++u)if(o.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(s===1)for(c=0;o.length()>1;){if(o.getByte()!==255){--o.read;break}++c}else if(s===2)for(c=0;o.length()>1;){if(o.getByte()===0){--o.read;break}++c}var f=o.getByte();if(f!==0||c!==i-3-o.length())throw new Error("Encryption block is invalid.");return o.getBytes()}function Hf(e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){o(e.pBits,function(s,c){if(s)return r(s);if(e.p=c,e.q!==null)return a(s,e.q);o(e.qBits,a)})}function o(s,c){V.prime.generateProbablePrime(s,n,c)}function a(s,c){if(s)return r(s);if(e.q=c,e.p.compareTo(e.q)<0){var u=e.p;e.p=e.q,e.q=u}if(e.p.subtract(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,a);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,a);return}var f=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function ze(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=V.util.hexToBytes(t);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function $f(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 X3(e){return V.util.isNodejs&&typeof Zo[e]=="function"}function J3(e){return typeof ge.globalScope<"u"&&typeof ge.globalScope.crypto=="object"&&typeof ge.globalScope.crypto.subtle=="object"&&typeof ge.globalScope.crypto.subtle[e]=="function"}function j3(e){return typeof ge.globalScope<"u"&&typeof ge.globalScope.msCrypto=="object"&&typeof ge.globalScope.msCrypto.subtle=="object"&&typeof ge.globalScope.msCrypto.subtle[e]=="function"}function t4(e){for(var t=V.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var u4=it((Xm,c4)=>{var U=ut();n1();i0();p3();Vr();i1();Vo();w3();o0();N3();m1();Lt();typeof i4>"u"&&(i4=U.jsbn.BigInteger);var i4,I=U.asn1,Y=U.pki=U.pki||{};c4.exports=Y.pbe=U.pbe=U.pbe||{};var Hr=Y.oids,Gf={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"}]},Qf={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"}]}]},Yf={name:"pkcs-12PbeParams",tagClass:I.Class.UNIVERSAL,type:I.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:I.Class.UNIVERSAL,type:I.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:I.Class.UNIVERSAL,type:I.Type.INTEGER,constructed:!1,capture:"iterations"}]};Y.encryptPrivateKeyInfo=function(e,t,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=U.random.getBytesSync(r.saltSize),i=r.count,o=I.integerToDer(i),a,s,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,f,l;switch(r.algorithm){case"aes128":a=16,u=16,f=Hr["aes128-CBC"],l=U.aes.createEncryptionCipher;break;case"aes192":a=24,u=16,f=Hr["aes192-CBC"],l=U.aes.createEncryptionCipher;break;case"aes256":a=32,u=16,f=Hr["aes256-CBC"],l=U.aes.createEncryptionCipher;break;case"des":a=8,u=8,f=Hr.desCBC,l=U.des.createEncryptionCipher;break;default:var p=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw p.algorithm=r.algorithm,p}var d="hmacWith"+r.prfAlgorithm.toUpperCase(),h=a4(d),y=U.pkcs5.pbkdf2(t,n,i,a,h),g=U.random.getBytesSync(u),m=l(y);m.start(g),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes();var x=Wf(n,o,a,d);s=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Hr.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(Hr.pkcs5PBKDF2).getBytes()),x]),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(f).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,g)])])])}else if(r.algorithm==="3des"){a=24;var v=new U.util.ByteBuffer(n),y=Y.pbe.generatePkcs12Key(t,v,1,i,a),g=Y.pbe.generatePkcs12Key(t,v,2,i,a),m=U.des.createEncryptionCipher(y);m.start(g),m.update(I.toDer(e)),m.finish(),c=m.output.getBytes(),s=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Hr["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,[s,I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,c)]);return T};Y.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!I.validate(e,Gf,n,i)){var o=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var a=I.derToOid(n.encryptionOid),s=Y.pbe.getCipher(a,n.encryptionParams,t),c=U.util.createBuffer(n.encryptedData);return s.update(c),s.finish()&&(r=I.fromDer(s.output)),r};Y.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:I.toDer(e).getBytes()};return U.pem.encode(r,{maxline:t})};Y.encryptedPrivateKeyFromPem=function(e){var t=U.pem.decode(e)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=t.type,r}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return I.fromDer(t.body)};Y.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Y.wrapRsaPrivateKey(Y.privateKeyToAsn1(e));return n=Y.encryptPrivateKeyInfo(n,t,r),Y.encryptedPrivateKeyToPem(n)}var i,o,a,s;switch(r.algorithm){case"aes128":i="AES-128-CBC",a=16,o=U.random.getBytesSync(16),s=U.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",a=24,o=U.random.getBytesSync(16),s=U.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",a=32,o=U.random.getBytesSync(16),s=U.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",a=24,o=U.random.getBytesSync(8),s=U.des.createEncryptionCipher;break;case"des":i="DES-CBC",a=8,o=U.random.getBytesSync(8),s=U.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=U.pbe.opensslDeriveBytes(t,o.substr(0,8),a),f=s(u);f.start(o),f.update(I.toDer(Y.privateKeyToAsn1(e))),f.finish();var l={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:U.util.bytesToHex(o).toUpperCase()},body:f.output.getBytes()};return U.pem.encode(l)};Y.decryptRsaPrivateKey=function(e,t){var r=null,n=U.pem.decode(e)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var o,a;switch(n.dekInfo.algorithm){case"DES-CBC":o=8,a=U.des.createDecryptionCipher;break;case"DES-EDE3-CBC":o=24,a=U.des.createDecryptionCipher;break;case"AES-128-CBC":o=16,a=U.aes.createDecryptionCipher;break;case"AES-192-CBC":o=24,a=U.aes.createDecryptionCipher;break;case"AES-256-CBC":o=32,a=U.aes.createDecryptionCipher;break;case"RC2-40-CBC":o=5,a=function(l){return U.rc2.createDecryptionCipher(l,40)};break;case"RC2-64-CBC":o=8,a=function(l){return U.rc2.createDecryptionCipher(l,64)};break;case"RC2-128-CBC":o=16,a=function(l){return U.rc2.createDecryptionCipher(l,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var s=U.util.hexToBytes(n.dekInfo.parameters),c=U.pbe.opensslDeriveBytes(t,s.substr(0,8),o),u=a(c);if(u.start(s),u.update(U.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=Y.decryptPrivateKeyInfo(I.fromDer(r),t):r=I.fromDer(r),r!==null&&(r=Y.privateKeyFromAsn1(r)),r};Y.pbe.generatePkcs12Key=function(e,t,r,n,i,o){var a,s;if(typeof o>"u"||o===null){if(!("sha1"in U.md))throw new Error('"sha1" hash algorithm unavailable.');o=U.md.sha1.create()}var c=o.digestLength,u=o.blockLength,f=new U.util.ByteBuffer,l=new U.util.ByteBuffer;if(e!=null){for(s=0;s<e.length;s++)l.putInt16(e.charCodeAt(s));l.putInt16(0)}var p=l.length(),d=t.length(),h=new U.util.ByteBuffer;h.fillWithByte(r,u);var y=u*Math.ceil(d/u),g=new U.util.ByteBuffer;for(s=0;s<y;s++)g.putByte(t.at(s%d));var m=u*Math.ceil(p/u),x=new U.util.ByteBuffer;for(s=0;s<m;s++)x.putByte(l.at(s%p));var v=g;v.putBuffer(x);for(var T=Math.ceil(i/c),E=1;E<=T;E++){var S=new U.util.ByteBuffer;S.putBytes(h.bytes()),S.putBytes(v.bytes());for(var L=0;L<n;L++)o.start(),o.update(S.getBytes()),S=o.digest();var N=new U.util.ByteBuffer;for(s=0;s<u;s++)N.putByte(S.at(s%c));var G=Math.ceil(d/u)+Math.ceil(p/u),$=new U.util.ByteBuffer;for(a=0;a<G;a++){var q=new U.util.ByteBuffer(v.getBytes(u)),J=511;for(s=N.length()-1;s>=0;s--)J=J>>8,J+=N.at(s)+q.at(s),q.setAt(s,J&255);$.putBuffer(q)}v=$,f.putBuffer(S)}return f.truncate(f.length()-i),f};Y.pbe.getCipher=function(e,t,r){switch(e){case Y.oids.pkcs5PBES2:return Y.pbe.getCipherForPBES2(e,t,r);case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:return Y.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Y.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!I.validate(t,Qf,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}if(e=I.derToOid(n.kdfOid),e!==Y.oids.pkcs5PBKDF2){var o=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw o.oid=e,o.supportedOids=["pkcs5PBKDF2"],o}if(e=I.derToOid(n.encOid),e!==Y.oids["aes128-CBC"]&&e!==Y.oids["aes192-CBC"]&&e!==Y.oids["aes256-CBC"]&&e!==Y.oids["des-EDE3-CBC"]&&e!==Y.oids.desCBC){var o=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw o.oid=e,o.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],o}var a=n.kdfSalt,s=U.util.createBuffer(n.kdfIterationCount);s=s.getInt(s.length()<<3);var c,u;switch(Y.oids[e]){case"aes128-CBC":c=16,u=U.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=U.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=U.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=U.des.createDecryptionCipher;break;case"desCBC":c=8,u=U.des.createDecryptionCipher;break}var f=s4(n.prfOid),l=U.pkcs5.pbkdf2(r,a,s,c,f),p=n.encIv,d=u(l);return d.start(p),d};Y.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!I.validate(t,Yf,n,i)){var o=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw o.errors=i,o}var a=U.util.createBuffer(n.salt),s=U.util.createBuffer(n.iterations);s=s.getInt(s.length()<<3);var c,u,f;switch(e){case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,f=U.des.startDecrypting;break;case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,f=function(y,g){var m=U.rc2.createDecryptionCipher(y,40);return m.start(g,null),m};break;default:var o=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw o.oid=e,o}var l=s4(n.prfOid),p=Y.pbe.generatePkcs12Key(r,a,1,s,c,l);l.start();var d=Y.pbe.generatePkcs12Key(r,a,2,s,u,l);return f(p,d)};Y.pbe.opensslDeriveBytes=function(e,t,r,n){if(typeof n>"u"||n===null){if(!("md5"in U.md))throw new Error('"md5" hash algorithm unavailable.');n=U.md.md5.create()}t===null&&(t="");for(var i=[o4(n,e+t)],o=16,a=1;o<r;++a,o+=16)i.push(o4(n,i[a-1]+e+t));return i.join("").substr(0,r)};function o4(e,t){return e.start().update(t).digest().getBytes()}function s4(e){var t;if(!e)t="hmacWithSHA1";else if(t=Y.oids[I.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return a4(t)}function a4(e){var t=U.md;switch(e){case"hmacWithSHA224":t=U.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function Wf(e,t,r,n){var i=I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OCTETSTRING,!1,e),I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,t.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(I.create(I.Class.UNIVERSAL,I.Type.INTEGER,!1,U.util.hexToBytes(r.toString(16))),I.create(I.Class.UNIVERSAL,I.Type.SEQUENCE,!0,[I.create(I.Class.UNIVERSAL,I.Type.OID,!1,I.oidToDer(Y.oids[n]).getBytes()),I.create(I.Class.UNIVERSAL,I.Type.NULL,!1,"")])),i}});var Q4=it((xv,G4)=>{var xt=ut();Vr();Lt();var l0=G4.exports=xt.sha512=xt.sha512||{};xt.md.sha512=xt.md.algorithms.sha512=l0;var H4=xt.sha384=xt.sha512.sha384=xt.sha512.sha384||{};H4.create=function(){return l0.create("SHA-384")};xt.md.sha384=xt.md.algorithms.sha384=H4;xt.sha512.sha256=xt.sha512.sha256||{create:function(){return l0.create("SHA-512/256")}};xt.md["sha512/256"]=xt.md.algorithms["sha512/256"]=xt.sha512.sha256;xt.sha512.sha224=xt.sha512.sha224||{create:function(){return l0.create("SHA-512/224")}};xt.md["sha512/224"]=xt.md.algorithms["sha512/224"]=xt.sha512.sha224;l0.create=function(e){if($4||sl(),typeof e>"u"&&(e="SHA-512"),!(e in Wr))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=Wr[e],r=null,n=xt.util.createBuffer(),i=new Array(80),o=0;o<80;++o)i[o]=new Array(2);var a=64;switch(e){case"SHA-384":a=48;break;case"SHA-512/256":a=32;break;case"SHA-512/224":a=28;break}var s={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:a,messageLength:0,fullMessageLength:null,messageLengthSize:16};return s.start=function(){s.messageLength=0,s.fullMessageLength=s.messageLength128=[];for(var c=s.messageLengthSize/4,u=0;u<c;++u)s.fullMessageLength.push(0);n=xt.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return s},s.start(),s.update=function(c,u){u==="utf8"&&(c=xt.util.encodeUtf8(c));var f=c.length;s.messageLength+=f,f=[f/4294967296>>>0,f>>>0];for(var l=s.fullMessageLength.length-1;l>=0;--l)s.fullMessageLength[l]+=f[1],f[1]=f[0]+(s.fullMessageLength[l]/4294967296>>>0),s.fullMessageLength[l]=s.fullMessageLength[l]>>>0,f[0]=f[1]/4294967296>>>0;return n.putBytes(c),z4(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),s},s.digest=function(){var c=xt.util.createBuffer();c.putBytes(n.bytes());var u=s.fullMessageLength[s.fullMessageLength.length-1]+s.messageLengthSize,f=u&s.blockLength-1;c.putBytes(xs.substr(0,s.blockLength-f));for(var l,p,d=s.fullMessageLength[0]*8,h=0;h<s.fullMessageLength.length-1;++h)l=s.fullMessageLength[h+1]*8,p=l/4294967296>>>0,d+=p,c.putInt32(d>>>0),d=l>>>0;c.putInt32(d);for(var y=new Array(r.length),h=0;h<r.length;++h)y[h]=r[h].slice(0);z4(y,i,c);var g=xt.util.createBuffer(),m;e==="SHA-512"?m=y.length:e==="SHA-384"?m=y.length-2:m=y.length-4;for(var h=0;h<m;++h)g.putInt32(y[h][0]),(h!==m-1||e!=="SHA-512/224")&&g.putInt32(y[h][1]);return g},s};var xs=null,$4=!1,vs=null,Wr=null;function sl(){xs="\x80",xs+=xt.util.fillString("\0",128),vs=[[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]],Wr={},Wr["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],Wr["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],Wr["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],Wr["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],$4=!0}function z4(e,t,r){for(var n,i,o,a,s,c,u,f,l,p,d,h,y,g,m,x,v,T,E,S,L,N,G,$,q,J,ft,Qt,_,k,R,D,A,F,M,H=r.length();H>=128;){for(_=0;_<16;++_)t[_][0]=r.getInt32()>>>0,t[_][1]=r.getInt32()>>>0;for(;_<80;++_)D=t[_-2],k=D[0],R=D[1],n=((k>>>19|R<<13)^(R>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|R>>>19)^(R<<3|k>>>29)^(k<<26|R>>>6))>>>0,F=t[_-15],k=F[0],R=F[1],o=((k>>>1|R<<31)^(k>>>8|R<<24)^k>>>7)>>>0,a=((k<<31|R>>>1)^(k<<24|R>>>8)^(k<<25|R>>>7))>>>0,A=t[_-7],M=t[_-16],R=i+A[1]+a+M[1],t[_][0]=n+A[0]+o+M[0]+(R/4294967296>>>0)>>>0,t[_][1]=R>>>0;for(y=e[0][0],g=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],G=e[5][0],$=e[5][1],q=e[6][0],J=e[6][1],ft=e[7][0],Qt=e[7][1],_=0;_<80;++_)u=((L>>>14|N<<18)^(L>>>18|N<<14)^(N>>>9|L<<23))>>>0,f=((L<<18|N>>>14)^(L<<14|N>>>18)^(N<<23|L>>>9))>>>0,l=(q^L&(G^q))>>>0,p=(J^N&($^J))>>>0,s=((y>>>28|g<<4)^(g>>>2|y<<30)^(g>>>7|y<<25))>>>0,c=((y<<4|g>>>28)^(g<<30|y>>>2)^(g<<25|y>>>7))>>>0,d=(y&m|v&(y^m))>>>0,h=(g&x|T&(g^x))>>>0,R=Qt+f+p+vs[_][1]+t[_][1],n=ft+u+l+vs[_][0]+t[_][0]+(R/4294967296>>>0)>>>0,i=R>>>0,R=c+h,o=s+d+(R/4294967296>>>0)>>>0,a=R>>>0,ft=q,Qt=J,q=G,J=$,G=L,$=N,R=S+i,L=E+n+(R/4294967296>>>0)>>>0,N=R>>>0,E=v,S=T,v=m,T=x,m=y,x=g,R=i+a,y=n+o+(R/4294967296>>>0)>>>0,g=R>>>0;R=e[0][1]+g,e[0][0]=e[0][0]+y+(R/4294967296>>>0)>>>0,e[0][1]=R>>>0,R=e[1][1]+x,e[1][0]=e[1][0]+m+(R/4294967296>>>0)>>>0,e[1][1]=R>>>0,R=e[2][1]+T,e[2][0]=e[2][0]+v+(R/4294967296>>>0)>>>0,e[2][1]=R>>>0,R=e[3][1]+S,e[3][0]=e[3][0]+E+(R/4294967296>>>0)>>>0,e[3][1]=R>>>0,R=e[4][1]+N,e[4][0]=e[4][0]+L+(R/4294967296>>>0)>>>0,e[4][1]=R>>>0,R=e[5][1]+$,e[5][0]=e[5][0]+G+(R/4294967296>>>0)>>>0,e[5][1]=R>>>0,R=e[6][1]+J,e[6][0]=e[6][0]+q+(R/4294967296>>>0)>>>0,e[6][1]=R>>>0,R=e[7][1]+Qt,e[7][0]=e[7][0]+ft+(R/4294967296>>>0)>>>0,e[7][1]=R>>>0,H-=128}}});var v5=it((Jb,x5)=>{x5.exports=function(e){if(!e)throw Error("hashlru must have a max value, of type number, greater than 0");var t=0,r=Object.create(null),n=Object.create(null);function i(o,a){r[o]=a,t++,t>=e&&(t=0,n=r,r=Object.create(null))}return{has:function(o){return r[o]!==void 0||n[o]!==void 0},remove:function(o){r[o]!==void 0&&(r[o]=void 0),n[o]!==void 0&&(n[o]=void 0)},get:function(o){var a=r[o];if(a!==void 0)return a;if((a=n[o])!==void 0)return i(o,a),a},set:function(o,a){r[o]!==void 0?r[o]=a:i(o,a)},clear:function(){r=Object.create(null),n=Object.create(null)}}}});var w5=it((jb,Ps)=>{"use strict";var Ml=Object.prototype.hasOwnProperty,se="~";function m0(){}Object.create&&(m0.prototype=Object.create(null),new m0().__proto__||(se=!1));function Vl(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function b5(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var o=new Vl(r,n||e,i),a=se?se+t:t;return e._events[a]?e._events[a].fn?e._events[a]=[e._events[a],o]:e._events[a].push(o):(e._events[a]=o,e._eventsCount++),e}function V1(e,t){--e._eventsCount===0?e._events=new m0:delete e._events[t]}function ee(){this._events=new m0,this._eventsCount=0}ee.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)Ml.call(r,n)&&t.push(se?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};ee.prototype.listeners=function(t){var r=se?se+t:t,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,o=n.length,a=new Array(o);i<o;i++)a[i]=n[i].fn;return a};ee.prototype.listenerCount=function(t){var r=se?se+t:t,n=this._events[r];return n?n.fn?1:n.length:0};ee.prototype.emit=function(t,r,n,i,o,a){var s=se?se+t:t;if(!this._events[s])return!1;var c=this._events[s],u=arguments.length,f,l;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,o),!0;case 6:return c.fn.call(c.context,r,n,i,o,a),!0}for(l=1,f=new Array(u-1);l<u;l++)f[l-1]=arguments[l];c.fn.apply(c.context,f)}else{var p=c.length,d;for(l=0;l<p;l++)switch(c[l].once&&this.removeListener(t,c[l].fn,void 0,!0),u){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,r);break;case 3:c[l].fn.call(c[l].context,r,n);break;case 4:c[l].fn.call(c[l].context,r,n,i);break;default:if(!f)for(d=1,f=new Array(u-1);d<u;d++)f[d-1]=arguments[d];c[l].fn.apply(c[l].context,f)}}return!0};ee.prototype.on=function(t,r,n){return b5(this,t,r,n,!1)};ee.prototype.once=function(t,r,n){return b5(this,t,r,n,!0)};ee.prototype.removeListener=function(t,r,n,i){var o=se?se+t:t;if(!this._events[o])return this;if(!r)return V1(this,o),this;var a=this._events[o];if(a.fn)a.fn===r&&(!i||a.once)&&(!n||a.context===n)&&V1(this,o);else{for(var s=0,c=[],u=a.length;s<u;s++)(a[s].fn!==r||i&&!a[s].once||n&&a[s].context!==n)&&c.push(a[s]);c.length?this._events[o]=c.length===1?c[0]:c:V1(this,o)}return this};ee.prototype.removeAllListeners=function(t){var r;return t?(r=se?se+t:t,this._events[r]&&V1(this,r)):(this._events=new m0,this._eventsCount=0),this};ee.prototype.off=ee.prototype.removeListener;ee.prototype.addListener=ee.prototype.on;ee.prefixed=se;ee.EventEmitter=ee;typeof Ps<"u"&&(Ps.exports=ee)});var w9={};Ot(w9,{EventTypes:()=>Qs,MessageType:()=>Ys,Record:()=>Mt,kadDHT:()=>b9});var S9=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 L9=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"},P=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var Xt=class extends EventTarget{#t=new Map;listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#t.get(t);i==null&&(i=[],this.#t.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#t.get(t);i!=null&&(i=i.filter(({callback:o})=>o!==r),this.#t.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#t.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new Rt(t,r))}},gi=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},Rt=globalThis.CustomEvent??gi,tn=(e,...t)=>{try{[...t]}catch{}};function n8(e){return e[Symbol.asyncIterator]!=null}function i8(e){if(n8(e))return(async()=>{for await(let t of e);})();for(let t of e);}var mi=i8;function qt(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var C0=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}},en=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new C0(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 C0(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 xi=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function rn(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 en,i,o,a,s=qt(),c=async()=>{try{return n.isEmpty()?a?{done:!0}:await new Promise((g,m)=>{o=x=>{o=null,n.push(x);try{g(e(n))}catch(v){m(v)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{s.resolve(),s=qt()})}},u=g=>o!=null?o(g):(n.push(g),i),f=g=>(n=new en,o!=null?o({error:g}):(n.push({error:g}),i)),l=g=>{if(a)return i;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},p=g=>a?i:(a=!0,g!=null?f(g):u({done:!0})),d=()=>(n=new en,p(),{done:!0}),h=g=>(p(g),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:d,throw:h,push:l,end:p,get readableLength(){return n.size},onEmpty:async g=>{let m=g?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let x,v;m!=null&&(x=new Promise((T,E)=>{v=()=>{E(new xi)},m.addEventListener("abort",v)}));try{await Promise.race([s.promise,x])}finally{v!=null&&m!=null&&m?.removeEventListener("abort",v)}}},r==null)return i;let y=i;return i={[Symbol.asyncIterator](){return this},next(){return y.next()},throw(g){return y.throw(g),r!=null&&(r(g),r=void 0),{done:!0}},return(){return y.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(g){return y.end(g),r!=null&&(r(g),r=void 0),i},get readableLength(){return y.readableLength},onEmpty:g=>y.onEmpty(g)},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=rn({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 ve=a8;var v2=Bt(f2(),1);var l2="[a-fA-F\\d:]",lr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${l2})|(?<=${l2})(?=\\s|$))`:"",be="(?: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}",Ut="[a-fA-F\\d]{1,4}",R0=`
|
|
16
16
|
(?:
|
|
17
17
|
(?:${Ut}:){7}(?:${Ut}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
|
|
18
|
-
(?:${Ut}:){6}(?:${
|
|
19
|
-
(?:${Ut}:){5}(?::${
|
|
20
|
-
(?:${Ut}:){4}(?:(?::${Ut}){0,1}:${
|
|
21
|
-
(?:${Ut}:){3}(?:(?::${Ut}){0,2}:${
|
|
22
|
-
(?:${Ut}:){2}(?:(?::${Ut}){0,3}:${
|
|
23
|
-
(?:${Ut}:){1}(?:(?::${Ut}){0,4}:${
|
|
24
|
-
(?::(?:(?::${Ut}){0,5}:${
|
|
18
|
+
(?:${Ut}:){6}(?:${be}|:${Ut}|:)| // 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
|
+
(?:${Ut}:){5}(?::${be}|(?::${Ut}){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
|
+
(?:${Ut}:){4}(?:(?::${Ut}){0,1}:${be}|(?::${Ut}){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
|
+
(?:${Ut}:){3}(?:(?::${Ut}){0,2}:${be}|(?::${Ut}){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
|
+
(?:${Ut}:){2}(?:(?::${Ut}){0,3}:${be}|(?::${Ut}){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
|
+
(?:${Ut}:){1}(?:(?::${Ut}){0,4}:${be}|(?::${Ut}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
|
|
24
|
+
(?::(?:(?::${Ut}){0,5}:${be}|(?::${Ut}){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(),i8=new RegExp(`(?:^${ve}$)|(?:^${C0}$)`),s8=new RegExp(`^${ve}$`),o8=new RegExp(`^${C0}$`),mi=e=>e&&e.exact?i8:new RegExp(`(?:${fr(e)}${ve}${fr(e)})|(?:${fr(e)}${C0}${fr(e)})`,"g");mi.v4=e=>e&&e.exact?s8:new RegExp(`${fr(e)}${ve}${fr(e)}`,"g");mi.v6=e=>e&&e.exact?o8:new RegExp(`${fr(e)}${C0}${fr(e)}`,"g");var a2=mi;var R0=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 s=0,a=0,o=this.peekChar();if(o===void 0)return;let c=o==="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(s*=t,s+=f,s>u||(a+=1,r!==void 0&&a>r))return}if(a!==0)return!n&&c&&a>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let a=this.readSeparator(":",n,()=>this.readIPv4Addr());if(a!==void 0)return r[i]=a[0],r[i+1]=a[1],r[i+2]=a[2],r[i+3]=a[3],[i+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[i,!1];r[i]=s>>8,r[i+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),a=16-(n+2),[o]=t(s.subarray(0,a));return r.set(s.subarray(0,o),16-o),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var c2=45,a8=15,rn=new R0;function xi(e){if(!(e.length>a8))return rn.new(e).parseWith(()=>rn.readIPv4Addr())}function vi(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>c2))return rn.new(e).parseWith(()=>rn.readIPv6Addr())}function P0(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>c2))return rn.new(e).parseWith(()=>rn.readIPAddr())}function u2(e){return!!xi(e)}function f2(e){return!!vi(e)}function nn(e){return!!P0(e)}var y2=Bt(h2(),1),{isValid:c8,parse:u8}=y2.default,f8=["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"],l8=f8.map(e=>new p2.Netmask(e));function h8(e){for(let t of l8)if(t.contains(e))return!0;return!1}function d2(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 g2=e=>{if(c8(e)){let t=u8(e);if(t.kind()==="ipv4")return h8(t.toNormalizedString());if(t.kind()==="ipv6")return d2(e)}else if(nn(e)&&a2.v6().test(e))return d2(e)};var Mn=g2;var m2="/lan",x2="/ipfs",v2="/kad/1.0.0",b2="/dht/record",bi="/dht/provider";function d8(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 w2=d8;function p8(e){return e[Symbol.asyncIterator]!=null}function y8(e,t){if(p8(e))return async function*(){for await(let o of e)yield t(o)}();let r=w2(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=t(n);if(typeof s.then=="function")return async function*(){yield await s;for await(let o of r)yield t(o)}();let a=t;return function*(){yield s;for(let o of r)yield a(o)}()}var N0=y8;var D0=globalThis.CustomEvent??Event;async function*Vn(e,t={}){let r=t.concurrency??1/0;r<1&&(r=1/0);let n=t.ordered==null?!1:t.ordered,i=new EventTarget,s=[],a=qt(),o=qt(),c=!1,u,f=!1;i.addEventListener("task-complete",()=>{o.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of e){if(s.length===r&&(a=qt(),await a.promise),f)break;let y={done:!1};s.push(y),h().then(g=>{y.done=!0,y.ok=!0,y.value=g,i.dispatchEvent(new D0("task-complete"))},g=>{y.done=!0,y.err=g,i.dispatchEvent(new D0("task-complete"))})}c=!0,i.dispatchEvent(new D0("task-complete"))}catch(h){u=h,i.dispatchEvent(new D0("task-complete"))}});function l(){return n?s[0]?.done:!!s.find(h=>h.done)}function*p(){for(;s.length>0&&s[0].done;){let h=s[0];if(s.shift(),h.ok)yield h.value;else throw f=!0,a.resolve(),h.err;a.resolve()}}function*d(){for(;l();)for(let h=0;h<s.length;h++)if(s[h].done){let y=s[h];if(s.splice(h,1),h--,y.ok)yield y.value;else throw f=!0,a.resolve(),y.err;a.resolve()}}for(;;){if(l()||(o=qt(),await o.promise),u!=null)throw u;if(n?yield*p():yield*d(),c&&s.length===0)break}}function lr(e,...t){if(e==null)throw new Error("Empty pipeline");if(wi(e)){let n=e;e=()=>n.source}else if(S2(e)||E2(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&wi(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++)wi(r[n])&&(r[n]=m8(r[n]));return g8(...r)}var g8=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},E2=e=>e?.[Symbol.asyncIterator]!=null,S2=e=>e?.[Symbol.iterator]!=null,wi=e=>e==null?!1:e.sink!=null&&e.source!=null,m8=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=en({objectMode:!0});r.then(()=>{n.end()},a=>{n.end(a)});let i,s=e.source;if(E2(s))i=async function*(){yield*s,n.end()};else if(S2(s))i=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return xe(n,i())}return e.source};function ht(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 I2=Symbol.for("@libp2p/peer-id");var Bi={};Ot(Bi,{base58btc:()=>Kt,base58flickr:()=>S8});function x8(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 s=e.charAt(i),a=s.charCodeAt(0);if(r[a]!==255)throw new TypeError(s+" is ambiguous");r[a]=i}var o=e.length,c=e.charAt(0),u=Math.log(o)/Math.log(256),f=Math.log(256)/Math.log(o);function l(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var y=0,g=0,m=0,x=h.length;m!==x&&h[m]===0;)m++,y++;for(var v=(x-m)*f+1>>>0,T=new Uint8Array(v);m!==x;){for(var E=h[m],S=0,L=v-1;(E!==0||S<g)&&L!==-1;L--,S++)E+=256*T[L]>>>0,T[L]=E%o>>>0,E=E/o>>>0;if(E!==0)throw new Error("Non-zero carry");g=S,m++}for(var N=v-g;N!==v&&T[N]===0;)N++;for(var G=c.repeat(y);N<v;++N)G+=e.charAt(T[N]);return G}function p(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var y=0;if(h[y]!==" "){for(var g=0,m=0;h[y]===c;)g++,y++;for(var x=(h.length-y)*u+1>>>0,v=new Uint8Array(x);h[y];){var T=r[h.charCodeAt(y)];if(T===255)return;for(var E=0,S=x-1;(T!==0||E<m)&&S!==-1;S--,E++)T+=o*v[S]>>>0,v[S]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=E,y++}if(h[y]!==" "){for(var L=x-m;L!==x&&v[L]===0;)L++;for(var N=new Uint8Array(g+(x-L)),G=g;L!==x;)N[G++]=v[L++];return N}}}function d(h){var y=p(h);if(y)return y;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:p,decode:d}}var v8=x8,b8=v8,A2=b8;var sh=new Uint8Array(0);var B2=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},$e=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 T2=e=>new TextEncoder().encode(e),_2=e=>new TextDecoder().decode(e);var Ei=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")}},Si=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 R2(this,t)}},Ii=class{constructor(t){this.decoders=t}or(t){return R2(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`)}},R2=(e,t)=>new Ii({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Ai=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Ei(t,r,n),this.decoder=new Si(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},sn=({name:e,prefix:t,encode:r,decode:n})=>new Ai(e,t,r,n),hr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=A2(r,t);return sn({prefix:e,name:t,encode:n,decode:s=>$e(i(s))})},w8=(e,t,r,n)=>{let i={};for(let f=0;f<t.length;++f)i[t[f]]=f;let s=e.length;for(;e[s-1]==="=";)--s;let a=new Uint8Array(s*r/8|0),o=0,c=0,u=0;for(let f=0;f<s;++f){let l=i[e[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|l,o+=r,o>=8&&(o-=8,a[u++]=255&c>>o)}if(o>=r||255&c<<8-o)throw new SyntaxError("Unexpected end of data");return a},E8=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,s="",a=0,o=0;for(let c=0;c<e.length;++c)for(o=o<<8|e[c],a+=8;a>r;)a-=r,s+=t[i&o>>a];if(a&&(s+=t[i&o<<r-a]),n)for(;s.length*r&7;)s+="=";return s},Tt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>sn({prefix:t,name:e,encode(i){return E8(i,n,r)},decode(i){return w8(i,n,r,e)}});var Kt=hr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),S8=hr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ti={};Ot(Ti,{base10:()=>I8});var I8=hr({prefix:"9",name:"base10",alphabet:"0123456789"});var _i={};Ot(_i,{base16:()=>A8,base16upper:()=>B8});var A8=Tt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),B8=Tt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Ci={};Ot(Ci,{base2:()=>T8});var T8=Tt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ri={};Ot(Ri,{base256emoji:()=>L8});var P2=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}"),_8=P2.reduce((e,t,r)=>(e[r]=t,e),[]),C8=P2.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function R8(e){return e.reduce((t,r)=>(t+=_8[r],t),"")}function P8(e){let t=[];for(let r of e){let n=C8[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var L8=sn({prefix:"\u{1F680}",name:"base256emoji",encode:R8,decode:P8});var Pi={};Ot(Pi,{base32:()=>Ge,base32hex:()=>O8,base32hexpad:()=>F8,base32hexpadupper:()=>K8,base32hexupper:()=>U8,base32pad:()=>D8,base32padupper:()=>k8,base32upper:()=>N8,base32z:()=>M8});var Ge=Tt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),N8=Tt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),D8=Tt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),k8=Tt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),O8=Tt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),U8=Tt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),F8=Tt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),K8=Tt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),M8=Tt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Li={};Ot(Li,{base36:()=>V8,base36upper:()=>q8});var V8=hr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),q8=hr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Ni={};Ot(Ni,{base64:()=>qn,base64pad:()=>z8,base64url:()=>H8,base64urlpad:()=>$8});var qn=Tt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),z8=Tt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),H8=Tt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),$8=Tt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Di={};Ot(Di,{base8:()=>G8});var G8=Tt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ki={};Ot(ki,{identity:()=>Q8});var Q8=sn({prefix:"\0",name:"identity",encode:e=>_2(e),decode:e=>T2(e)});var bh=new TextEncoder,wh=new TextDecoder;var Ui={};Ot(Ui,{identity:()=>dr});var Z8=D2,L2=128,X8=127,J8=~X8,j8=Math.pow(2,31);function D2(e,t,r){t=t||[],r=r||0;for(var n=r;e>=j8;)t[r++]=e&255|L2,e/=128;for(;e&J8;)t[r++]=e&255|L2,e>>>=7;return t[r]=e|0,D2.bytes=r-n+1,t}var t6=Oi,e6=128,N2=127;function Oi(e,n){var r=0,n=n||0,i=0,s=n,a,o=e.length;do{if(s>=o)throw Oi.bytes=0,new RangeError("Could not decode varint");a=e[s++],r+=i<28?(a&N2)<<i:(a&N2)*Math.pow(2,i),i+=7}while(a>=e6);return Oi.bytes=s-n,r}var r6=Math.pow(2,7),n6=Math.pow(2,14),i6=Math.pow(2,21),s6=Math.pow(2,28),o6=Math.pow(2,35),a6=Math.pow(2,42),c6=Math.pow(2,49),u6=Math.pow(2,56),f6=Math.pow(2,63),l6=function(e){return e<r6?1:e<n6?2:e<i6?3:e<s6?4:e<o6?5:e<a6?6:e<c6?7:e<u6?8:e<f6?9:10},h6={encode:Z8,decode:t6,encodingLength:l6},d6=h6,zn=d6;var Hn=(e,t=0)=>[zn.decode(e,t),zn.decode.bytes],on=(e,t,r=0)=>(zn.encode(e,t,r),t),an=e=>zn.encodingLength(e);var Re=(e,t)=>{let r=t.byteLength,n=an(e),i=n+an(r),s=new Uint8Array(i+r);return on(e,s,0),on(r,s,n),s.set(t,i),new cn(e,r,t,s)},Lr=e=>{let t=$e(e),[r,n]=Hn(t),[i,s]=Hn(t.subarray(n)),a=t.subarray(n+s);if(a.byteLength!==i)throw new Error("Incorrect length");return new cn(r,i,a,t)},k2=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&B2(e.bytes,r.bytes)}},cn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var O2=0,p6="identity",U2=$e,y6=e=>Re(O2,U2(e)),dr={code:O2,name:p6,encode:U2,digest:y6};var Mi={};Ot(Mi,{sha256:()=>St,sha512:()=>g6});var Ki=({name:e,code:t,encode:r})=>new Fi(e,t,r),Fi=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 K2=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),St=Ki({name:"sha2-256",code:18,encode:K2("SHA-256")}),g6=Ki({name:"sha2-512",code:19,encode:K2("SHA-512")});var M2=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return x6(r,Vi(e),t||Kt.encoder);default:return v6(r,Vi(e),t||Ge.encoder)}};var V2=new WeakMap,Vi=e=>{let t=V2.get(e);if(t==null){let r=new Map;return V2.set(e,r),r}return t},re=class e{constructor(t,r,n,i){this.code=r,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==$n)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==b6)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&&k2(t.multihash,n.multihash)}toString(t){return M2(this,t)}toJSON(){return{"/":M2(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:s,bytes:a}=r;return new e(n,i,s,a||q2(n,i,s.bytes))}else if(r[w6]===!0){let{version:n,multihash:i,code:s}=r,a=Lr(i);return e.create(n,s,a)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==$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=q2(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=$e(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=i.subarray(r.multihashSize-r.digestSize),a=new cn(r.multihashCode,r.digestSize,s,i);return[r.version===0?e.createV0(a):e.createV1(r.codec,a),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[l,p]=Hn(t.subarray(r));return r+=p,l},i=n(),s=$n;if(i===18?(i=0,r=0):s=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let a=r,o=n(),c=n(),u=r+c,f=u-a;return{version:i,codec:s,multihashCode:o,digestSize:c,multihashSize:f,size:u}}static parse(t,r){let[n,i]=m6(t,r),s=e.decode(i);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Vi(s).set(n,t),s}},m6=(e,t)=>{switch(e[0]){case"Q":{let r=t||Kt;return[Kt.prefix,r.decode(`${Kt.prefix}${e}`)]}case Kt.prefix:{let r=t||Kt;return[Kt.prefix,r.decode(e)]}case Ge.prefix:{let r=t||Ge;return[Ge.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)]}}},x6=(e,t,r)=>{let{prefix:n}=r;if(n!==Kt.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let s=r.encode(e).slice(1);return t.set(n,s),s}else return i},v6=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let s=r.encode(e);return t.set(n,s),s}else return i},$n=112,b6=18,q2=(e,t,r)=>{let n=an(e),i=n+an(t),s=new Uint8Array(i+r.byteLength);return on(e,s,0),on(t,s,n),s.set(r,i),s},w6=Symbol.for("@ipld/js-cid/CID");var pr={...ki,...Ci,...Di,...Ti,..._i,...Pi,...Li,...Bi,...Ni,...Ri},Uh={...Mi,...Ui};var E6=Symbol.for("nodejs.util.inspect.custom"),z2=Object.values(pr).map(e=>e.decoder).reduce((e,t)=>e.or(t),pr.identity.decoder),H2=114,qi=36,zi=37,Gn=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()})`}[I2]=!0;toString(){return this.string==null&&(this.string=Kt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return re.createV1(H2,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return ht(this.multihash.bytes,t);if(typeof t=="string")return _t(t).equals(this);if(t?.multihash?.bytes!=null)return ht(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[E6](){return`PeerId(${this.toString()})`}},un=class extends Gn{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},fn=class extends Gn{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},ln=class extends Gn{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function _t(e,t){if(t=t??z2,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Lr(Kt.decode(`z${e}`));return e.startsWith("12D")?new fn({multihash:r}):e.startsWith("16U")?new ln({multihash:r}):new un({multihash:r})}return Dr(z2.decode(e))}function Dr(e){try{let t=Lr(e);if(t.code===dr.code){if(t.digest.length===qi)return new fn({multihash:t});if(t.digest.length===zi)return new ln({multihash:t})}if(t.code===St.code)return new un({multihash:t})}catch{return S6(re.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function S6(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==H2)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===St.code)return new un({multihash:e.multihash});if(t.code===dr.code){if(t.digest.length===qi)return new fn({multihash:e.multihash});if(t.digest.length===zi)return new ln({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function $2(e,t){return e.length===qi?new fn({multihash:Re(dr.code,e),privateKey:t}):e.length===zi?new ln({multihash:Re(dr.code,e),privateKey:t}):new un({multihash:await St.digest(e),publicKey:e,privateKey:t})}function Pe(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Qe(e=0){return globalThis.Buffer?.alloc!=null?Pe(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function zt(e=0){return globalThis.Buffer?.allocUnsafe!=null?Pe(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function Q2(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var G2=Q2("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Hi=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=zt(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),I6={utf8:G2,"utf-8":G2,hex:pr.base16,latin1:Hi,ascii:Hi,binary:Hi,...pr},O0=I6;function z(e,t="utf8"){let r=O0[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 A6=Math.pow(2,7),B6=Math.pow(2,14),T6=Math.pow(2,21),$i=Math.pow(2,28),Gi=Math.pow(2,35),Qi=Math.pow(2,42),Yi=Math.pow(2,49),st=128,Jt=127;function jt(e){if(e<A6)return 1;if(e<B6)return 2;if(e<T6)return 3;if(e<$i)return 4;if(e<Gi)return 5;if(e<Qi)return 6;if(e<Yi)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function _6(e,t,r=0){switch(jt(e)){case 8:t[r++]=e&255|st,e/=128;case 7:t[r++]=e&255|st,e/=128;case 6:t[r++]=e&255|st,e/=128;case 5:t[r++]=e&255|st,e/=128;case 4:t[r++]=e&255|st,e>>>=7;case 3:t[r++]=e&255|st,e>>>=7;case 2:t[r++]=e&255|st,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function C6(e,t,r=0){switch(jt(e)){case 8:t.set(r++,e&255|st),e/=128;case 7:t.set(r++,e&255|st),e/=128;case 6:t.set(r++,e&255|st),e/=128;case 5:t.set(r++,e&255|st),e/=128;case 4:t.set(r++,e&255|st),e>>>=7;case 3:t.set(r++,e&255|st),e>>>=7;case 2:t.set(r++,e&255|st),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function R6(e,t){let r=e[t],n=0;if(n+=r&Jt,r<st||(r=e[t+1],n+=(r&Jt)<<7,r<st)||(r=e[t+2],n+=(r&Jt)<<14,r<st)||(r=e[t+3],n+=(r&Jt)<<21,r<st)||(r=e[t+4],n+=(r&Jt)*$i,r<st)||(r=e[t+5],n+=(r&Jt)*Gi,r<st)||(r=e[t+6],n+=(r&Jt)*Qi,r<st)||(r=e[t+7],n+=(r&Jt)*Yi,r<st))return n;throw new RangeError("Could not decode varint")}function P6(e,t){let r=e.get(t),n=0;if(n+=r&Jt,r<st||(r=e.get(t+1),n+=(r&Jt)<<7,r<st)||(r=e.get(t+2),n+=(r&Jt)<<14,r<st)||(r=e.get(t+3),n+=(r&Jt)<<21,r<st)||(r=e.get(t+4),n+=(r&Jt)*$i,r<st)||(r=e.get(t+5),n+=(r&Jt)*Gi,r<st)||(r=e.get(t+6),n+=(r&Jt)*Qi,r<st)||(r=e.get(t+7),n+=(r&Jt)*Yi,r<st))return n;throw new RangeError("Could not decode varint")}function Le(e,t,r=0){return t==null&&(t=zt(jt(e))),t instanceof Uint8Array?_6(e,t,r):C6(e,t,r)}function ue(e,t=0){return e instanceof Uint8Array?R6(e,t):P6(e,t)}function yt(e,t){if(globalThis.Buffer!=null)return Pe(globalThis.Buffer.concat(e,t));t==null&&(t=e.reduce((i,s)=>i+s.length,0));let r=zt(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return Pe(r)}var hd=parseInt("0xFFFF",16),dd=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function dt(e,t="utf8"){let r=O0[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Pe(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var Z2=u2,O6=f2,Wi=function(e){let t=0;if(e=e.toString().trim(),Z2(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(O6(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let s=Z2(r[n]),a;s&&(a=Wi(r[n]),r[n]=z(a.slice(0,2),"base16")),a!=null&&++n<8&&r.splice(n,0,z(a.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let i=new Uint8Array(t+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[t++]=s>>8&255,i[t++]=s&255}return i}throw new Error("invalid ip address")},X2=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 s=0;s<r;s++)i.push(e[t+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(t+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var dn={},Zi={},F6=[[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"]];F6.forEach(e=>{let t=K6(...e);Zi[t.code]=t,dn[t.name]=t});function K6(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function ct(e){if(typeof e=="number"){if(Zi[e]!=null)return Zi[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(dn[e]!=null)return dn[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var Xd=ct("ip4"),Jd=ct("ip6"),jd=ct("ipcidr");function Ji(e,t){switch(ct(e).code){case 4:case 41:return V6(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 $6(t);case 444:return ea(t);case 445:return ea(t);case 466:return H6(t);default:return z(t,"base16")}}function ji(e,t){switch(ct(e).code){case 4:return J2(t);case 41:return J2(t);case 42:return j2(t);case 6:case 273:case 33:case 132:return ts(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return j2(t);case 421:return q6(t);case 444:return G6(t);case 445:return Q6(t);case 466:return z6(t);default:return dt(t,"base16")}}var Xi=Object.values(pr).map(e=>e.decoder),M6=function(){let e=Xi[0].or(Xi[1]);return Xi.slice(2).forEach(t=>e=e.or(t)),e}();function J2(e){if(!nn(e))throw new Error("invalid ip address");return Wi(e)}function V6(e){let t=X2(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!nn(t))throw new Error("invalid ip address");return t}function ts(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 j2(e){let t=dt(e),r=Uint8Array.from(Le(t.length));return yt([r,t],r.length+t.length)}function ta(e){let t=ue(e);if(e=e.slice(jt(t)),e.length!==t)throw new Error("inconsistent lengths");return z(e)}function q6(e){let t;e[0]==="Q"||e[0]==="1"?t=Lr(Kt.decode(`z${e}`)).bytes:t=re.parse(e).multihash.bytes;let r=Uint8Array.from(Le(t.length));return yt([r,t],r.length+t.length)}function z6(e){let t=M6.decode(e),r=Uint8Array.from(Le(t.length));return yt([r,t],r.length+t.length)}function H6(e){let t=ue(e),r=e.slice(jt(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+z(r,"base64url")}function $6(e){let t=ue(e),r=e.slice(jt(t));if(r.length!==t)throw new Error("inconsistent lengths");return z(r,"base58btc")}function G6(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=Ge.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=ts(n);return yt([r,i],r.length+i.length)}function Q6(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=Ge.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=ts(n);return yt([r,i],r.length+i.length)}function ea(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=z(t,"base32"),i=ra(r);return`${n}:${i}`}function na(e){e=es(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 s=0;s<i.length;s++){let a=i[s],o=ct(a);if(o.size===0){t.push([o.code]),r.push([o.code]);continue}if(s++,s>=i.length)throw sa("invalid address: "+e);if(o.path===!0){n=es(i.slice(s).join("/")),t.push([o.code,ji(o.code,n)]),r.push([o.code,n]);break}let c=ji(o.code,i[s]);t.push([o.code,c]),r.push([o.code,Ji(o.code,c)])}return{string:ia(r),bytes:ns(t),tuples:t,stringTuples:r,path:n}}function rs(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let s=ue(e,i),a=jt(s),o=ct(s),c=Y6(o,e.slice(i+a));if(c===0){t.push([s]),r.push([s]),i+=a;continue}let u=e.slice(i+a,i+a+c);if(i+=c+a,i>e.length)throw sa("Invalid address Uint8Array: "+z(e,"base16"));t.push([s,u]);let f=Ji(s,u);if(r.push([s,f]),o.path===!0){n=f;break}}return{bytes:Uint8Array.from(e),string:ia(r),tuples:t,stringTuples:r,path:n}}function ia(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}),es(t.join("/"))}function ns(e){return yt(e.map(t=>{let r=ct(t[0]),n=Uint8Array.from(Le(r.code));return t.length>1&&t[1]!=null&&(n=yt([n,t[1]])),n}))}function Y6(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=ue(t instanceof Uint8Array?t:Uint8Array.from(t));return r+jt(r)}}function es(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function sa(e){return new Error("Error parsing address: "+e)}var W6=Symbol.for("nodejs.util.inspect.custom"),is=Symbol.for("@multiformats/js-multiaddr/multiaddr"),Z6=[ct("dns").code,ct("dns4").code,ct("dns6").code,ct("dnsaddr").code],U0=class e{bytes;#t;#e;#r;#n;[is]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=rs(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=na(t)}else if(aa(t))r=rs(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,s="",a=ct("tcp"),o=ct("udp"),c=ct("ip4"),u=ct("ip6"),f=ct("dns6"),l=ct("ip6zone");for(let[d,h]of this.stringTuples())d===l.code&&(s=`%${h??""}`),Z6.includes(d)&&(r=a.name,i=443,n=`${h??""}${s}`,t=d===f.code?6:4),(d===a.code||d===o.code)&&(r=ct(d).name,i=parseInt(h??"")),(d===c.code||d===u.code)&&(r=ct(d).name,n=`${h??""}${s}`,t=d===u.code?6:4);if(t==null||r==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:r,port:i}}protos(){return this.#e.map(([t])=>Object.assign({},ct(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>ct(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(ns(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===dn.p2p.code&&t.push([n,i]),n===dn["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?z(Kt.decode(`z${n}`),"base58btc"):z(re.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return ht(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=oa.get(r.name);if(n==null)throw new P(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(s=>new e(s))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[W6](){return`Multiaddr(${this.#t})`}};var oa=new Map;function aa(e){return!!e?.[is]}function ss(e){return new U0(e)}var os=new Float32Array([-0]),yr=new Uint8Array(os.buffer);function ca(e,t,r){os[0]=e,t[r]=yr[0],t[r+1]=yr[1],t[r+2]=yr[2],t[r+3]=yr[3]}function ua(e,t){return yr[0]=e[t],yr[1]=e[t+1],yr[2]=e[t+2],yr[3]=e[t+3],os[0]}var as=new Float64Array([-0]),te=new Uint8Array(as.buffer);function fa(e,t,r){as[0]=e,t[r]=te[0],t[r+1]=te[1],t[r+2]=te[2],t[r+3]=te[3],t[r+4]=te[4],t[r+5]=te[5],t[r+6]=te[6],t[r+7]=te[7]}function la(e,t){return te[0]=e[t],te[1]=e[t+1],te[2]=e[t+2],te[3]=e[t+3],te[4]=e[t+4],te[5]=e[t+5],te[6]=e[t+6],te[7]=e[t+7],as[0]}var X6=BigInt(Number.MAX_SAFE_INTEGER),J6=BigInt(Number.MIN_SAFE_INTEGER),ae=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 kr;if(t<X6&&t>J6)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>ha&&(i=0n,++n>ha&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return kr;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):kr}},kr=new ae(0,0);kr.toBigInt=function(){return 0n};kr.zzEncode=kr.zzDecode=function(){return this};kr.length=function(){return 1};var ha=4294967296n;function da(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 pa(e,t,r){if(r-t<1)return"";let i,s=[],a=0,o;for(;t<r;)o=e[t++],o<128?s[a++]=o:o>191&&o<224?s[a++]=(o&31)<<6|e[t++]&63:o>239&&o<365?(o=((o&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,s[a++]=55296+(o>>10),s[a++]=56320+(o&1023)):s[a++]=(o&15)<<12|(e[t++]&63)<<6|e[t++]&63,a>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,s)),a=0);return i!=null?(a>0&&i.push(String.fromCharCode.apply(String,s.slice(0,a))),i.join("")):String.fromCharCode.apply(String,s.slice(0,a))}function cs(e,t,r){let n=r,i,s;for(let a=0;a<e.length;++a)i=e.charCodeAt(a),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((s=e.charCodeAt(a+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++a,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=i&63|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=i&63|128);return r-n}function be(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function F0(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var us=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,be(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 be(this,4);return F0(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw be(this,4);return F0(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw be(this,4);let t=ua(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw be(this,4);let t=la(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 be(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return pa(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw be(this,t);this.pos+=t}else do if(this.pos>=this.len)throw be(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 ae(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 be(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 be(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 be(this,8);let t=F0(this.buf,this.pos+=4),r=F0(this.buf,this.pos+=4);return new ae(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 fs(e){return new us(e instanceof Uint8Array?e:e.subarray())}function Ne(e,t){let r=fs(e);return t.decode(r)}function ls(e){let t=e??8192,r=t>>>1,n,i=t;return function(a){if(a<1||a>r)return zt(a);i+a>t&&(n=zt(t),i=0);let o=n.subarray(i,i+=a);return i&7&&(i=(i|7)+1),o}}var Or=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function hs(){}var ps=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},j6=ls();function tc(e){return globalThis.Buffer!=null?zt(e):j6(e)}var Wn=class{len;head;tail;states;constructor(){this.len=0,this.head=new Or(hs,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new Or(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new ys((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(Qn,10,ae.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=ae.fromBigInt(t);return this._push(Qn,r.length(),r)}uint64Number(t){let r=ae.fromNumber(t);return this._push(Qn,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=ae.fromBigInt(t).zzEncode();return this._push(Qn,r.length(),r)}sint64Number(t){let r=ae.fromNumber(t).zzEncode();return this._push(Qn,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(ds,1,t?1:0)}fixed32(t){return this._push(Yn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=ae.fromBigInt(t);return this._push(Yn,4,r.lo)._push(Yn,4,r.hi)}fixed64Number(t){let r=ae.fromNumber(t);return this._push(Yn,4,r.lo)._push(Yn,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(ca,4,t)}double(t){return this._push(fa,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(ds,1,0):this.uint32(r)._push(rc,r,t)}string(t){let r=da(t);return r!==0?this.uint32(r)._push(cs,r,t):this._push(ds,1,0)}fork(){return this.states=new ps(this),this.head=this.tail=new Or(hs,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 Or(hs,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=tc(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function ds(e,t,r){t[r]=e&255}function ec(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var ys=class extends Or{next;constructor(t,r){super(ec,t,r),this.next=void 0}};function Qn(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 Yn(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 rc(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(nc,t,e),this},Wn.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(ic,t,e),this});function nc(e,t,r){t.set(e,r)}function ic(e,t,r){e.length<40?cs(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(dt(e),r)}function gs(){return new Wn}function De(e,t){let r=gs();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var pn;(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"})(pn||(pn={}));function K0(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function yn(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(s,a){let o=t(s);a.int32(o)},n=function(s){let a=s.int32();return t(a)};return K0("enum",pn.VARINT,r,n)}function ke(e,t){return K0("message",pn.LENGTH_DELIMITED,e,t)}var Zn;(function(e){let t;e.codec=()=>(t==null&&(t=ke((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:""},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let a=r.uint32();switch(a>>>3){case 1:i.key=r.bytes();break;case 2:i.value=r.bytes();break;case 5:i.timeReceived=r.string();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>De(r,e.codec()),e.decode=r=>Ne(r,e.codec())})(Zn||(Zn={}));function ga(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"),s=String(e.getUTCMinutes()).padStart(2,"0"),a=String(e.getUTCSeconds()).padStart(2,"0"),o=e.getUTCMilliseconds(),c=String(o*1e3*1e3).padStart(9,"0");return`${t}-${r}-${n}T${i}:${s}:${a}.${c}Z`}function ma(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,s=parseInt(r[3],10),a=parseInt(r[4],10),o=parseInt(r[5],10),c=parseInt(r[6],10),u=parseInt(r[7].slice(0,-6),10);return new Date(Date.UTC(n,i,s,a,o,c,u))}var Mt=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 Zn.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:ga(this.timeReceived)}}static deserialize(t){let r=Zn.decode(t);return new e(r.key,r.value,new Date(r.timeReceived))}static fromDeserialized(t){let r=ma(t.timeReceived);if(t.key==null)throw new Error("key missing from deserialized object");if(t.value==null)throw new Error("value missing from deserialized object");return new e(t.key,t.value,r)}};var xa;(function(e){let t;e.codec=()=>(t==null&&(t=ke((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={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let a=r.uint32();switch(a>>>3){case 1:i.key=r.bytes();break;case 2:i.value=r.bytes();break;case 3:i.author=r.bytes();break;case 4:i.signature=r.bytes();break;case 5:i.timeReceived=r.string();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>De(r,e.codec()),e.decode=r=>Ne(r,e.codec())})(xa||(xa={}));var gr;(function(e){let t;(function(o){o.PUT_VALUE="PUT_VALUE",o.GET_VALUE="GET_VALUE",o.ADD_PROVIDER="ADD_PROVIDER",o.GET_PROVIDERS="GET_PROVIDERS",o.FIND_NODE="FIND_NODE",o.PING="PING"})(t=e.MessageType||(e.MessageType={}));let r;(function(o){o[o.PUT_VALUE=0]="PUT_VALUE",o[o.GET_VALUE=1]="GET_VALUE",o[o.ADD_PROVIDER=2]="ADD_PROVIDER",o[o.GET_PROVIDERS=3]="GET_PROVIDERS",o[o.FIND_NODE=4]="FIND_NODE",o[o.PING=5]="PING"})(r||(r={})),function(o){o.codec=()=>yn(r)}(t=e.MessageType||(e.MessageType={}));let n;(function(o){o.NOT_CONNECTED="NOT_CONNECTED",o.CONNECTED="CONNECTED",o.CAN_CONNECT="CAN_CONNECT",o.CANNOT_CONNECT="CANNOT_CONNECT"})(n=e.ConnectionType||(e.ConnectionType={}));let i;(function(o){o[o.NOT_CONNECTED=0]="NOT_CONNECTED",o[o.CONNECTED=1]="CONNECTED",o[o.CAN_CONNECT=2]="CAN_CONNECT",o[o.CANNOT_CONNECT=3]="CANNOT_CONNECT"})(i||(i={})),function(o){o.codec=()=>yn(i)}(n=e.ConnectionType||(e.ConnectionType={}));let s;(function(o){let c;o.codec=()=>(c==null&&(c=ke((u,f,l={})=>{if(l.lengthDelimited!==!1&&f.fork(),u.id!=null&&(f.uint32(10),f.bytes(u.id)),u.addrs!=null)for(let p of u.addrs)f.uint32(18),f.bytes(p);u.connection!=null&&(f.uint32(24),e.ConnectionType.codec().encode(u.connection,f)),l.lengthDelimited!==!1&&f.ldelim()},(u,f)=>{let l={addrs:[]},p=f==null?u.len:u.pos+f;for(;u.pos<p;){let d=u.uint32();switch(d>>>3){case 1:l.id=u.bytes();break;case 2:l.addrs.push(u.bytes());break;case 3:l.connection=e.ConnectionType.codec().decode(u);break;default:u.skipType(d&7);break}}return l})),c),o.encode=u=>De(u,o.codec()),o.decode=u=>Ne(u,o.codec())})(s=e.Peer||(e.Peer={}));let a;e.codec=()=>(a==null&&(a=ke((o,c,u={})=>{if(u.lengthDelimited!==!1&&c.fork(),o.type!=null&&(c.uint32(8),e.MessageType.codec().encode(o.type,c)),o.clusterLevelRaw!=null&&(c.uint32(80),c.int32(o.clusterLevelRaw)),o.key!=null&&(c.uint32(18),c.bytes(o.key)),o.record!=null&&(c.uint32(26),c.bytes(o.record)),o.closerPeers!=null)for(let f of o.closerPeers)c.uint32(66),e.Peer.codec().encode(f,c);if(o.providerPeers!=null)for(let f of o.providerPeers)c.uint32(74),e.Peer.codec().encode(f,c);u.lengthDelimited!==!1&&c.ldelim()},(o,c)=>{let u={closerPeers:[],providerPeers:[]},f=c==null?o.len:o.pos+c;for(;o.pos<f;){let l=o.uint32();switch(l>>>3){case 1:u.type=e.MessageType.codec().decode(o);break;case 10:u.clusterLevelRaw=o.int32();break;case 2:u.key=o.bytes();break;case 3:u.record=o.bytes();break;case 8:u.closerPeers.push(e.Peer.codec().decode(o,o.uint32()));break;case 9:u.providerPeers.push(e.Peer.codec().decode(o,o.uint32()));break;default:o.skipType(l&7);break}}return u})),a),e.encode=o=>De(o,e.codec()),e.decode=o=>Ne(o,e.codec())})(gr||(gr={}));var Pt=gr.MessageType,oc=gr.ConnectionType,wa=Object.keys(Pt),vt=class e{type;key;clusterLevelRaw;closerPeers;providerPeers;record;constructor(t,r,n){if(!(r instanceof Uint8Array))throw new Error("Key must be a Uint8Array");this.type=t,this.key=r,this.clusterLevelRaw=n,this.closerPeers=[],this.providerPeers=[],this.record=void 0}get clusterLevel(){let t=this.clusterLevelRaw-1;return t<0?0:t}set clusterLevel(t){this.clusterLevelRaw=t}serialize(){return gr.encode({key:this.key,type:this.type,clusterLevelRaw:this.clusterLevelRaw,closerPeers:this.closerPeers.map(va),providerPeers:this.providerPeers.map(va),record:this.record==null?void 0:this.record.serialize().subarray()})}static deserialize(t){let r=gr.decode(t),n=new e(r.type??gr.MessageType.PUT_VALUE,r.key??Uint8Array.from([]),r.clusterLevelRaw??0);return n.closerPeers=r.closerPeers.map(ba),n.providerPeers=r.providerPeers.map(ba),r.record?.length!=null&&(n.record=Mt.deserialize(r.record)),n}static encode(t){return t.serialize()}static decode(t){return e.deserialize(t)}};function va(e){return{id:e.id.toBytes(),addrs:(e.multiaddrs??[]).map(r=>r.bytes),connection:oc.CONNECTED}}function ba(e){if(e.id==null)throw new Error("Invalid peer in message");return{id:Dr(e.id),multiaddrs:(e.addrs??[]).map(t=>ss(t))}}function ms(e,t={}){let r={...e,name:"SEND_QUERY",type:0,messageName:e.type,messageType:wa.indexOf(e.type.toString())};return t.onProgress?.(new Rt("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 Rt("kad-dht:query:peer-response",{detail:r})),r}function M0(e,t={}){let r={...e,name:"FINAL_PEER",type:2};return t.onProgress?.(new Rt("kad-dht:query:final-peer",{detail:r})),r}function ne(e,t={}){let r={...e,name:"QUERY_ERROR",type:3};return t.onProgress?.(new Rt("kad-dht:query:query-error",{detail:r})),r}function xs(e,t={}){let r={...e,name:"PROVIDER",type:4};return t.onProgress?.(new Rt("kad-dht:query:provider",{detail:r})),r}function Jn(e,t={}){let r={...e,name:"VALUE",type:5};return t.onProgress?.(new Rt("kad-dht:query:value",{detail:r})),r}function vs(e,t={}){let r={...e,name:"DIAL_PEER",type:7};return t.onProgress?.(new Rt("kad-dht:query:dial-peer",{detail:r})),r}function Ea(e,t,r){if(r.length===0){let a="No records given";throw new P(a,"ERR_NO_RECORDS_RECEIVED")}let i=z(t).split("/");if(i.length<3){let a="Record key does not have a selector function";throw new P(a,"ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")}let s=e[i[1].toString()];if(s==null){let a=`No selector function configured for key type "${i[1]}"`;throw new P(a,"ERR_UNRECOGNIZED_KEY_PREFIX")}return r.length===1?0:s(t,r)}function ac(e,t){return 0}var Sa={pk:ac};async function gn(e,t){let r=t.key,i=z(r).split("/");if(i.length<3)return;let s=e[i[1].toString()];if(s==null){let a=`No validator available for key type "${i[1]}"`;throw new P(a,"ERR_INVALID_RECORD_KEY_TYPE")}await s(r,t.value)}var cc=async(e,t)=>{if(!(e instanceof Uint8Array))throw new P('"key" must be a Uint8Array',"ERR_INVALID_RECORD_KEY_NOT_BUFFER");if(e.byteLength<5)throw new P("invalid public key record","ERR_INVALID_RECORD_KEY_TOO_SHORT");if(z(e.subarray(0,4))!=="/pk/")throw new P("key was not prefixed with /pk/","ERR_INVALID_RECORD_KEY_BAD_PREFIX");let n=e.slice(4),i=await St.digest(t);if(!ht(n,i.bytes))throw new P("public key does not match passed in key","ERR_INVALID_RECORD_HASH_MISMATCH")},Ia={pk:cc};var Aa=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var Ye="/",Ba=new TextEncoder().encode(Ye),V0=Ba[0],mn=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=dt(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]!==V0)throw new Error("Invalid key")}toString(t="utf8"){return z(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join(Ye))}static random(){return new e(Aa().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new e(t):typeof t.uint8Array=="function"?new e(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Ba),this._buf[0]!==V0){let t=new Uint8Array(this._buf.byteLength+1);t.fill(V0,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===V0;)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 s=r[i],a=n[i];if(s<a)return!0;if(s>a)return!1}return r.length<n.length}reverse(){return e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(Ye).slice(1)}type(){return uc(this.baseNamespace())}name(){return fc(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(Ye)||(t+=Ye),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(Ye):new e(t.slice(0,-1).join(Ye))}child(t){return this.toString()===Ye?t:t.toString()===Ye?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(),...lc(t.map(r=>r.namespaces()))])}};function uc(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function fc(e){let t=e.split(":");return t[t.length-1]}function lc(e){return[].concat(...e)}var hc=dt("/pk/");function xn(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=Mn(n);return i==null?!0:!i})}}function vn(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=Mn(n);return i??!1})}}async function mr(e){return(await St.digest(e)).digest}async function we(e){return mr(e.toBytes())}function We(e){return new mn(`${b2}/${z(e,"base32")}`,!1)}function Ta(e){return yt([hc,e.toBytes()])}function _a(e){return z(e.subarray(0,4))==="/pk/"}function Ca(e){return Dr(e.subarray(4))}function bs(e,t){let r=new Date;return new Mt(e,t,r).serialize()}function Ra(e,t=100){let r;return()=>{clearTimeout(r),r=setTimeout(()=>{e()},t)}}var q0=class{log;components;validators;selectors;peerRouting;queryManager;network;constructor(t,r){let{validators:n,selectors:i,peerRouting:s,queryManager:a,network:o,lan:c}=r;this.components=t,this.log=t.logger.forComponent(`libp2p:kad-dht:${c?"lan":"wan"}:content-fetching`),this.validators=n,this.selectors=i,this.peerRouting=s,this.queryManager=a,this.network=o}async putLocal(t,r){let n=We(t);await this.components.datastore.put(n,r)}async getLocal(t){this.log("getLocal %b",t);let r=We(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=Mt.deserialize(n);return await gn(this.validators,i),i}async*sendCorrectionRecord(t,r,n,i={}){this.log("sendCorrection for %b",t);let s=bs(t,n);for(let{value:a,from:o}of r){if(ht(a,n)){this.log("record was ok");continue}if(this.components.peerId.equals(o)){try{let f=We(t);this.log(`Storing corrected record for key ${f.toString()}`),await this.components.datastore.put(f,s.subarray())}catch(f){this.log.error("Failed error correcting self",f)}continue}let c=!1,u=new vt(Pt.PUT_VALUE,t,0);u.record=Mt.deserialize(s);for await(let f of this.network.sendRequest(o,u,i))f.name==="PEER_RESPONSE"&&f.record!=null&&ht(f.record.value,Mt.deserialize(s).value)&&(c=!0),yield f;c||(yield ne({from:o,error:new P("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=bs(t,r),s=We(t);this.log(`storing record for key ${s.toString()}`),await this.components.datastore.put(s,i.subarray()),yield*lr(this.peerRouting.getClosestPeers(t,{signal:n.signal}),a=>N0(a,o=>async()=>{if(o.name!=="FINAL_PEER")return[o];let c=[],u=new vt(Pt.PUT_VALUE,t,0);u.record=Mt.deserialize(i),this.log("send put to %p",o.peer.id);for await(let f of this.network.sendRequest(o.peer.id,u,n))c.push(f),f.name==="PEER_RESPONSE"&&(f.record!=null&&ht(f.record.value,Mt.deserialize(i).value)||c.push(ne({from:o.peer.id,error:new P("value not put correctly","ERR_PUT_VALUE_INVALID")},n)));return c}),a=>Vn(a,{ordered:!1,concurrency:3}),async function*(a){for await(let o of a)yield*o})}async*get(t,r={}){this.log("get %b",t);let n=[];for await(let o of this.getMany(t,r))o.name==="VALUE"&&n.push(o),yield o;if(n.length===0)return;let i=n.map(o=>o.value),s=0;try{s=Ea(this.selectors,t,i)}catch(o){if(o.code!=="ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")throw o}let a=i[s];if(this.log("GetValue %b %b",t,a),a==null)throw new P("best value was not found","ERR_NOT_FOUND");yield*this.sendCorrectionRecord(t,n,a,r),yield n[s]}async*getMany(t,r={}){this.log("getMany values for %b",t);try{let s=await this.getLocal(t);yield Jn({value:s.value,from:this.components.peerId},r)}catch(s){this.log("error getting local value for %b",t,s)}let n=this,i=async function*({peer:s,signal:a}){for await(let o of n.peerRouting.getValueOrPeers(s,t,{signal:a}))yield o,o.name==="PEER_RESPONSE"&&o.record!=null&&(yield Jn({from:s,value:o.record.value},r))};yield*this.queryManager.run(t,i,r)}};var z0=class{log;components;network;peerRouting;queryManager;routingTable;providers;constructor(t,r){let{network:n,peerRouting:i,queryManager:s,routingTable:a,providers:o,lan:c}=r;this.components=t,this.log=t.logger.forComponent(`libp2p:kad-dht:${c?"lan":"wan"}:content-routing`),this.network=n,this.peerRouting=i,this.queryManager=s,this.routingTable=a,this.providers=o}async*provide(t,r,n={}){this.log("provide %s",t),await this.providers.addProvider(t,this.components.peerId);let i=new vt(Pt.ADD_PROVIDER,t.multihash.bytes,0);i.providerPeers=[{id:this.components.peerId,multiaddrs:r}];let s=0,a=o=>async()=>{if(o.name!=="FINAL_PEER")return[o];let c=[];this.log("putProvider %s to %p",t,o.peer.id);try{this.log("sending provider record for %s to %p",t,o.peer.id);for await(let u of this.network.sendMessage(o.peer.id,i,n))u.name==="PEER_RESPONSE"&&(this.log("sent provider record for %s to %p",t,o.peer.id),s++),c.push(u)}catch(u){this.log.error("error sending provide record to peer %p",o.peer.id,u),c.push(ne({from:o.peer.id,error:u},n))}return c};yield*lr(this.peerRouting.getClosestPeers(t.multihash.bytes,n),o=>N0(o,c=>a(c)),o=>Vn(o,{ordered:!1,concurrency:3}),async function*(o){for await(let c of o)yield*c}),this.log("sent provider records to %d peers",s)}async*findProviders(t,r){let n=this.routingTable.kBucketSize,i=t.multihash.bytes,s=this;this.log("findProviders %c",t);let a=await this.providers.getProviders(t);if(a.length>0){let u=[];for(let f of a.slice(0,n))try{let l=await this.components.peerStore.get(f);u.push({id:f,multiaddrs:l.addresses.map(({multiaddr:p})=>p)})}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:Pt.GET_PROVIDERS,providers:u},r),yield xs({from:this.components.peerId,providers:u},r)}if(a.length>=n)return;let o=async function*({peer:u,signal:f}){let l=new vt(Pt.GET_PROVIDERS,i,0);yield*s.network.sendRequest(u,l,{...r,signal:f})},c=new Set(a.map(u=>u.toString()));for await(let u of this.queryManager.run(i,o,r))if(yield u,u.name==="PEER_RESPONSE"){this.log("Found %d provider entries for %c and %d closer peers",u.providers.length,t,u.closer.length);let f=[];for(let l of u.providers)c.has(l.id.toString())||(c.add(l.id.toString()),f.push(l));if(f.length>0&&(yield xs({from:u.from,providers:f},r)),c.size===n)return}}};var La=Symbol.for("@achingbrain/uint8arraylist");function Pa(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 H0(e){return!!e?.[La]}var pe=class e{bufs;length;[La]=!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(H0(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(H0(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=Pa(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Pa(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(H0(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 yt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:yt(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),s=new e;return s.length=i,s.bufs=[...n],s}_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 s=0;s<this.bufs.length;s++){let a=this.bufs[s],o=i,c=o+a.byteLength;if(i=c,t>=c)continue;let u=t>=o&&t<c,f=r>o&&r<=c;if(u&&f){if(t===o&&r===c){n.push(a);break}let l=t-o;n.push(a.subarray(l,l+(r-t)));break}if(u){if(t===0){n.push(a);continue}n.push(a.subarray(t-o));continue}if(f){if(r===c){n.push(a);break}n.push(a.subarray(0,r-o));break}n.push(a)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!H0(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 s=256,a=new Int32Array(s);for(let l=0;l<s;l++)a[l]=-1;for(let l=0;l<i;l++)a[n[l]]=l;let o=a,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let l=r;l<=c;l+=f){f=0;for(let p=u;p>=0;p--){let d=this.get(l+p);if(n[p]!==d){f=Math.max(1,p-o[d]);break}}if(f===0)return l}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=zt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=Qe(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=Qe(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=Qe(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=zt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=Qe(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=Qe(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=Qe(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=Qe(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=Qe(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(!ht(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,s)=>i+s.byteLength,0)),n.length=r,n}};var $0=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 Na(e,t,r){if(t==null)return e;if(t.aborted)return Promise.reject(new $0(r?.errorMessage,r?.errorCode));let n,i=new $0(r?.errorMessage,r?.errorCode);try{return await Promise.race([e,new Promise((s,a)=>{n=()=>{a(i)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var Es=class{needNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.needNext=qt(),this.needNext.resolve(),this.haveNext=qt()}[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=qt(),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=qt(),await Na(this.needNext.promise,r?.signal,r)}};function Da(){return new Es}var G0=class extends Error{code;constructor(t,r){super(t),this.code=r}},Ss=class extends G0{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function ka(e,t){let r=Da();e.sink(r).catch(async a=>{await r.end(a)}),e.sink=async a=>{for await(let o of a)await r.push(o);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 pe;return{read:async(a,o)=>{o?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new Ss("Read aborted"))},o?.signal?.addEventListener("abort",c)});try{if(a==null){let{done:l,value:p}=await Promise.race([n.next(),u]);return l===!0?new pe:p}for(;i.byteLength<a;){let{value:l,done:p}=await Promise.race([n.next(),u]);if(p===!0)throw new G0("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(l)}let f=i.sublist(0,a);return i.consume(a),f}finally{c!=null&&o?.signal?.removeEventListener("abort",c)}},write:async(a,o)=>{o?.signal?.throwIfAborted(),a instanceof Uint8Array?await r.push(a,o):await r.push(a.subarray(),o)},unwrap:()=>{if(i.byteLength>0){let a=e.source;e.source=async function*(){t?.yieldBytes===!1?yield i:yield*i,yield*a}()}return e}}}function Q0(e){return e[Symbol.asyncIterator]!=null}var Y0=e=>{let t=jt(e),r=zt(t);return Le(e,r),Y0.bytes=t,r};Y0.bytes=0;function Ur(e,t){t=t??{};let r=t.lengthEncoder??Y0;function*n(i){let s=r(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}return Q0(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??Y0;return new pe(r(e.byteLength),e)};var wn=Bt(Fa(),1);var pc=8,yc=1024*1024*4,Fr;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Fr||(Fr={}));var Is=e=>{let t=ue(e);return Is.bytes=jt(t),t};Is.bytes=0;function jn(e,t){let r=new pe,n=Fr.LENGTH,i=-1,s=t?.lengthDecoder??Is,a=t?.maxLengthLength??pc,o=t?.maxDataLength??yc;function*c(){for(;r.byteLength>0;){if(n===Fr.LENGTH)try{if(i=s(r),i<0)throw(0,wn.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>o)throw(0,wn.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=Fr.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>a)throw(0,wn.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Fr.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Fr.LENGTH}}}return Q0(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,wn.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,wn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}jn.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:a}=await e.next(r);if(s===!0)return;a!=null&&(yield a)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{r=1}}();return jn(n,{...t??{},onLength:s=>{r=s}})};var W0=class extends Error{code;constructor(t,r){super(t),this.code=r}},Ma=e=>ue(e);Ma.bytes=0;function Va(e,t={}){let r=ka(e,t);return t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=jt(t.maxDataLength)),{read:async i=>{let s=-1,a=new pe,o=t?.lengthDecoder??Ma;for(;;){a.append(await r.read(1,i));try{s=o(a)}catch(c){if(c instanceof RangeError)continue;throw c}if(t?.maxLengthLength!=null&&a.byteLength>t.maxLengthLength)throw new W0("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(s>-1)break}if(t?.maxDataLength!=null&&s>t.maxDataLength)throw new W0("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(s,i)},write:async(i,s)=>{await r.write(Ur.single(i,t),s)},writeV:async(i,s)=>{let a=new pe(...i.map(o=>Ur.single(o,t)));await r.write(a,s)},unwrap:()=>r.unwrap()}}function As(e,t){let r=Va(e,t),n={read:async(i,s)=>{let a=await r.read(s);return i.decode(a)},write:async(i,s,a)=>{await r.write(s.encode(i),a)},writeV:async(i,s,a)=>{await r.writeV(i.map(o=>s.encode(o)),a)},pb:i=>({read:async s=>n.read(i,s),write:async(s,a)=>n.write(s,i,a),writeV:async(s,a)=>n.writeV(s,i,a),unwrap:()=>n}),unwrap:()=>r.unwrap()};return n}var Z0=class extends Xt{log;protocol;running;components;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=t.logger.forComponent(`libp2p:kad-dht:${i?"lan":"wan"}:network`),this.running=!1,this.protocol=n}async start(){this.running||(this.running=!0)}async stop(){this.running=!1}isStarted(){return this.running}async*sendRequest(t,r,n={}){if(!this.running)return;this.log("sending %s to %p",r.type,t),yield vs({peer:t},n),yield ms({to:t,type:r.type},n);let i;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n),o=await this._writeReadMessage(a,r,n);yield Xn({from:t,messageType:o.type,closer:o.closerPeers,providers:o.providerPeers,record:o.record},n)}catch(s){yield ne({from:t,error:s},n)}finally{i!=null&&await i.close()}}async*sendMessage(t,r,n={}){if(!this.running)return;this.log("sending %s to %p",r.type,t),yield vs({peer:t},n),yield ms({to:t,type:r.type},n);let i;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n);await this._writeMessage(a,r,n),yield Xn({from:t,messageType:r.type},n)}catch(s){yield ne({from:t,error:s},n)}finally{i!=null&&await i.close()}}async _writeMessage(t,r,n){let i=As(t);await i.write(r,vt,n),await i.unwrap().close(n)}async _writeReadMessage(t,r,n){let i=As(t);await i.write(r,vt,n);let s=await i.read(vt,n);return await i.unwrap().close(n),s.closerPeers.forEach(a=>{this.dispatchEvent(new Rt("peer",{detail:a}))}),s.providerPeers.forEach(a=>{this.dispatchEvent(new Rt("peer",{detail:a}))}),s}};var qg=Bt(e1(),1),Sc=Bt(ut(),1);var Nt={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 r3={SHA1:20,SHA256:32,SHA512:64};var Bc={SHA1:"SHA-1",SHA256:"SHA-256",SHA512:"SHA-512"},Tc=async(e,t)=>{let r=await Nt.get().subtle.sign({name:"HMAC"},e,t);return new Uint8Array(r,0,r.byteLength)};async function n3(e,t){let r=Bc[e],n=await Nt.get().subtle.importKey("raw",t,{name:"HMAC",hash:{name:r}},!1,["sign"]);return{async digest(i){return Tc(n,i)},length:r3[e]}}var k1={};Ot(k1,{generateEphemeralKeyPair:()=>k4,generateKeyPair:()=>_l,generateKeyPairFromSeed:()=>Cl,importKey:()=>Nl,keyStretcher:()=>F4,keysPBM:()=>Nn,marshalPrivateKey:()=>Ll,marshalPublicKey:()=>Pl,supportedKeys:()=>ze,unmarshalPrivateKey:()=>d5,unmarshalPublicKey:()=>Rl});var Fv=Bt(n0(),1),Kv=Bt(s4(),1);var D1=Bt(ut(),1);var po={};Ot(po,{Ed25519PrivateKey:()=>Qr,Ed25519PublicKey:()=>u0,generateKeyPair:()=>Jf,generateKeyPairFromSeed:()=>ho,unmarshalEd25519PrivateKey:()=>Zf,unmarshalEd25519PublicKey:()=>Xf});function o4(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Ys(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function a4(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");o4(e.outputLen),o4(e.blockLen)}function Bn(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 c4(e,t){Ys(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var g1=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var u4=e=>e instanceof Uint8Array;var m1=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Ie=(e,t)=>e<<32-t|e>>>t,$7=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!$7)throw new Error("Non little-endian hardware is not supported");function Ws(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function o0(e){if(typeof e=="string"&&(e=Ws(e)),!u4(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function x1(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!u4(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Tn=class{clone(){return this._cloneInto()}},wm={}.toString;function v1(e){let t=n=>e().update(o0(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function _n(e=32){if(g1&&typeof g1.getRandomValues=="function")return g1.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function G7(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),s=BigInt(4294967295),a=Number(r>>i&s),o=Number(r&s),c=n?4:0,u=n?0:4;e.setUint32(t+c,a,n),e.setUint32(t+u,o,n)}var Cn=class extends Tn{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=m1(this.buffer)}update(t){Bn(this);let{view:r,buffer:n,blockLen:i}=this;t=o0(t);let s=t.length;for(let a=0;a<s;){let o=Math.min(i-this.pos,s-a);if(o===i){let c=m1(t);for(;i<=s-a;a+=i)this.process(c,a);continue}n.set(t.subarray(a,a+o),this.pos),this.pos+=o,a+=o,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Bn(this),c4(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:s}=this,{pos:a}=this;r[a++]=128,this.buffer.subarray(a).fill(0),this.padOffset>i-a&&(this.process(n,0),a=0);for(let l=a;l<i;l++)r[l]=0;G7(n,i-8,BigInt(this.length*8),s),this.process(n,0);let o=m1(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++)o.setUint32(4*l,f[l],s)}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:s,destroyed:a,pos:o}=this;return t.length=i,t.pos=o,t.finished=s,t.destroyed=a,i%r&&t.buffer.set(n),t}};var b1=BigInt(4294967295),Zs=BigInt(32);function f4(e,t=!1){return t?{h:Number(e&b1),l:Number(e>>Zs&b1)}:{h:Number(e>>Zs&b1)|0,l:Number(e&b1)|0}}function Q7(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:s,l:a}=f4(e[i],t);[r[i],n[i]]=[s,a]}return[r,n]}var Y7=(e,t)=>BigInt(e>>>0)<<Zs|BigInt(t>>>0),W7=(e,t,r)=>e>>>r,Z7=(e,t,r)=>e<<32-r|t>>>r,X7=(e,t,r)=>e>>>r|t<<32-r,J7=(e,t,r)=>e<<32-r|t>>>r,j7=(e,t,r)=>e<<64-r|t>>>r-32,tf=(e,t,r)=>e>>>r-32|t<<64-r,ef=(e,t)=>t,rf=(e,t)=>e,nf=(e,t,r)=>e<<r|t>>>32-r,sf=(e,t,r)=>t<<r|e>>>32-r,of=(e,t,r)=>t<<r-32|e>>>64-r,af=(e,t,r)=>e<<r-32|t>>>64-r;function cf(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var uf=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),ff=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,lf=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),hf=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,df=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),pf=(e,t,r,n,i,s)=>t+r+n+i+s+(e/2**32|0)|0;var yf={fromBig:f4,split:Q7,toBig:Y7,shrSH:W7,shrSL:Z7,rotrSH:X7,rotrSL:J7,rotrBH:j7,rotrBL:tf,rotr32H:ef,rotr32L:rf,rotlSH:nf,rotlSL:sf,rotlBH:of,rotlBL:af,add:cf,add3L:uf,add3H:ff,add4L:lf,add4H:hf,add5H:pf,add5L:df},W=yf;var[gf,mf]=W.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Er=new Uint32Array(80),Sr=new Uint32Array(80),Xs=class extends Cn{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:s,Cl:a,Dh:o,Dl:c,Eh:u,El:f,Fh:l,Fl:p,Gh:d,Gl:h,Hh:y,Hl:g}=this;return[t,r,n,i,s,a,o,c,u,f,l,p,d,h,y,g]}set(t,r,n,i,s,a,o,c,u,f,l,p,d,h,y,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=s|0,this.Cl=a|0,this.Dh=o|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=p|0,this.Gh=d|0,this.Gl=h|0,this.Hh=y|0,this.Hl=g|0}process(t,r){for(let v=0;v<16;v++,r+=4)Er[v]=t.getUint32(r),Sr[v]=t.getUint32(r+=4);for(let v=16;v<80;v++){let T=Er[v-15]|0,E=Sr[v-15]|0,S=W.rotrSH(T,E,1)^W.rotrSH(T,E,8)^W.shrSH(T,E,7),L=W.rotrSL(T,E,1)^W.rotrSL(T,E,8)^W.shrSL(T,E,7),N=Er[v-2]|0,G=Sr[v-2]|0,$=W.rotrSH(N,G,19)^W.rotrBH(N,G,61)^W.shrSH(N,G,6),q=W.rotrSL(N,G,19)^W.rotrBL(N,G,61)^W.shrSL(N,G,6),J=W.add4L(L,q,Sr[v-7],Sr[v-16]),ft=W.add4H(J,S,$,Er[v-7],Er[v-16]);Er[v]=ft|0,Sr[v]=J|0}let{Ah:n,Al:i,Bh:s,Bl:a,Ch:o,Cl:c,Dh:u,Dl:f,Eh:l,El:p,Fh:d,Fl:h,Gh:y,Gl:g,Hh:m,Hl:x}=this;for(let v=0;v<80;v++){let T=W.rotrSH(l,p,14)^W.rotrSH(l,p,18)^W.rotrBH(l,p,41),E=W.rotrSL(l,p,14)^W.rotrSL(l,p,18)^W.rotrBL(l,p,41),S=l&d^~l&y,L=p&h^~p&g,N=W.add5L(x,E,L,mf[v],Sr[v]),G=W.add5H(N,m,T,S,gf[v],Er[v]),$=N|0,q=W.rotrSH(n,i,28)^W.rotrBH(n,i,34)^W.rotrBH(n,i,39),J=W.rotrSL(n,i,28)^W.rotrBL(n,i,34)^W.rotrBL(n,i,39),ft=n&s^n&o^s&o,Qt=i&a^i&c^a&c;m=y|0,x=g|0,y=d|0,g=h|0,d=l|0,h=p|0,{h:l,l:p}=W.add(u|0,f|0,G|0,$|0),u=o|0,f=c|0,o=s|0,c=a|0,s=n|0,a=i|0;let _=W.add3L($,J,Qt);n=W.add3H(_,G,q,ft),i=_|0}({h:n,l:i}=W.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:a}=W.add(this.Bh|0,this.Bl|0,s|0,a|0),{h:o,l:c}=W.add(this.Ch|0,this.Cl|0,o|0,c|0),{h:u,l:f}=W.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=W.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:h}=W.add(this.Fh|0,this.Fl|0,d|0,h|0),{h:y,l:g}=W.add(this.Gh|0,this.Gl|0,y|0,g|0),{h:m,l:x}=W.add(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,i,s,a,o,c,u,f,l,p,d,h,y,g,m,x)}roundClean(){Er.fill(0),Sr.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 Js=v1(()=>new Xs);var S1={};Ot(S1,{bitGet:()=>If,bitLen:()=>Sf,bitMask:()=>a0,bitSet:()=>Af,bytesToHex:()=>je,bytesToNumberBE:()=>tr,bytesToNumberLE:()=>Ir,concatBytes:()=>er,createHmacDrbg:()=>eo,ensureBytes:()=>Ct,equalBytes:()=>wf,hexToBytes:()=>Hr,hexToNumber:()=>to,numberToBytesBE:()=>Ar,numberToBytesLE:()=>$r,numberToHexUnpadded:()=>d4,numberToVarBytesBE:()=>bf,utf8ToBytes:()=>Ef,validateObject:()=>qe});var h4=BigInt(0),w1=BigInt(1),xf=BigInt(2),E1=e=>e instanceof Uint8Array,vf=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function je(e){if(!E1(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=vf[e[r]];return t}function d4(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function to(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function Hr(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,s=e.slice(i,i+2),a=Number.parseInt(s,16);if(Number.isNaN(a)||a<0)throw new Error("Invalid byte sequence");r[n]=a}return r}function tr(e){return to(je(e))}function Ir(e){if(!E1(e))throw new Error("Uint8Array expected");return to(je(Uint8Array.from(e).reverse()))}function Ar(e,t){return Hr(e.toString(16).padStart(t*2,"0"))}function $r(e,t){return Ar(e,t).reverse()}function bf(e){return Hr(d4(e))}function Ct(e,t,r){let n;if(typeof t=="string")try{n=Hr(t)}catch(s){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${s}`)}else if(E1(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 er(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!E1(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function wf(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function Ef(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Sf(e){let t;for(t=0;e>h4;e>>=w1,t+=1);return t}function If(e,t){return e>>BigInt(t)&w1}var Af=(e,t,r)=>e|(r?w1:h4)<<BigInt(t),a0=e=>(xf<<BigInt(e-1))-w1,js=e=>new Uint8Array(e),l4=e=>Uint8Array.from(e);function eo(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=js(e),i=js(e),s=0,a=()=>{n.fill(1),i.fill(0),s=0},o=(...l)=>r(i,n,...l),c=(l=js())=>{i=o(l4([0]),l),n=o(),l.length!==0&&(i=o(l4([1]),l),n=o())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,p=[];for(;l<t;){n=o();let d=n.slice();p.push(d),l+=n.length}return er(...p)};return(l,p)=>{a(),c(l);let d;for(;!(d=p(u()));)c();return a(),d}}var Bf={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function qe(e,t,r={}){let n=(i,s,a)=>{let o=Bf[s];if(typeof o!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=e[i];if(!(a&&c===void 0)&&!o(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${s}`)};for(let[i,s]of Object.entries(t))n(i,s,!1);for(let[i,s]of Object.entries(r))n(i,s,!0);return e}var Vt=BigInt(0),wt=BigInt(1),Gr=BigInt(2),Tf=BigInt(3),ro=BigInt(4),p4=BigInt(5),y4=BigInt(8),_f=BigInt(9),Cf=BigInt(16);function lt(e,t){let r=e%t;return r>=Vt?r:t+r}function Rf(e,t,r){if(r<=Vt||t<Vt)throw new Error("Expected power/modulo > 0");if(r===wt)return Vt;let n=wt;for(;t>Vt;)t&wt&&(n=n*e%r),e=e*e%r,t>>=wt;return n}function Et(e,t,r){let n=e;for(;t-- >Vt;)n*=n,n%=r;return n}function I1(e,t){if(e===Vt||t<=Vt)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=lt(e,t),n=t,i=Vt,s=wt,a=wt,o=Vt;for(;r!==Vt;){let u=n/r,f=n%r,l=i-a*u,p=s-o*u;n=r,r=f,i=a,s=o,a=l,o=p}if(n!==wt)throw new Error("invert: does not exist");return lt(i,t)}function Pf(e){let t=(e-wt)/Gr,r,n,i;for(r=e-wt,n=0;r%Gr===Vt;r/=Gr,n++);for(i=Gr;i<e&&Rf(i,t,e)!==e-wt;i++);if(n===1){let a=(e+wt)/ro;return function(c,u){let f=c.pow(u,a);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let s=(r+wt)/Gr;return function(o,c){if(o.pow(c,t)===o.neg(o.ONE))throw new Error("Cannot find square root");let u=n,f=o.pow(o.mul(o.ONE,i),r),l=o.pow(c,s),p=o.pow(c,r);for(;!o.eql(p,o.ONE);){if(o.eql(p,o.ZERO))return o.ZERO;let d=1;for(let y=o.sqr(p);d<u&&!o.eql(y,o.ONE);d++)y=o.sqr(y);let h=o.pow(f,wt<<BigInt(u-d-1));f=o.sqr(h),l=o.mul(l,h),p=o.mul(p,f),u=d}return l}}function Lf(e){if(e%ro===Tf){let t=(e+wt)/ro;return function(n,i){let s=n.pow(i,t);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(e%y4===p4){let t=(e-p4)/y4;return function(n,i){let s=n.mul(i,Gr),a=n.pow(s,t),o=n.mul(i,a),c=n.mul(n.mul(o,Gr),a),u=n.mul(o,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return e%Cf,Pf(e)}var g4=(e,t)=>(lt(e,t)&wt)===wt,Nf=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function no(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=Nf.reduce((n,i)=>(n[i]="function",n),t);return qe(e,r)}function Df(e,t,r){if(r<Vt)throw new Error("Expected power > 0");if(r===Vt)return e.ONE;if(r===wt)return t;let n=e.ONE,i=t;for(;r>Vt;)r&wt&&(n=e.mul(n,i)),i=e.sqr(i),r>>=wt;return n}function kf(e,t){let r=new Array(t.length),n=t.reduce((s,a,o)=>e.is0(a)?s:(r[o]=s,e.mul(s,a)),e.ONE),i=e.inv(n);return t.reduceRight((s,a,o)=>e.is0(a)?s:(r[o]=e.mul(s,r[o]),e.mul(s,a)),i),r}function io(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function A1(e,t,r=!1,n={}){if(e<=Vt)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:s}=io(e,t);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let a=Lf(e),o=Object.freeze({ORDER:e,BITS:i,BYTES:s,MASK:a0(i),ZERO:Vt,ONE:wt,create:c=>lt(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Vt<=c&&c<e},is0:c=>c===Vt,isOdd:c=>(c&wt)===wt,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)=>Df(o,c,u),div:(c,u)=>lt(c*I1(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>I1(c,e),sqrt:n.sqrt||(c=>a(o,c)),invertBatch:c=>kf(o,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?$r(c,s):Ar(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return r?Ir(c):tr(c)}});return Object.freeze(o)}function m4(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 x4(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 so(e){let t=x4(e);return t+Math.ceil(t/2)}function v4(e,t,r=!1){let n=e.length,i=x4(t),s=so(t);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let a=r?tr(e):Ir(e),o=lt(a,t-wt)+wt;return r?$r(o,i):Ar(o,i)}var Uf=BigInt(0),oo=BigInt(1);function B1(e,t){let r=(i,s)=>{let a=s.negate();return i?a:s},n=i=>{let s=Math.ceil(t/i)+1,a=2**(i-1);return{windows:s,windowSize:a}};return{constTimeNegate:r,unsafeLadder(i,s){let a=e.ZERO,o=i;for(;s>Uf;)s&oo&&(a=a.add(o)),o=o.double(),s>>=oo;return a},precomputeWindow(i,s){let{windows:a,windowSize:o}=n(s),c=[],u=i,f=u;for(let l=0;l<a;l++){f=u,c.push(f);for(let p=1;p<o;p++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(i,s,a){let{windows:o,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<o;h++){let y=h*c,g=Number(a&l);a>>=d,g>c&&(g-=p,a+=oo);let m=y,x=y+Math.abs(g)-1,v=h%2!==0,T=g<0;g===0?f=f.add(r(v,s[m])):u=u.add(r(T,s[x]))}return{p:u,f}},wNAFCached(i,s,a,o){let c=i._WINDOW_SIZE||1,u=s.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&s.set(i,o(u))),this.wNAF(c,u,a)}}}function c0(e){return no(e.Fp),qe(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...io(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Ae=BigInt(0),fe=BigInt(1),T1=BigInt(2),Ff=BigInt(8),Kf={zip215:!0};function Mf(e){let t=c0(e);return qe(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function _1(e){let t=Mf(e),{Fp:r,n,prehash:i,hash:s,randomBytes:a,nByteLength:o,h:c}=t,u=T1<<BigInt(o*8)-fe,f=r.create,l=t.uvRatio||((D,A)=>{try{return{isValid:!0,value:r.sqrt(D*r.inv(A))}}catch{return{isValid:!1,value:Ae}}}),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"&&Ae<D,y=(D,A)=>h(D)&&h(A)&&D<A,g=D=>D===Ae||y(D,u);function m(D,A){if(y(D,A))return D;throw new Error(`Expected valid scalar < ${A}, got ${typeof D} ${D}`)}function x(D){return D===Ae?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,H){if(this.ex=A,this.ey=F,this.ez=M,this.et=H,!g(A))throw new Error("x required");if(!g(F))throw new Error("y required");if(!g(M))throw new Error("z required");if(!g(H))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(A){if(A instanceof E)throw new Error("extended point not allowed");let{x:F,y:M}=A||{};if(!g(F)||!g(M))throw new Error("invalid affine point");return new E(F,M,fe,f(F*M))}static normalizeZ(A){let F=r.invertBatch(A.map(M=>M.ez));return A.map((M,H)=>M.toAffine(F[H])).map(E.fromAffine)}_setWindowSize(A){this._WINDOW_SIZE=A,v.delete(this)}assertValidity(){let{a:A,d:F}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:M,ey:H,ez:Z,et:j}=this,at=f(M*M),tt=f(H*H),nt=f(Z*Z),kt=f(nt*nt),At=f(at*A),Yt=f(nt*f(At+tt)),Wt=f(kt+f(F*f(at*tt)));if(Yt!==Wt)throw new Error("bad point: equation left != right (1)");let Ft=f(M*H),Zt=f(Z*j);if(Ft!==Zt)throw new Error("bad point: equation left != right (2)")}equals(A){T(A);let{ex:F,ey:M,ez:H}=this,{ex:Z,ey:j,ez:at}=A,tt=f(F*at),nt=f(Z*H),kt=f(M*at),At=f(j*H);return tt===nt&&kt===At}is0(){return this.equals(E.ZERO)}negate(){return new E(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:A}=t,{ex:F,ey:M,ez:H}=this,Z=f(F*F),j=f(M*M),at=f(T1*f(H*H)),tt=f(A*Z),nt=F+M,kt=f(f(nt*nt)-Z-j),At=tt+j,Yt=At-at,Wt=tt-j,Ft=f(kt*Yt),Zt=f(At*Wt),He=f(kt*Wt),Pr=f(Yt*At);return new E(Ft,Zt,Pr,He)}add(A){T(A);let{a:F,d:M}=t,{ex:H,ey:Z,ez:j,et:at}=this,{ex:tt,ey:nt,ez:kt,et:At}=A;if(F===BigInt(-1)){let Yo=f((Z-H)*(nt+tt)),Wo=f((Z+H)*(nt-tt)),di=f(Wo-Yo);if(di===Ae)return this.double();let Zo=f(j*T1*At),Xo=f(at*T1*kt),Jo=Xo+Zo,jo=Wo+Yo,t2=Xo-Zo,z5=f(Jo*di),H5=f(jo*t2),$5=f(Jo*t2),G5=f(di*jo);return new E(z5,H5,G5,$5)}let Yt=f(H*tt),Wt=f(Z*nt),Ft=f(at*M*At),Zt=f(j*kt),He=f((H+Z)*(tt+nt)-Yt-Wt),Pr=Zt-Ft,Fn=Zt+Ft,Qo=f(Wt-F*Yt),K5=f(He*Pr),M5=f(Fn*Qo),V5=f(He*Qo),q5=f(Pr*Fn);return new E(K5,M5,q5,V5)}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===Ae?L:this.equals(L)||F===fe?this:this.equals(S)?this.wNAF(F).p:N.unsafeLadder(this,F)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return N.unsafeLadder(this,n).is0()}toAffine(A){let{ex:F,ey:M,ez:H}=this,Z=this.is0();A==null&&(A=Z?Ff:r.inv(H));let j=f(F*A),at=f(M*A),tt=f(H*A);if(Z)return{x:Ae,y:fe};if(tt!==fe)throw new Error("invZ was invalid");return{x:j,y:at}}clearCofactor(){let{h:A}=t;return A===fe?this:this.multiplyUnsafe(A)}static fromHex(A,F=!1){let{d:M,a:H}=t,Z=r.BYTES;A=Ct("pointHex",A,Z);let j=A.slice(),at=A[Z-1];j[Z-1]=at&-129;let tt=Ir(j);tt===Ae||(F?m(tt,u):m(tt,r.ORDER));let nt=f(tt*tt),kt=f(nt-fe),At=f(M*nt-H),{isValid:Yt,value:Wt}=l(kt,At);if(!Yt)throw new Error("Point.fromHex: invalid y coordinate");let Ft=(Wt&fe)===fe,Zt=(at&128)!==0;if(!F&&Wt===Ae&&Zt)throw new Error("Point.fromHex: x=0 and x_0=1");return Zt!==Ft&&(Wt=f(-Wt)),E.fromAffine({x:Wt,y:tt})}static fromPrivateKey(A){return q(A).point}toRawBytes(){let{x:A,y:F}=this.toAffine(),M=$r(F,r.BYTES);return M[M.length-1]|=A&fe?128:0,M}toHex(){return je(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,fe,f(t.Gx*t.Gy)),E.ZERO=new E(Ae,fe,fe,Ae);let{BASE:S,ZERO:L}=E,N=B1(E,o*8);function G(D){return lt(D,n)}function $(D){return G(Ir(D))}function q(D){let A=o;D=Ct("private key",D,A);let F=Ct("hashed private key",s(D),2*A),M=p(F.slice(0,A)),H=F.slice(A,2*A),Z=$(M),j=S.multiply(Z),at=j.toRawBytes();return{head:M,prefix:H,scalar:Z,point:j,pointBytes:at}}function J(D){return q(D).pointBytes}function ft(D=new Uint8Array,...A){let F=er(...A);return $(s(d(F,Ct("context",D),!!i)))}function Qt(D,A,F={}){D=Ct("message",D),i&&(D=i(D));let{prefix:M,scalar:H,pointBytes:Z}=q(A),j=ft(F.context,M,D),at=S.multiply(j).toRawBytes(),tt=ft(F.context,at,Z,D),nt=G(j+tt*H);x(nt);let kt=er(at,$r(nt,r.BYTES));return Ct("result",kt,o*2)}let _=Kf;function k(D,A,F,M=_){let{context:H,zip215:Z}=M,j=r.BYTES;D=Ct("signature",D,2*j),A=Ct("message",A),i&&(A=i(A));let at=Ir(D.slice(j,2*j)),tt,nt,kt;try{tt=E.fromHex(F,Z),nt=E.fromHex(D.slice(0,j),Z),kt=S.multiplyUnsafe(at)}catch{return!1}if(!Z&&tt.isSmallOrder())return!1;let At=ft(H,nt.toRawBytes(),tt.toRawBytes(),A);return nt.add(tt.multiplyUnsafe(At)).subtract(kt).clearCofactor().equals(E.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:J,sign:Qt,verify:k,ExtendedPoint:E,utils:{getExtendedPublicKey:q,randomPrivateKey:()=>a(r.BYTES),precompute(D=8,A=E.BASE){return A._setWindowSize(D),A.multiply(BigInt(3)),A}}}}var co=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),b4=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),zm=BigInt(0),Vf=BigInt(1),ao=BigInt(2),qf=BigInt(5),w4=BigInt(10),zf=BigInt(20),Hf=BigInt(40),E4=BigInt(80);function $f(e){let t=co,n=e*e%t*e%t,i=Et(n,ao,t)*n%t,s=Et(i,Vf,t)*e%t,a=Et(s,qf,t)*s%t,o=Et(a,w4,t)*a%t,c=Et(o,zf,t)*o%t,u=Et(c,Hf,t)*c%t,f=Et(u,E4,t)*u%t,l=Et(f,E4,t)*u%t,p=Et(l,w4,t)*a%t;return{pow_p_5_8:Et(p,ao,t)*e%t,b2:n}}function Gf(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function Qf(e,t){let r=co,n=lt(t*t*t,r),i=lt(n*n*t,r),s=$f(e*i).pow_p_5_8,a=lt(e*n*s,r),o=lt(t*a*a,r),c=a,u=lt(a*b4,r),f=o===e,l=o===lt(-e,r),p=o===lt(-e*b4,r);return f&&(a=c),(l||p)&&(a=u),g4(a,r)&&(a=lt(-a,r)),{isValid:f||l,value:a}}var rr=A1(co,void 0,!0),uo={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:rr,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Js,randomBytes:_n,adjustScalarBytes:Gf,uvRatio:Qf},Rn=_1(uo);function S4(e,t,r){if(t.length>255)throw new Error("Context is too big");return x1(Ws("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var Hm=_1({...uo,domain:S4}),$m=_1({...uo,domain:S4,prehash:Js});var Yf=(rr.ORDER+BigInt(3))/BigInt(8),Gm=rr.pow(ao,Yf),Qm=rr.sqrt(rr.neg(rr.ONE)),Ym=(rr.ORDER-BigInt(5))/BigInt(8),Wm=BigInt(486662);var Zm=m4(rr,rr.neg(BigInt(486664)));var Xm=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Jm=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),jm=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),tx=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var ex=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Pn=32,nr=64,C1=32;function I4(){let e=Rn.utils.randomPrivateKey(),t=Rn.getPublicKey(e);return{privateKey:_4(e,t),publicKey:t}}function A4(e){if(e.length!==C1)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=Rn.getPublicKey(t);return{privateKey:_4(t,r),publicKey:r}}function B4(e,t){let r=e.subarray(0,C1);return Rn.sign(t instanceof Uint8Array?t:t.subarray(),r)}function T4(e,t,r){return Rn.verify(t,r instanceof Uint8Array?r:r.subarray(),e)}function _4(e,t){let r=new Uint8Array(nr);for(let n=0;n<C1;n++)r[n]=e[n],r[C1+n]=t[n];return r}var fo={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function R1(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",s=e?.saltLength??16,a=e?.iterations??32767,o=Nt.get();r*=8;async function c(l,p){let d=o.getRandomValues(new Uint8Array(s)),h=o.getRandomValues(new Uint8Array(n)),y={name:t,iv:h};typeof p=="string"&&(p=dt(p));let g;if(p.length===0){g=await o.subtle.importKey("jwk",fo,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},v=await o.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);g=await o.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}catch{g=await o.subtle.importKey("jwk",fo,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},v=await o.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);g=await o.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}let m=await o.subtle.encrypt(y,g,l);return yt([d,y.iv,new Uint8Array(m)])}async function u(l,p){let d=l.subarray(0,s),h=l.subarray(s,s+n),y=l.subarray(s+n),g={name:t,iv:h};typeof p=="string"&&(p=dt(p));let m;if(p.length===0)try{let v={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},T=await o.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await o.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}catch{m=await o.subtle.importKey("jwk",fo,{name:"AES-GCM"},!0,["decrypt"])}else{let v={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},T=await o.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await o.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}let x=await o.subtle.decrypt(g,m,y);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Ln(e,t){let n=await R1().encrypt(e,t);return qn.encode(n)}var Nn={};Ot(Nn,{KeyType:()=>mt,PrivateKey:()=>Te,PublicKey:()=>Be});var mt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(mt||(mt={}));var lo;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(lo||(lo={}));(function(e){e.codec=()=>yn(lo)})(mt||(mt={}));var Be;(function(e){let t;e.codec=()=>(t==null&&(t=ke((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),mt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let a=r.uint32();switch(a>>>3){case 1:i.Type=mt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>De(r,e.codec()),e.decode=r=>Ne(r,e.codec())})(Be||(Be={}));var Te;(function(e){let t;e.codec=()=>(t==null&&(t=ke((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),mt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let a=r.uint32();switch(a>>>3){case 1:i.Type=mt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>De(r,e.codec()),e.decode=r=>Ne(r,e.codec())})(Te||(Te={}));var u0=class{_key;constructor(t){this._key=Dn(t,Pn)}async verify(t,r){return T4(this._key,r,t)}marshal(){return this._key}get bytes(){return Be.encode({Type:mt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return ht(this.bytes,t.bytes)}async hash(){let{bytes:t}=await St.digest(this.bytes);return t}},Qr=class{_key;_publicKey;constructor(t,r){this._key=Dn(t,nr),this._publicKey=Dn(r,Pn)}async sign(t){return B4(this._key,t)}get public(){return new u0(this._publicKey)}marshal(){return this._key}get bytes(){return Te.encode({Type:mt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return ht(this.bytes,t.bytes)}async hash(){let{bytes:t}=await St.digest(this.bytes);return t}async id(){let t=dr.digest(this.public.bytes);return Kt.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Ln(this.bytes,t);throw new P(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Zf(e){if(e.length>nr){e=Dn(e,nr+Pn);let n=e.subarray(0,nr),i=e.subarray(nr,e.length);return new Qr(n,i)}e=Dn(e,nr);let t=e.subarray(0,nr),r=e.subarray(Pn);return new Qr(t,r)}function Xf(e){return e=Dn(e,Pn),new u0(e)}async function Jf(){let{privateKey:e,publicKey:t}=I4();return new Qr(e,t)}async function ho(e){let{privateKey:t,publicKey:r}=A4(e);return new Qr(t,r)}function Dn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new P(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var gx=Bt(Lt(),1),mx=Bt(h1(),1),R4=Bt(ut(),1);function _e(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=yt([new Uint8Array(t-r.length),r])}return z(r,"base64url")}function le(e){let t=P1(e);return new R4.default.jsbn.BigInteger(z(t,"base16"),16)}function P1(e,t){let r=dt(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=yt([new Uint8Array(t-r.length),r])}return r}var P4={"P-256":256,"P-384":384,"P-521":521},jf=Object.keys(P4),yo=jf.join(" / ");async function L4(e){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new P(`Unknown curve: ${e}. Must be ${yo}`,"ERR_INVALID_CURVE");let t=await Nt.get().subtle.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"]),r=async(s,a)=>{let o;a!=null?o=await Nt.get().subtle.importKey("jwk",el(e,a),{name:"ECDH",namedCurve:e},!1,["deriveBits"]):o=t.privateKey;let c=await Nt.get().subtle.importKey("jwk",D4(e,s),{name:"ECDH",namedCurve:e},!1,[]),u=await Nt.get().subtle.deriveBits({name:"ECDH",namedCurve:e,public:c},o,P4[e]);return new Uint8Array(u,0,u.byteLength)},n=await Nt.get().subtle.exportKey("jwk",t.publicKey);return{key:tl(n),genSharedKey:r}}var N4={"P-256":32,"P-384":48,"P-521":66};function tl(e){if(e.crv==null||e.x==null||e.y==null)throw new P("JWK was missing components","ERR_INVALID_PARAMETERS");if(e.crv!=="P-256"&&e.crv!=="P-384"&&e.crv!=="P-521")throw new P(`Unknown curve: ${e.crv}. Must be ${yo}`,"ERR_INVALID_CURVE");let t=N4[e.crv];return yt([Uint8Array.from([4]),P1(e.x,t),P1(e.y,t)],1+t*2)}function D4(e,t){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new P(`Unknown curve: ${e}. Must be ${yo}`,"ERR_INVALID_CURVE");let r=N4[e];if(!ht(t.subarray(0,1),Uint8Array.from([4])))throw new P("Cannot unmarshal public key - invalid key format","ERR_INVALID_KEY_FORMAT");return{kty:"EC",crv:e,x:z(t.subarray(1,r+1),"base64url"),y:z(t.subarray(1+r),"base64url"),ext:!0}}var el=(e,t)=>({...D4(e,t.public),d:z(t.private,"base64url")});var k4=L4;async function O4(e,t){let r=qn.decode(e);return R1().decrypt(r,t)}var U4={"AES-128":{ivSize:16,keySize:16},"AES-256":{ivSize:16,keySize:32},Blowfish:{ivSize:8,keySize:32}};async function F4(e,t,r){let n=U4[e];if(n==null){let x=Object.keys(U4).join(" / ");throw new P(`unknown cipher type '${e}'. Must be ${x}`,"ERR_INVALID_CIPHER_TYPE")}if(t==null)throw new P("missing hash type","ERR_MISSING_HASH_TYPE");let i=n.keySize,s=n.ivSize,a=20,o=dt("key expansion"),c=2*(s+i+a),u=await n3(t,r),f=await u.digest(o),l=[],p=0;for(;p<c;){let x=await u.digest(yt([f,o])),v=x.length;p+v>c&&(v=c-p),l.push(x),p+=v,f=await u.digest(f)}let d=c/2,h=yt(l),y=h.subarray(0,d),g=h.subarray(d,c),m=x=>({iv:x.subarray(0,s),cipherKey:x.subarray(s,s+i),macKey:x.subarray(s+i)});return{k1:m(y),k2:m(g)}}var bo={};Ot(bo,{MAX_KEY_SIZE:()=>d0,RsaPrivateKey:()=>kn,RsaPublicKey:()=>h0,fromJwk:()=>ll,generateKeyPair:()=>hl,unmarshalRsaPrivateKey:()=>ul,unmarshalRsaPublicKey:()=>fl});var l0=Bt(ut(),1);var sv=Bt(z4(),1);function Wr(e){if(isNaN(e)||e<=0)throw new P("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return _n(e)}var Vx=Bt(y1(),1),xo=Bt(ut(),1);function H4(e,t){return t.map(r=>le(e[r]))}function $4(e){return xo.default.pki.setRsaPrivateKey(...H4(e,["n","e","d","p","q","dp","dq","qi"]))}function G4(e){return xo.default.pki.setRsaPublicKey(...H4(e,["n","e"]))}var Zr={};Ot(Zr,{jwkToPkcs1:()=>il,jwkToPkix:()=>ol,pkcs1ToJwk:()=>nl,pkixToJwk:()=>sl});var Hx=Bt(n0(),1),$x=Bt(y1(),1);var ir=Bt(ut(),1);function nl(e){let t=ir.default.asn1.fromDer(z(e,"ascii")),r=ir.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:_e(r.n),e:_e(r.e),d:_e(r.d),p:_e(r.p),q:_e(r.q),dp:_e(r.dP),dq:_e(r.dQ),qi:_e(r.qInv),alg:"RS256"}}function il(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 P("JWK was missing components","ERR_INVALID_PARAMETERS");let t=ir.default.pki.privateKeyToAsn1({n:le(e.n),e:le(e.e),d:le(e.d),p:le(e.p),q:le(e.q),dP:le(e.dp),dQ:le(e.dq),qInv:le(e.qi)});return dt(ir.default.asn1.toDer(t).getBytes(),"ascii")}function sl(e){let t=ir.default.asn1.fromDer(z(e,"ascii")),r=ir.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:_e(r.n),e:_e(r.e)}}function ol(e){if(e.n==null||e.e==null)throw new P("JWK was missing components","ERR_INVALID_PARAMETERS");let t=ir.default.pki.publicKeyToAsn1({n:le(e.n),e:le(e.e)});return dt(ir.default.asn1.toDer(t).getBytes(),"ascii")}async function Q4(e){let t=await Nt.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 Z4(t);return{privateKey:r[0],publicKey:r[1]}}async function vo(e){let r=[await Nt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await al(e)],n=await Z4({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function Y4(e,t){let r=await Nt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Nt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function W4(e,t,r){let n=await Nt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Nt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r instanceof Uint8Array?r:r.subarray())}async function Z4(e){if(e.privateKey==null||e.publicKey==null)throw new P("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Nt.get().subtle.exportKey("jwk",e.privateKey),Nt.get().subtle.exportKey("jwk",e.publicKey)])}async function al(e){return Nt.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 X4(e,t,r,n){let i=t?G4(e):$4(e),s=z(r instanceof Uint8Array?r:r.subarray(),"ascii"),a=n(s,i);return dt(a,"ascii")}function J4(e,t){return X4(e,!0,t,(r,n)=>n.encrypt(r))}function j4(e,t){return X4(e,!1,t,(r,n)=>n.decrypt(r))}function L1(e){if(e.kty!=="RSA")throw new P("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new P("invalid key modulus","ERR_INVALID_KEY_MODULUS");return dt(e.n,"base64url").length*8}var d0=8192,h0=class{_key;constructor(t){this._key=t}async verify(t,r){return W4(this._key,r,t)}marshal(){return Zr.jwkToPkix(this._key)}get bytes(){return Be.encode({Type:mt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return J4(this._key,t)}equals(t){return ht(this.bytes,t.bytes)}async hash(){let{bytes:t}=await St.digest(this.bytes);return t}},kn=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return Wr(16)}async sign(t){return Y4(this._key,t)}get public(){if(this._publicKey==null)throw new P("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new h0(this._publicKey)}decrypt(t){return j4(this._key,t)}marshal(){return Zr.jwkToPkcs1(this._key)}get bytes(){return Te.encode({Type:mt.RSA,Data:this.marshal()}).subarray()}equals(t){return ht(this.bytes,t.bytes)}async hash(){let{bytes:t}=await St.digest(this.bytes);return t}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new l0.default.util.ByteBuffer(this.marshal()),i=l0.default.asn1.fromDer(n),s=l0.default.pki.privateKeyFromAsn1(i),a={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return l0.default.pki.encryptRsaPrivateKey(s,t,a)}else{if(r==="libp2p-key")return Ln(this.bytes,t);throw new P(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function ul(e){let t=Zr.pkcs1ToJwk(e);if(L1(t)>d0)throw new P("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await vo(t);return new kn(r.privateKey,r.publicKey)}function fl(e){let t=Zr.pkixToJwk(e);if(L1(t)>d0)throw new P("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new h0(t)}async function ll(e){if(L1(e)>d0)throw new P("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await vo(e);return new kn(t.privateKey,t.publicKey)}async function hl(e){if(e>d0)throw new P("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Q4(e);return new kn(t.privateKey,t.publicKey)}var Bo={};Ot(Bo,{Secp256k1PrivateKey:()=>y0,Secp256k1PublicKey:()=>p0,generateKeyPair:()=>Tl,unmarshalSecp256k1PrivateKey:()=>Al,unmarshalSecp256k1PublicKey:()=>Bl});var dl=(e,t,r)=>e&t^~e&r,pl=(e,t,r)=>e&t^e&r^t&r,yl=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]),Br=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Tr=new Uint32Array(64),wo=class extends Cn{constructor(){super(64,32,8,!1),this.A=Br[0]|0,this.B=Br[1]|0,this.C=Br[2]|0,this.D=Br[3]|0,this.E=Br[4]|0,this.F=Br[5]|0,this.G=Br[6]|0,this.H=Br[7]|0}get(){let{A:t,B:r,C:n,D:i,E:s,F:a,G:o,H:c}=this;return[t,r,n,i,s,a,o,c]}set(t,r,n,i,s,a,o,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=a|0,this.G=o|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)Tr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let p=Tr[l-15],d=Tr[l-2],h=Ie(p,7)^Ie(p,18)^p>>>3,y=Ie(d,17)^Ie(d,19)^d>>>10;Tr[l]=y+Tr[l-7]+h+Tr[l-16]|0}let{A:n,B:i,C:s,D:a,E:o,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let p=Ie(o,6)^Ie(o,11)^Ie(o,25),d=f+p+dl(o,c,u)+yl[l]+Tr[l]|0,y=(Ie(n,2)^Ie(n,13)^Ie(n,22))+pl(n,i,s)|0;f=u,u=c,c=o,o=a+d|0,a=s,s=i,i=n,n=d+y|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,a=a+this.D|0,o=o+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,s,a,o,c,u,f)}roundClean(){Tr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var t5=v1(()=>new wo);function gl(e){let t=c0(e);qe(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:ml,hexToBytes:xl}=S1,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:ml(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=Xr,r=typeof e=="string"?xl(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:s}=Xr._parseInt(r.subarray(2)),{d:a,l:o}=Xr._parseInt(s);if(o.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:a}},hexFromSig(e){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},n=t(r(e.s)),i=t(r(e.r)),s=n.length/2,a=i.length/2,o=r(s),c=r(a);return`30${r(a+s+4)}02${c}${i}02${o}${n}`}},sr=BigInt(0),me=BigInt(1),pv=BigInt(2),e5=BigInt(3),yv=BigInt(4);function vl(e){let t=gl(e),{Fp:r}=t,n=t.toBytes||((h,y,g)=>{let m=y.toAffine();return er(Uint8Array.from([4]),r.toBytes(m.x),r.toBytes(m.y))}),i=t.fromBytes||(h=>{let y=h.subarray(1),g=r.fromBytes(y.subarray(0,r.BYTES)),m=r.fromBytes(y.subarray(r.BYTES,2*r.BYTES));return{x:g,y:m}});function s(h){let{a:y,b:g}=t,m=r.sqr(h),x=r.mul(m,h);return r.add(r.add(x,r.mul(h,y)),g)}if(!r.eql(r.sqr(t.Gy),s(t.Gx)))throw new Error("bad generator point: equation left != right");function a(h){return typeof h=="bigint"&&sr<h&&h<t.n}function o(h){if(!a(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:y,nByteLength:g,wrapPrivateKey:m,n:x}=t;if(y&&typeof h!="bigint"){if(h instanceof Uint8Array&&(h=je(h)),typeof h!="string"||!y.includes(h.length))throw new Error("Invalid key");h=h.padStart(g*2,"0")}let v;try{v=typeof h=="bigint"?h:tr(Ct("private key",h,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof h}`)}return m&&(v=lt(v,x)),o(v),v}let u=new Map;function f(h){if(!(h instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(y,g,m){if(this.px=y,this.py=g,this.pz=m,y==null||!r.isValid(y))throw new Error("x required");if(g==null||!r.isValid(g))throw new Error("y required");if(m==null||!r.isValid(m))throw new Error("z required")}static fromAffine(y){let{x:g,y:m}=y||{};if(!y||!r.isValid(g)||!r.isValid(m))throw new Error("invalid affine point");if(y instanceof l)throw new Error("projective point not allowed");let x=v=>r.eql(v,r.ZERO);return x(g)&&x(m)?l.ZERO:new l(g,m,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(y){let g=r.invertBatch(y.map(m=>m.pz));return y.map((m,x)=>m.toAffine(g[x])).map(l.fromAffine)}static fromHex(y){let g=l.fromAffine(i(Ct("pointHex",y)));return g.assertValidity(),g}static fromPrivateKey(y){return l.BASE.multiply(c(y))}_setWindowSize(y){this._WINDOW_SIZE=y,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:y,y:g}=this.toAffine();if(!r.isValid(y)||!r.isValid(g))throw new Error("bad point: x or y not FE");let m=r.sqr(g),x=s(y);if(!r.eql(m,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y}=this.toAffine();if(r.isOdd)return!r.isOdd(y);throw new Error("Field doesn't support isOdd")}equals(y){f(y);let{px:g,py:m,pz:x}=this,{px:v,py:T,pz:E}=y,S=r.eql(r.mul(g,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:y,b:g}=t,m=r.mul(g,e5),{px:x,py:v,pz:T}=this,E=r.ZERO,S=r.ZERO,L=r.ZERO,N=r.mul(x,x),G=r.mul(v,v),$=r.mul(T,T),q=r.mul(x,v);return q=r.add(q,q),L=r.mul(x,T),L=r.add(L,L),E=r.mul(y,L),S=r.mul(m,$),S=r.add(E,S),E=r.sub(G,S),S=r.add(G,S),S=r.mul(E,S),E=r.mul(q,E),L=r.mul(m,L),$=r.mul(y,$),q=r.sub(N,$),q=r.mul(y,q),q=r.add(q,L),L=r.add(N,N),N=r.add(L,N),N=r.add(N,$),N=r.mul(N,q),S=r.add(S,N),$=r.mul(v,T),$=r.add($,$),N=r.mul($,q),E=r.sub(E,N),L=r.mul($,G),L=r.add(L,L),L=r.add(L,L),new l(E,S,L)}add(y){f(y);let{px:g,py:m,pz:x}=this,{px:v,py:T,pz:E}=y,S=r.ZERO,L=r.ZERO,N=r.ZERO,G=t.a,$=r.mul(t.b,e5),q=r.mul(g,v),J=r.mul(m,T),ft=r.mul(x,E),Qt=r.add(g,m),_=r.add(v,T);Qt=r.mul(Qt,_),_=r.add(q,J),Qt=r.sub(Qt,_),_=r.add(g,x);let k=r.add(v,E);return _=r.mul(_,k),k=r.add(q,ft),_=r.sub(_,k),k=r.add(m,x),S=r.add(T,E),k=r.mul(k,S),S=r.add(J,ft),k=r.sub(k,S),N=r.mul(G,_),S=r.mul($,ft),N=r.add(S,N),S=r.sub(J,N),N=r.add(J,N),L=r.mul(S,N),J=r.add(q,q),J=r.add(J,q),ft=r.mul(G,ft),_=r.mul($,_),J=r.add(J,ft),ft=r.sub(q,ft),ft=r.mul(G,ft),_=r.add(_,ft),q=r.mul(J,_),L=r.add(L,q),q=r.mul(k,_),S=r.mul(Qt,S),S=r.sub(S,q),q=r.mul(Qt,J),N=r.mul(k,N),N=r.add(N,q),new l(S,L,N)}subtract(y){return this.add(y.negate())}is0(){return this.equals(l.ZERO)}wNAF(y){return d.wNAFCached(this,u,y,g=>{let m=r.invertBatch(g.map(x=>x.pz));return g.map((x,v)=>x.toAffine(m[v])).map(l.fromAffine)})}multiplyUnsafe(y){let g=l.ZERO;if(y===sr)return g;if(o(y),y===me)return this;let{endo:m}=t;if(!m)return d.unsafeLadder(this,y);let{k1neg:x,k1:v,k2neg:T,k2:E}=m.splitScalar(y),S=g,L=g,N=this;for(;v>sr||E>sr;)v&me&&(S=S.add(N)),E&me&&(L=L.add(N)),N=N.double(),v>>=me,E>>=me;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(y){o(y);let g=y,m,x,{endo:v}=t;if(v){let{k1neg:T,k1:E,k2neg:S,k2:L}=v.splitScalar(g),{p:N,f:G}=this.wNAF(E),{p:$,f:q}=this.wNAF(L);N=d.constTimeNegate(T,N),$=d.constTimeNegate(S,$),$=new l(r.mul($.px,v.beta),$.py,$.pz),m=N.add($),x=G.add(q)}else{let{p:T,f:E}=this.wNAF(g);m=T,x=E}return l.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(y,g,m){let x=l.BASE,v=(E,S)=>S===sr||S===me||!E.equals(x)?E.multiplyUnsafe(S):E.multiply(S),T=v(this,g).add(v(y,m));return T.is0()?void 0:T}toAffine(y){let{px:g,py:m,pz:x}=this,v=this.is0();y==null&&(y=v?r.ONE:r.inv(x));let T=r.mul(g,y),E=r.mul(m,y),S=r.mul(x,y);if(v)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:T,y:E}}isTorsionFree(){let{h:y,isTorsionFree:g}=t;if(y===me)return!0;if(g)return g(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:y,clearCofactor:g}=t;return y===me?this:g?g(l,this):this.multiplyUnsafe(t.h)}toRawBytes(y=!0){return this.assertValidity(),n(l,this,y)}toHex(y=!0){return je(this.toRawBytes(y))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);let p=t.nBitLength,d=B1(l,t.endo?Math.ceil(p/2):p);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:a}}function bl(e){let t=c0(e);return qe(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function r5(e){let t=bl(e),{Fp:r,n}=t,i=r.BYTES+1,s=2*r.BYTES+1;function a(_){return sr<_&&_<r.ORDER}function o(_){return lt(_,n)}function c(_){return I1(_,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:p}=vl({...t,toBytes(_,k,R){let D=k.toAffine(),A=r.toBytes(D.x),F=er;return R?F(Uint8Array.from([k.hasEvenY()?2:3]),A):F(Uint8Array.from([4]),A,r.toBytes(D.y))},fromBytes(_){let k=_.length,R=_[0],D=_.subarray(1);if(k===i&&(R===2||R===3)){let A=tr(D);if(!a(A))throw new Error("Point is not on curve");let F=l(A),M=r.sqrt(F),H=(M&me)===me;return(R&1)===1!==H&&(M=r.neg(M)),{x:A,y:M}}else if(k===s&&R===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 ${s} uncompressed bytes`)}}),d=_=>je(Ar(_,t.nByteLength));function h(_){let k=n>>me;return _>k}function y(_){return h(_)?o(-_):_}let g=(_,k,R)=>tr(_.slice(k,R));class m{constructor(k,R,D){this.r=k,this.s=R,this.recovery=D,this.assertValidity()}static fromCompact(k){let R=t.nByteLength;return k=Ct("compactSignature",k,R*2),new m(g(k,0,R),g(k,R,2*R))}static fromDER(k){let{r:R,s:D}=Xr.toSig(Ct("DER",k));return new m(R,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:R,s:D,recovery:A}=this,F=L(Ct("msgHash",k));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");let M=A===2||A===3?R+t.n:R;if(M>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=A&1?"03":"02",Z=u.fromHex(H+d(M)),j=c(M),at=o(-F*j),tt=o(D*j),nt=u.BASE.multiplyAndAddUnsafe(Z,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,o(-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(_){try{return f(_),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let _=so(t.n);return v4(t.randomBytes(_),t.n)},precompute(_=8,k=u.BASE){return k._setWindowSize(_),k.multiply(BigInt(3)),k}};function v(_,k=!0){return u.fromPrivateKey(_).toRawBytes(k)}function T(_){let k=_ instanceof Uint8Array,R=typeof _=="string",D=(k||R)&&_.length;return k?D===i||D===s:R?D===2*i||D===2*s:_ instanceof u}function E(_,k,R=!0){if(T(_))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(_)).toRawBytes(R)}let S=t.bits2int||function(_){let k=tr(_),R=_.length*8-t.nBitLength;return R>0?k>>BigInt(R):k},L=t.bits2int_modN||function(_){return o(S(_))},N=a0(t.nBitLength);function G(_){if(typeof _!="bigint")throw new Error("bigint expected");if(!(sr<=_&&_<N))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Ar(_,t.nByteLength)}function $(_,k,R=q){if(["recovered","canonical"].some(At=>At in R))throw new Error("sign() legacy options not supported");let{hash:D,randomBytes:A}=t,{lowS:F,prehash:M,extraEntropy:H}=R;F==null&&(F=!0),_=Ct("msgHash",_),M&&(_=Ct("prehashed msgHash",D(_)));let Z=L(_),j=f(k),at=[G(j),G(Z)];if(H!=null){let At=H===!0?A(r.BYTES):H;at.push(Ct("extraEntropy",At))}let tt=er(...at),nt=Z;function kt(At){let Yt=S(At);if(!p(Yt))return;let Wt=c(Yt),Ft=u.BASE.multiply(Yt).toAffine(),Zt=o(Ft.x);if(Zt===sr)return;let He=o(Wt*o(nt+Zt*j));if(He===sr)return;let Pr=(Ft.x===Zt?0:2)|Number(Ft.y&me),Fn=He;return F&&h(He)&&(Fn=y(He),Pr^=1),new m(Zt,Fn,Pr)}return{seed:tt,k2sig:kt}}let q={lowS:t.lowS,prehash:!1},J={lowS:t.lowS,prehash:!1};function ft(_,k,R=q){let{seed:D,k2sig:A}=$(_,k,R),F=t;return eo(F.hash.outputLen,F.nByteLength,F.hmac)(D,A)}u.BASE._setWindowSize(8);function Qt(_,k,R,D=J){let A=_;if(k=Ct("msgHash",k),R=Ct("publicKey",R),"strict"in D)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:M}=D,H,Z;try{if(typeof A=="string"||A instanceof Uint8Array)try{H=m.fromDER(A)}catch(Ft){if(!(Ft instanceof Xr.Err))throw Ft;H=m.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:Ft,s:Zt}=A;H=new m(Ft,Zt)}else throw new Error("PARSE");Z=u.fromHex(R)}catch(Ft){if(Ft.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&H.hasHighS())return!1;M&&(k=t.hash(k));let{r:j,s:at}=H,tt=L(k),nt=c(at),kt=o(tt*nt),At=o(j*nt),Yt=u.BASE.multiplyAndAddUnsafe(Z,kt,At)?.toAffine();return Yt?o(Yt.x)===j:!1}return{CURVE:t,getPublicKey:v,getSharedSecret:E,sign:ft,verify:Qt,ProjectivePoint:u,Signature:m,utils:x}}var N1=class extends Tn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,a4(t);let n=o0(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,s=new Uint8Array(i);s.set(n.length>i?t.create().update(n).digest():n);for(let a=0;a<s.length;a++)s[a]^=54;this.iHash.update(s),this.oHash=t.create();for(let a=0;a<s.length;a++)s[a]^=106;this.oHash.update(s),s.fill(0)}update(t){return Bn(this),this.iHash.update(t),this}digestInto(t){Bn(this),Ys(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:s,blockLen:a,outputLen:o}=this;return t=t,t.finished=i,t.destroyed=s,t.blockLen=a,t.outputLen=o,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Eo=(e,t,r)=>new N1(e,t).update(r).digest();Eo.create=(e,t)=>new N1(e,t);function wl(e){return{hash:e,hmac:(t,...r)=>Eo(e,t,x1(...r)),randomBytes:_n}}function n5(e,t){let r=n=>r5({...e,...wl(n)});return Object.freeze({...r(t),create:r})}var o5=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),i5=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),El=BigInt(1),So=BigInt(2),s5=(e,t)=>(e+t/So)/t;function Sl(e){let t=o5,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),a=BigInt(23),o=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=Et(f,r,t)*f%t,p=Et(l,r,t)*f%t,d=Et(p,So,t)*u%t,h=Et(d,i,t)*d%t,y=Et(h,s,t)*h%t,g=Et(y,o,t)*y%t,m=Et(g,c,t)*g%t,x=Et(m,o,t)*y%t,v=Et(x,r,t)*f%t,T=Et(v,a,t)*h%t,E=Et(T,n,t)*u%t,S=Et(E,So,t);if(!Io.eql(Io.sqr(S),e))throw new Error("Cannot find square root");return S}var Io=A1(o5,void 0,void 0,{sqrt:Sl}),or=n5({a:BigInt(0),b:BigInt(7),Fp:Io,n:i5,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=i5,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-El*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,a=BigInt("0x100000000000000000000000000000000"),o=s5(s*e,t),c=s5(-n*e,t),u=lt(e-o*r-c*i,t),f=lt(-o*n-c*s,t),l=u>a,p=f>a;if(l&&(u=t-u),p&&(f=t-f),u>a||f>a)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:p,k2:f}}}},t5),Tv=BigInt(0);var _v=or.ProjectivePoint;function a5(){return or.utils.randomPrivateKey()}async function c5(e,t){let{digest:r}=await St.digest(t instanceof Uint8Array?t:t.subarray());try{return or.sign(r,e).toDERRawBytes()}catch(n){throw new P(String(n),"ERR_INVALID_INPUT")}}async function u5(e,t,r){try{let{digest:n}=await St.digest(r instanceof Uint8Array?r:r.subarray());return or.verify(t,n,e)}catch(n){throw new P(String(n),"ERR_INVALID_INPUT")}}function f5(e){return or.ProjectivePoint.fromHex(e).toRawBytes(!0)}function l5(e){try{or.getPublicKey(e,!0)}catch(t){throw new P(String(t),"ERR_INVALID_PRIVATE_KEY")}}function Ao(e){try{or.ProjectivePoint.fromHex(e)}catch(t){throw new P(String(t),"ERR_INVALID_PUBLIC_KEY")}}function h5(e){try{return or.getPublicKey(e,!0)}catch(t){throw new P(String(t),"ERR_INVALID_PRIVATE_KEY")}}var p0=class{_key;constructor(t){Ao(t),this._key=t}async verify(t,r){return u5(this._key,r,t)}marshal(){return f5(this._key)}get bytes(){return Be.encode({Type:mt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return ht(this.bytes,t.bytes)}async hash(){let{bytes:t}=await St.digest(this.bytes);return t}},y0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??h5(t),l5(this._key),Ao(this._publicKey)}async sign(t){return c5(this._key,t)}get public(){return new p0(this._publicKey)}marshal(){return this._key}get bytes(){return Te.encode({Type:mt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return ht(this.bytes,t.bytes)}async hash(){let{bytes:t}=await St.digest(this.bytes);return t}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Ln(this.bytes,t);throw new P(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Al(e){return new y0(e)}function Bl(e){return new p0(e)}async function Tl(){let e=a5();return new y0(e)}var ze={rsa:bo,ed25519:po,secp256k1:Bo};function To(e){let t=Object.keys(ze).join(" / ");return new P(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function _o(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return ze[e];throw To(e)}async function _l(e,t){return _o(e).generateKeyPair(t??2048)}async function Cl(e,t,r){if(e.toLowerCase()!=="ed25519")throw new P("Seed key derivation is unimplemented for RSA or secp256k1","ERR_UNSUPPORTED_KEY_DERIVATION_TYPE");return ho(t)}function Rl(e){let t=Be.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case mt.RSA:return ze.rsa.unmarshalRsaPublicKey(r);case mt.Ed25519:return ze.ed25519.unmarshalEd25519PublicKey(r);case mt.Secp256k1:return ze.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw To(t.Type??"unknown")}}function Pl(e,t){return t=(t??"rsa").toLowerCase(),_o(t),e.bytes}async function d5(e){let t=Te.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case mt.RSA:return ze.rsa.unmarshalRsaPrivateKey(r);case mt.Ed25519:return ze.ed25519.unmarshalEd25519PrivateKey(r);case mt.Secp256k1:return ze.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw To(t.Type??"RSA")}}function Ll(e,t){return t=(t??"rsa").toLowerCase(),_o(t),e.bytes}async function Nl(e,t){try{let i=await O4(e,t);return await d5(i)}catch{}let r=D1.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new P("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=D1.default.asn1.toDer(D1.default.pki.privateKeyToAsn1(r));return n=dt(n.getBytes(),"ascii"),ze.rsa.unmarshalRsaPrivateKey(n)}var Dl=Bt(Fs(),1),kl=Bt(Lt(),1);function O1(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 ar(e,t){if(e.length!==t.length)throw new Error("Inputs should have the same length");let r=zt(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return Pe(r)}var U1=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 we(t),n={peerId:t,distance:ar(this.originDhtKey,r)};this.peerDistances.push(n),this.peerDistances.sort((i,s)=>O1(i.distance,s.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(we)),n=this.peerDistances[this.peerDistances.length-1].distance;for(let i of r){let s=ar(this.originDhtKey,i);if(O1(s,n)<0)return!0}return!1}};var F1=class{log;routingTable;network;validators;queryManager;peerStore;peerId;constructor(t,r){let{routingTable:n,network:i,validators:s,queryManager:a,lan:o}=r;this.routingTable=n,this.network=i,this.validators=s,this.queryManager=a,this.peerStore=t.peerStore,this.peerId=t.peerId,this.log=t.logger.forComponent(`libp2p:kad-dht:${o?"lan":"wan"}:peer-routing`)}async findPeerLocal(t){let r,n=await this.routingTable.find(t);if(n!=null){this.log("findPeerLocal found %p in routing table",t);try{r=await this.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=new vt(Pt.GET_VALUE,r,0);yield*this.network.sendRequest(t,i,n)}async*getPublicKeyFromNode(t,r={}){let n=Ta(t);for await(let i of this._getValueSingle(t,n,r))if(yield i,i.name==="PEER_RESPONSE"&&i.record!=null){let s=await $2(k1.marshalPublicKey({bytes:i.record.value}));if(!s.equals(t))throw new P("public key does not match id","ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID");if(s.publicKey==null)throw new P("public key missing","ERR_PUBLIC_KEY_MISSING");yield Jn({from:t,value:s.publicKey},r)}throw new P(`Node not responding with its public key: ${t.toString()}`,"ERR_INVALID_RECORD")}async*findPeer(t,r={}){this.log("findPeer %p",t);let n=await this.findPeerLocal(t);if(n!=null){this.log("found local"),yield M0({from:this.peerId,peer:n},r);return}let i=this,s=async function*({peer:o,signal:c}){let u=new vt(Pt.FIND_NODE,t.toBytes(),0);for await(let f of i.network.sendRequest(o,u,{...r,signal:c}))if(yield f,f.name==="PEER_RESPONSE"){let l=f.closer.find(p=>p.id.equals(t));l!=null&&(yield M0({from:f.from,peer:l},r))}},a=!1;for await(let o of this.queryManager.run(t.toBytes(),s,r))o.name==="FINAL_PEER"&&(a=!0),yield o;a||(yield ne({from:this.peerId,error:new P("Not found","ERR_NOT_FOUND")},r))}async*getClosestPeers(t,r={}){this.log("getClosestPeers to %b",t);let n=await mr(t),i=this.routingTable.closestPeers(n),s=this,a=new U1(n,this.routingTable.kBucketSize);await Promise.all(i.map(async c=>{await a.add(c)}));let o=async function*({peer:c,signal:u}){s.log("closerPeersSingle %s from %p",z(t,"base32"),c);let f=new vt(Pt.FIND_NODE,t,0);yield*s.network.sendRequest(c,f,{...r,signal:u})};for await(let c of this.queryManager.run(t,o,r))yield c,c.name==="PEER_RESPONSE"&&await Promise.all(c.closer.map(async u=>{await a.add(u.id)}));this.log("found %d peers close to %b",a.length,t);for(let c of a.peers)try{let u=await this.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 a="invalid record received, discarded";this.log(a),yield ne({from:i.from,error:new P(a,"ERR_INVALID_RECORD")},n);continue}yield i}}async _verifyRecordOnline(t){if(t.timeReceived==null)throw new P("invalid record received","ERR_INVALID_RECORD");await gn(this.validators,new Mt(t.key,t.value,t.timeReceived))}async getCloserPeersOffline(t,r){let n=await mr(t),i=this.routingTable.closestPeers(n),s=[];for(let a of i)if(!a.equals(r))try{let o=await this.peerStore.get(a);s.push({id:a,multiaddrs:o.addresses.map(({multiaddr:c})=>c)})}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}return s.length>0?this.log("getCloserPeersOffline found %d peer(s) closer to %b than %p",s.length,t,r):this.log("getCloserPeersOffline could not find peer closer to %b than %p",t,r),s}};var T5=Bt(y5(),1);var Ro=Bt(m5(),1);var m0=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Po=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},x5=e=>globalThis.DOMException===void 0?new Po(e):new DOMException(e),v5=e=>{let t=e.reason===void 0?x5("This operation was aborted."):e.reason;return t instanceof Error?t:x5(t)};function Lo(e,t,r,n){let i,s=new Promise((a,o)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){a(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&o(v5(c)),c.addEventListener("abort",()=>{o(v5(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{a(r())}catch(f){o(f)}return}let c=typeof r=="string"?r:`Promise timed out after ${t} milliseconds`,u=r instanceof Error?r:new m0(c);typeof e.cancel=="function"&&e.cancel(),o(u)},t),(async()=>{try{a(await e)}catch(c){o(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function No(e,t,r){let n=0,i=e.length;for(;i>0;){let s=Math.trunc(i/2),a=n+s;r(e[a],t)<=0?(n=++a,i-=s+1):i=s}return n}var Jr=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},cr,Do=class{constructor(){cr.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&Jr(this,cr,"f")[this.size-1].priority>=r.priority){Jr(this,cr,"f").push(n);return}let i=No(Jr(this,cr,"f"),n,(s,a)=>a.priority-s.priority);Jr(this,cr,"f").splice(i,0,n)}dequeue(){let t=Jr(this,cr,"f").shift();return t?.run}filter(t){return Jr(this,cr,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return Jr(this,cr,"f").length}};cr=new WeakMap;var b5=Do;var It=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},K=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Dt,v0,b0,Cr,$1,w0,M1,Ce,x0,he,V1,de,E0,_r,q1,w5,E5,A5,S5,I5,z1,ko,Oo,G1,B5,H1,Q1=class extends Error{},Uo=class extends Ro.default{constructor(t){var r,n,i,s;if(super(),Dt.add(this),v0.set(this,void 0),b0.set(this,void 0),Cr.set(this,0),$1.set(this,void 0),w0.set(this,void 0),M1.set(this,0),Ce.set(this,void 0),x0.set(this,void 0),he.set(this,void 0),V1.set(this,void 0),de.set(this,0),E0.set(this,void 0),_r.set(this,void 0),q1.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:b5,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof t.interval})`);It(this,v0,t.carryoverConcurrencyCount,"f"),It(this,b0,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),It(this,$1,t.intervalCap,"f"),It(this,w0,t.interval,"f"),It(this,he,new t.queueClass,"f"),It(this,V1,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,It(this,q1,t.throwOnTimeout===!0,"f"),It(this,_r,t.autoStart===!1,"f")}get concurrency(){return K(this,E0,"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})`);It(this,E0,t,"f"),K(this,Dt,"m",G1).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:K(this,q1,"f"),...r},new Promise((n,i)=>{K(this,he,"f").enqueue(async()=>{var s,a,o;It(this,de,(a=K(this,de,"f"),a++,a),"f"),It(this,Cr,(o=K(this,Cr,"f"),o++,o),"f");try{if(!((s=r.signal)===null||s===void 0)&&s.aborted)throw new Q1("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=Lo(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,K(this,Dt,"m",B5).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof m0&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{K(this,Dt,"m",A5).call(this)}},r),this.emit("add"),K(this,Dt,"m",z1).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return K(this,_r,"f")?(It(this,_r,!1,"f"),K(this,Dt,"m",G1).call(this),this):this}pause(){It(this,_r,!0,"f")}clear(){It(this,he,new(K(this,V1,"f")),"f")}async onEmpty(){K(this,he,"f").size!==0&&await K(this,Dt,"m",H1).call(this,"empty")}async onSizeLessThan(t){K(this,he,"f").size<t||await K(this,Dt,"m",H1).call(this,"next",()=>K(this,he,"f").size<t)}async onIdle(){K(this,de,"f")===0&&K(this,he,"f").size===0||await K(this,Dt,"m",H1).call(this,"idle")}get size(){return K(this,he,"f").size}sizeBy(t){return K(this,he,"f").filter(t).length}get pending(){return K(this,de,"f")}get isPaused(){return K(this,_r,"f")}};v0=new WeakMap,b0=new WeakMap,Cr=new WeakMap,$1=new WeakMap,w0=new WeakMap,M1=new WeakMap,Ce=new WeakMap,x0=new WeakMap,he=new WeakMap,V1=new WeakMap,de=new WeakMap,E0=new WeakMap,_r=new WeakMap,q1=new WeakMap,Dt=new WeakSet,w5=function(){return K(this,b0,"f")||K(this,Cr,"f")<K(this,$1,"f")},E5=function(){return K(this,de,"f")<K(this,E0,"f")},A5=function(){var t;It(this,de,(t=K(this,de,"f"),t--,t),"f"),K(this,Dt,"m",z1).call(this),this.emit("next")},S5=function(){K(this,Dt,"m",Oo).call(this),K(this,Dt,"m",ko).call(this),It(this,x0,void 0,"f")},I5=function(){let t=Date.now();if(K(this,Ce,"f")===void 0){let r=K(this,M1,"f")-t;if(r<0)It(this,Cr,K(this,v0,"f")?K(this,de,"f"):0,"f");else return K(this,x0,"f")===void 0&&It(this,x0,setTimeout(()=>{K(this,Dt,"m",S5).call(this)},r),"f"),!0}return!1},z1=function(){if(K(this,he,"f").size===0)return K(this,Ce,"f")&&clearInterval(K(this,Ce,"f")),It(this,Ce,void 0,"f"),this.emit("empty"),K(this,de,"f")===0&&this.emit("idle"),!1;if(!K(this,_r,"f")){let t=!K(this,Dt,"a",I5);if(K(this,Dt,"a",w5)&&K(this,Dt,"a",E5)){let r=K(this,he,"f").dequeue();return r?(this.emit("active"),r(),t&&K(this,Dt,"m",ko).call(this),!0):!1}}return!1},ko=function(){K(this,b0,"f")||K(this,Ce,"f")!==void 0||(It(this,Ce,setInterval(()=>{K(this,Dt,"m",Oo).call(this)},K(this,w0,"f")),"f"),It(this,M1,Date.now()+K(this,w0,"f"),"f"))},Oo=function(){K(this,Cr,"f")===0&&K(this,de,"f")===0&&K(this,Ce,"f")&&(clearInterval(K(this,Ce,"f")),It(this,Ce,void 0,"f")),It(this,Cr,K(this,v0,"f")?K(this,de,"f"):0,"f"),K(this,Dt,"m",G1).call(this)},G1=function(){for(;K(this,Dt,"m",z1).call(this););},B5=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new Q1("The task was aborted."))},{once:!0})})},H1=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var On=Uo;var Y1=class{log;datastore;cache;cleanupInterval;provideValidity;syncQueue;started;cleaner;constructor(t,r={}){let{cacheSize:n,cleanupInterval:i,provideValidity:s}=r;this.log=t.logger.forComponent("libp2p:kad-dht:providers"),this.datastore=t.datastore,this.cleanupInterval=i??36e5,this.provideValidity=s??864e5,this.cache=(0,T5.default)(n??256),this.syncQueue=new On({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,s=this.datastore.batch(),a=this.datastore.query({prefix:bi});for await(let o of a)try{let{cid:c,peerId:u}=_5(o.key),f=C5(o.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++,s.delete(o.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 s.commit()):this.log("nothing to delete");for(let[o,c]of i){let u=S0(o),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 ql(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 s=S0(t);this.cache.set(s,n),await Vl(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=>_t(n))),{throwOnTimeout:!0})}};function S0(e){let t=typeof e=="string"?e:z(e.multihash.bytes,"base32");return`${bi}/${t}`}async function Vl(e,t,r,n){let i=[S0(t),"/",r.toString()].join(""),s=new mn(i),a=Le(n.getTime());await e.put(s,a)}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 ql(e,t){let r=new Map,n=e.query({prefix:S0(t)});for await(let i of n){let{peerId:s}=_5(i.key);r.set(s,C5(i.value))}return r}function C5(e){return new Date(ue(e))}function ur(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 Fo=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return ur(this.map.entries(),t=>[_t(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,_t(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 ur(this.map.keys(),t=>_t(t))}values(){return this.map.values()}get size(){return this.map.size}};var Rr=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 ur(this.set.entries(),t=>{let r=_t(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=_t(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return ur(this.set.values(),t=>_t(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 Ko=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return ur(this.list.entries(),t=>_t(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return ur(this.list.entries(),t=>[t[0],_t(t[1])])}every(t){return this.list.every((r,n)=>t(_t(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let s=_t(n);t(s,i,this)&&r.push(s)}),r}find(t){let r=this.list.find((n,i)=>t(_t(n),i,this));if(r!=null)return _t(r)}findIndex(t){return this.list.findIndex((r,n)=>t(_t(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(_t(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 _t(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return _t(t)}unshift(...t){let r=this.list.length;for(let n=t.length-1;n>-1;n--)r=this.list.unshift(t[n].toString());return r}get length(){return this.list.length}};function Un(e){let t=new globalThis.AbortController;function r(){t.abort();for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}for(let s of e){if(s?.aborted===!0){r();break}s?.addEventListener!=null&&s.addEventListener("abort",r)}function n(){for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}let i=t.signal;return i.clear=n,i}async function*R5(e,t,r,n){let i=en({objectMode:!0}),s=l=>{n("clean up queue, results %d, queue size %d, pending tasks %d",i.readableLength,e.size,e.pending),e.clear(),i.end(l)},a=l=>{l!=null&&i.push(l)},o=l=>{n("queue error",l),s(l)},c=()=>{n("queue idle"),s()},u=()=>{n("abort queue"),s(new P("Query aborted","ERR_QUERY_ABORTED"))},f=()=>{s()};e.on("completed",a),e.on("error",o),e.on("idle",c),t.addEventListener("abort",u),r.addEventListener("cleanup",f);try{yield*i}finally{e.removeListener("completed",a),e.removeListener("error",o),e.removeListener("idle",c),t.removeEventListener("abort",u),r.removeEventListener("cleanup",f)}}var zl=BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");async function*P5(e){let{key:t,startingPeer:r,ourPeerId:n,signal:i,query:s,alpha:a,pathIndex:o,numPaths:c,cleanUp:u,queryFuncTimeout:f,log:l,peersSeen:p}=e,d=new On({concurrency:a}),h=await mr(t);function y(g,m){if(g==null)return;p.add(g);let x=BigInt("0x"+z(ar(m,h),"base16"));d.add(async()=>{let v=[i];f!=null&&v.push(AbortSignal.timeout(f));let T=Un(v);try{for await(let E of s({key:t,peer:g,signal:T,pathIndex:o,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 we(S.id);if(BigInt("0x"+z(ar(L,h),"base16"))>x){l("skipping %p as they are not closer to %b than %p",S.id,t,g);continue}l("querying closer peer %p",S.id),y(S.id,L)}d.emit("completed",E)}}catch(E){if(!i.aborted)return ne({from:g,error:E},e)}finally{T.clear()}},{priority:zl-x}).catch(v=>{l.error(v)})}y(r,await we(r)),yield*R5(d,i,u,l)}var Z1=class{lan;disjointPaths;alpha;shutDownController;running;queries;logger;peerId;routingTable;initialQuerySelfHasRun;metrics;constructor(t,r){let{lan:n=!1,disjointPaths:i=20,alpha:s=3}=r;this.disjointPaths=i??20,this.running=!1,this.alpha=s??3,this.lan=n,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(`libp2p_kad_dht_${this.lan?"lan":"wan"}_running_queries`),queryTime:t.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_query_time_seconds`)}),this.shutDownController=new AbortController,jr(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);jr(1/0,u),n={...n,signal:u}}let s=Un([this.shutDownController.signal,n.signal]);jr(1/0,s);let a=this.logger.forComponent(`libp2p:kad-dht:${this.lan?"lan":"wan"}:query:`+z(t,"base58btc")),o=Date.now(),c=new Xt;try{n.isSelfQuery!==!0&&this.initialQuerySelfHasRun!=null&&(a("waiting for initial query-self query before continuing"),await Promise.race([new Promise((h,y)=>{s.addEventListener("abort",()=>{y(new T0("Query was aborted before self-query ran"))})}),this.initialQuerySelfHasRun.promise]),this.initialQuerySelfHasRun=void 0),a("query:start"),this.queries++,this.metrics?.runningQueries.update(this.queries);let u=await mr(t),f=this.routingTable.closestPeers(u),l=f.slice(0,Math.min(this.disjointPaths,f.length));if(f.length===0){a.error("Running query with no peers");return}let p=new Rr,d=l.map((h,y)=>P5({key:t,startingPeer:h,ourPeerId:this.peerId,signal:s,query:r,pathIndex:y,numPaths:l.length,alpha:this.alpha,cleanUp:c,queryFuncTimeout:n.queryFuncTimeout,log:a,peersSeen:p,onProgress:n.onProgress}));for await(let h of xe(...d))yield h,h.name==="QUERY_ERROR"&&a("error",h.error)}catch(u){if(!(!this.running&&u.code==="ERR_QUERY_ABORTED"))throw u}finally{s.clear(),this.queries--,this.metrics?.runningQueries.update(this.queries),i?.(),c.dispatchEvent(new Rt("cleanup")),a("query:done in %dms",Date.now()-o)}}};function $l(e){return e[Symbol.asyncIterator]!=null}function Gl(e){if($l(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 X1=Gl;function Ql(e){return e[Symbol.asyncIterator]!=null}function Yl(e,t){return Ql(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 L5=Yl;var J1=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Mo=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},N5=e=>globalThis.DOMException===void 0?new Mo(e):new DOMException(e),D5=e=>{let t=e.reason===void 0?N5("This operation was aborted."):e.reason;return t instanceof Error?t:N5(t)};function Vo(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=t,a,c=new Promise((u,f)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(t.signal){let{signal:p}=t;p.aborted&&f(D5(p)),p.addEventListener("abort",()=>{f(D5(p))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new J1;a=s.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=()=>{s.clearTimeout.call(void 0,a),a=void 0},c}var Wl=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 Zl(e,t,r){let n,i=new Promise((s,a)=>{if(r={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...r},!(r.count>=0&&(r.count===Number.POSITIVE_INFINITY||Number.isInteger(r.count))))throw new TypeError("The `count` option should be at least 0 or more");r.signal?.throwIfAborted();let o=[t].flat(),c=[],{addListener:u,removeListener:f}=Wl(e),l=(...d)=>{let h=r.multiArgs?d:d[0];r.filter&&!r.filter(h)||(c.push(h),r.count===c.length&&(n(),s(c)))},p=d=>{n(),a(d)};n=()=>{for(let d of o)f(d,l);for(let d of r.rejectionEvents)f(d,p)};for(let d of o)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&&s(c)});if(i.cancel=n,typeof r.timeout=="number"){let s=Vo(i,{milliseconds:r.timeout});return s.cancel=n,s}return i}function k5(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=Zl(e,t,r),i=n.then(s=>s[0]);return i.cancel=n.cancel,i}var j1=class{log;peerId;peerRouting;routingTable;count;interval;initialInterval;queryTimeout;started;timeoutId;controller;initialQuerySelfHasRun;querySelfPromise;constructor(t,r){let{peerRouting:n,lan:i,count:s,interval:a,queryTimeout:o,routingTable:c}=r;this.peerId=t.peerId,this.log=t.logger.forComponent(`libp2p:kad-dht:${i?"lan":"wan"}:query-self`),this.started=!1,this.peerRouting=n,this.routingTable=c,this.count=s??20,this.interval=a??3e5,this.initialInterval=r.initialInterval??1e3,this.queryTimeout=o??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=qt(),this.started){this.controller=new AbortController;let t=Un([this.controller.signal,AbortSignal.timeout(this.queryTimeout)]);jr(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 lr(this.peerRouting.getClosestPeers(this.peerId.toBytes(),{signal:t,isSelfQuery:!0}),i=>L5(i,this.count),async i=>X1(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 O5(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 qo(){return{contacts:[],dontSplit:!1,left:null,right:null}}function I0(e,t){if(!(t instanceof Uint8Array))throw new TypeError(e+" is not a Uint8Array")}var ti=class e extends Xt{localNodeId;root;numberOfNodesPerKBucket;numberOfNodesToPing;distance;arbiter;constructor(t){super(),this.localNodeId=t.localNodeId,this.numberOfNodesPerKBucket=t.numberOfNodesPerKBucket??20,this.numberOfNodesToPing=t.numberOfNodesToPing??3,this.distance=t.distance??e.distance,this.arbiter=t.arbiter??e.arbiter,I0("option.localNodeId as parameter 1",this.localNodeId),this.root=qo()}static arbiter(t,r){return(t.vectorClock??0)>(r.vectorClock??0)?t:r}static distance(t,r){let n=0,i=0,s=Math.min(t.length,r.length),a=Math.max(t.length,r.length);for(;i<s;++i)n=n*256+(t[i]^r[i]);for(;i<a;++i)n=n*256+255;return n}add(t){I0("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(I0("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],s=0;i.length>0&&n.length<r;){let a=i.pop();if(a!=null)if(a.contacts===null){let o=this._determineNode(a,t,s++);i.push(a.left===o?a.right:a.left),i.push(o)}else n=n.concat(a.contacts)}return n.map(i=>({distance:this.distance(i.id,t),contact:i})).sort((i,s)=>i.distance-s.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,s=n%8;return r.length<=i&&s!==0?t.left:r[i]&1<<7-s?t.right:t.left}get(t){I0("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(O5(t.contacts[n].id,r))return n;return-1}remove(t){I0("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 s=n.contacts.splice(i,1)[0];this.safeDispatchEvent("removed",{detail:s})}return this}_split(t,r){t.left=qo(),t.right=qo();for(let s of t.contacts)this._determineNode(t,s.id,r).contacts.push(s);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(!O5(t.contacts[r].id,n.id))throw new Error("wrong index for _update");let i=t.contacts[r],s=this.arbiter(i,n);s===i&&i!==n||(t.contacts.splice(r,1),t.contacts.push(s),this.safeDispatchEvent("updated",{detail:{incumbent:i,selection:s}}))}};var t9="kad-close",e9=50,U5=20,r9=1e4,n9=10,ei=class extends Xt{kBucketSize;kb;pingQueue;log;components;lan;pingTimeout;pingConcurrency;running;protocol;tagName;tagValue;metrics;constructor(t,r){super();let{kBucketSize:n,pingTimeout:i,lan:s,pingConcurrency:a,protocol:o,tagName:c,tagValue:u}=r;this.components=t,this.log=t.logger.forComponent(`libp2p:kad-dht:${s?"lan":"wan"}:routing-table`),this.kBucketSize=n??U5,this.pingTimeout=i??r9,this.pingConcurrency=a??n9,this.lan=s,this.running=!1,this.protocol=o,this.tagName=c??t9,this.tagValue=u??e9;let f=()=>{this.metrics?.pingQueueSize.update(this.pingQueue.size),this.metrics?.pingRunning.update(this.pingQueue.pending)};this.pingQueue=new On({concurrency:this.pingConcurrency}),this.pingQueue.addListener("add",f),this.pingQueue.addListener("next",f),this._onPing=this._onPing.bind(this)}isStarted(){return this.running}async start(){this.running=!0,this.components.metrics!=null&&(this.metrics={routingTableSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_routing_table_size`),pingQueueSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_queue_size`),pingRunning:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_running`)});let t=new ti({localNodeId:await we(this.components.peerId),numberOfNodesPerKBucket:this.kBucketSize,numberOfNodesToPing:1});this.kb=t,t.addEventListener("ping",this._onPing),this._tagPeers(t)}async stop(){this.running=!1,this.pingQueue.clear(),this.kb=void 0}_tagPeers(t){let r=new Rr,n=Ra(()=>{let i=new Rr(t.closest(t.localNodeId,U5).map(o=>o.peer)),s=i.difference(r),a=r.difference(i);Promise.resolve().then(async()=>{for(let o of s)await this.components.peerStore.merge(o,{tags:{[this.tagName]:{value:this.tagValue}}});for(let o of a)await this.components.peerStore.merge(o,{tags:{[this.tagName]:void 0}})}).catch(o=>{this.log.error("Could not update peer tags",o)}),r=i});t.addEventListener("added",i=>{n(),this.safeDispatchEvent("peer:add",{detail:i.detail.peer})}),t.addEventListener("removed",i=>{n(),this.safeDispatchEvent("peer:remove",{detail:i.detail.peer})})}_onPing(t){let{oldContacts:r,newContact:n}=t.detail;this.pingQueue.add(async()=>{if(!this.running)return;let i=0;try{await Promise.all(r.map(async s=>{try{let a={signal:AbortSignal.timeout(this.pingTimeout)};this.log("pinging old contact %p",s.peer),await(await(await this.components.connectionManager.openConnection(s.peer,a)).newStream(this.protocol,a)).close(),i++}catch(a){this.running&&this.kb!=null&&(this.log.error("could not ping peer %p",s.peer,a),this.log("evicting old contact after ping failed %p",s.peer),this.kb.remove(s.id))}finally{this.metrics?.routingTableSize.update(this.size)}})),this.running&&i<r.length&&this.kb!=null&&(this.log("adding new contact %p",n.peer),this.kb.add(n))}catch(s){this.log.error("could not process k-bucket ping event",s)}}).catch(i=>{this.log.error("could not process k-bucket ping event",i)})}get size(){return this.kb==null?0:this.kb.count()}async find(t){let r=await we(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 we(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 we(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 ri=15,ni=class{log;peerRouting;routingTable;refreshInterval;refreshQueryTimeout;commonPrefixLengthRefreshedAt;refreshTimeoutId;constructor(t,r){let{peerRouting:n,routingTable:i,refreshInterval:s,refreshQueryTimeout:a,lan:o}=r;this.log=t.logger.forComponent(`libp2p:kad-dht:${o?"lan":"wan"}:routing-table:refresh`),this.peerRouting=n,this.routingTable=i,this.refreshInterval=s??3e5,this.refreshQueryTimeout=a??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,s)=>{try{if(await this._refreshCommonPrefixLength(s,i,t),this._numPeersForCpl(r)===0){let a=Math.min(2*(s+1),n.length-1);for(let o=s+1;o<a+1;o++)try{await this._refreshCommonPrefixLength(o,i,t)}catch(c){this.log.error(c)}}}catch(a){this.log.error(a)}})).catch(i=>{this.log.error(i)}).then(()=>{this.refreshTimeoutId=setTimeout(this.refreshTable,this.refreshInterval),this.refreshTimeoutId.unref!=null&&this.refreshTimeoutId.unref()}).catch(i=>{this.log.error(i)})}async _refreshCommonPrefixLength(t,r,n){if(!n&&r.getTime()>Date.now()-this.refreshInterval){this.log("not running refresh for cpl %s as time since last refresh not above interval",t);return}let i=await this._generateRandomPeerId(t);this.log("starting refreshing cpl %s with key %p (routing table size was %s)",t,i,this.routingTable.size);let s=await X1(this.peerRouting.getClosestPeers(i.toBytes(),{signal:AbortSignal.timeout(this.refreshQueryTimeout)}));this.log(`found ${s} 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>ri&&(t=ri);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 Dr(i)}async _makePeerId(t,r,n){if(n>ri)throw new Error(`Cannot generate peer ID for common prefix length greater than ${ri}`);let a=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(0,!1)^32768>>n,o=65535<<16-(n+1),c=a&o|r&~o,u=F5[c],f=new ArrayBuffer(34),l=new DataView(f,0,f.byteLength);return l.setUint8(0,St.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=ar(this.routingTable.kb.localNodeId,t),n=0;for(let i of r)if(i===0)n++;else break;yield n}}};var ii=class{providers;log;constructor(t,r){this.log=t.logger.forComponent("libp2p:kad-dht: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 P("Missing key","ERR_MISSING_KEY");let n;try{n=re.decode(r.key)}catch{throw new P("Invalid CID","ERR_INVALID_CID")}(r.providerPeers==null||r.providerPeers.length===0)&&this.log.error("no providers found in message"),await Promise.all(r.providerPeers.map(async i=>{if(!i.id.equals(t)){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(s=>s.toString())),await this.providers.addProvider(n,i.id)}))}};var si=class{peerRouting;lan;peerId;addressManager;log;constructor(t,r){let{peerRouting:n,lan:i}=r;this.log=t.logger.forComponent("libp2p:kad-dht:rpc:handlers:find-node"),this.peerId=t.peerId,this.addressManager=t.addressManager,this.peerRouting=n,this.lan=!!i}async handle(t,r){this.log("incoming request from %p for peers closer to %b",t,r.key);let n=[];ht(this.peerId.toBytes(),r.key)?n=[{id:this.peerId,multiaddrs:this.addressManager.getAddresses().map(s=>s.decapsulateCode(ct("p2p").code))}]:n=await this.peerRouting.getCloserPeersOffline(r.key,t),n=n.map(this.lan?vn:xn).filter(({multiaddrs:s})=>s.length);let i=new vt(r.type,new Uint8Array(0),r.clusterLevel);return n.length>0?i.closerPeers=n:this.log("could not find any peers closer to %b than %p",r.key,t),i}};var oi=class{peerRouting;providers;lan;peerStore;log;constructor(t,r){let{peerRouting:n,providers:i,lan:s}=r;this.log=t.logger.forComponent("libp2p:kad-dht:rpc:handlers:get-providers"),this.peerStore=t.peerStore,this.peerRouting=n,this.providers=i,this.lan=!!s}async handle(t,r){let n;try{n=re.decode(r.key)}catch{throw new P("Invalid CID","ERR_INVALID_CID")}this.log("%p asking for providers for %s",t,n);let[i,s]=await Promise.all([this.providers.getProviders(n),this.peerRouting.getCloserPeersOffline(r.key,t)]),a=await this._getPeers(i),o=await this._getPeers(s.map(({id:u})=>u)),c=new vt(r.type,r.key,r.clusterLevel);return a.length>0&&(c.providerPeers=a),o.length>0&&(c.closerPeers=o),this.log("got %s providers %s closerPeers",a.length,o.length),c}async _getAddresses(t){return[]}async _getPeers(t){let r=[],n=this.lan?vn:xn;for(let i of t)try{let s=await this.peerStore.get(i),a=n({id:i,multiaddrs:s.addresses.map(({multiaddr:o})=>o)});a.multiaddrs.length>0&&r.push(a)}catch(s){if(s.code!=="ERR_NOT_FOUND")throw s}return r}};var ai=class{peerStore;datastore;peerRouting;log;constructor(t,r){this.log=t.logger.forComponent("libp2p:kad-dht: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 P("Invalid key","ERR_INVALID_KEY");let i=new vt(Pt.GET_VALUE,n,r.clusterLevel);if(_a(n)){this.log("is public key");let o=Ca(n),c;try{let u=await this.peerStore.get(o);if(u.id.publicKey==null)throw new P("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 Mt(n,c,new Date),i}let[s,a]=await Promise.all([this._checkLocalDatastore(n),this.peerRouting.getCloserPeersOffline(r.key,t)]);return s!=null&&(this.log("had record for %b in local datastore",n),i.record=s),a.length>0&&(this.log("had %s closer peers in routing table",a.length),i.closerPeers=a),i}async _checkLocalDatastore(t){this.log("checkLocalDatastore looking for %b",t);let r=We(t),n;try{n=await this.datastore.get(r)}catch(s){if(s.code==="ERR_NOT_FOUND")return;throw s}let i=Mt.deserialize(n);if(i==null)throw new P("Invalid record","ERR_INVALID_RECORD");if(i.timeReceived==null||Date.now()-i.timeReceived.getTime()>1296e5){await this.datastore.delete(r);return}return i}};var ci=class{log;constructor(t){this.log=t.logger.forComponent("libp2p:kad-dht:rpc:handlers:ping")}async handle(t,r){return this.log("ping from %p",t),r}};var ui=class{components;validators;log;constructor(t,r){let{validators:n}=r;this.components=t,this.log=t.logger.forComponent("libp2p:kad-dht:rpc:handlers:put-value"),this.validators=n}async handle(t,r){let n=r.key;this.log("%p asked us to store value for key %b",t,n);let i=r.record;if(i==null){let s=`Empty record from: ${t.toString()}`;throw this.log.error(s),new P(s,"ERR_EMPTY_RECORD")}try{await gn(this.validators,i),i.timeReceived=new Date;let s=We(i.key);await this.components.datastore.put(s,i.serialize().subarray()),this.log("put record for %b into datastore under key %k",n,s)}catch(s){this.log("did not put record for key %b into datastore %o",n,s)}return r}};var fi=class{handlers;routingTable;log;constructor(t,r){let{providers:n,peerRouting:i,validators:s,lan:a}=r;this.log=t.logger.forComponent("libp2p:kad-dht:rpc"),this.routingTable=r.routingTable,this.handlers={[Pt.GET_VALUE]:new ai(t,{peerRouting:i}),[Pt.PUT_VALUE]:new ui(t,{validators:s}),[Pt.FIND_NODE]:new si(t,{peerRouting:i,lan:a}),[Pt.ADD_PROVIDER]:new ii(t,{providers:n}),[Pt.GET_PROVIDERS]:new oi(t,{peerRouting:i,providers:n,lan:a}),[Pt.PING]:new ci(t)}}async handleMessage(t,r){try{await this.routingTable.add(t)}catch(i){this.log.error("Failed to update the kbucket store",i)}let n=this.handlers[r.type];if(n==null){this.log.error(`no handler found for message type: ${r.type}`);return}return n.handle(t,r)}onIncomingStream(t){Promise.resolve().then(async()=>{let{stream:r,connection:n}=t,i=n.remotePeer;try{await this.routingTable.add(i)}catch(a){this.log.error(a)}let s=this;await lr(r,a=>jn(a),async function*(a){for await(let o of a){let c=vt.deserialize(o);s.log("incoming %s from %p",c.type,i);let u=await s.handleMessage(i,c);u!=null&&(yield u.serialize())}},a=>Ur(a),r)}).catch(r=>{this.log.error(r)})}};var li=class extends Xt{log;components;protocol;running;registrarId;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=t.logger.forComponent(`libp2p:kad-dht:topology-listener:${i?"lan":"wan"}`),this.running=!1,this.protocol=n}isStarted(){return this.running}async start(){this.running||(this.running=!0,this.registrarId=await this.components.registrar.register(this.protocol,{onConnect:t=>{this.log("observed peer %p with protocol %s",t,this.protocol),this.dispatchEvent(new Rt("peer",{detail:t}))}}))}async stop(){this.running=!1,this.registrarId!=null&&(this.components.registrar.unregister(this.registrarId),this.registrarId=void 0)}};var a9=32,c9=64,A0=class extends Xt{protocol;routingTable;providers;network;peerRouting;components;log;running;kBucketSize;clientMode;lan;validators;selectors;queryManager;contentFetching;contentRouting;routingTableRefresh;rpc;topologyListener;querySelf;maxInboundStreams;maxOutboundStreams;constructor(t,r){super();let{kBucketSize:n,clientMode:i,validators:s,selectors:a,querySelfInterval:o,lan:c,protocolPrefix:u,pingTimeout:f,pingConcurrency:l,maxInboundStreams:p,maxOutboundStreams:d,providers:h}=r;this.running=!1,this.components=t,this.lan=!!c,this.log=t.logger.forComponent(`libp2p:kad-dht:${c===!0?"lan":"wan"}`),this.protocol=`${u??x2}${c===!0?m2:""}${v2}`,this.kBucketSize=n??20,this.clientMode=i??!0,this.maxInboundStreams=p??a9,this.maxOutboundStreams=d??c9,this.routingTable=new ei(t,{kBucketSize:n,lan:this.lan,pingTimeout:f,pingConcurrency:l,protocol:this.protocol}),this.providers=new Y1(t,h??{}),this.validators={...Ia,...s},this.selectors={...Sa,...a},this.network=new Z0(t,{protocol:this.protocol,lan:this.lan});let y=qt();r.allowQueryWithZeroPeers===!0&&y.resolve(),this.queryManager=new Z1(t,{disjointPaths:Math.ceil(this.kBucketSize/2),lan:c,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.peerRouting=new F1(t,{routingTable:this.routingTable,network:this.network,validators:this.validators,queryManager:this.queryManager,lan:this.lan}),this.contentFetching=new q0(t,{validators:this.validators,selectors:this.selectors,peerRouting:this.peerRouting,queryManager:this.queryManager,network:this.network,lan:this.lan}),this.contentRouting=new z0(t,{network:this.network,peerRouting:this.peerRouting,queryManager:this.queryManager,routingTable:this.routingTable,providers:this.providers,lan:this.lan}),this.routingTableRefresh=new ni(t,{peerRouting:this.peerRouting,routingTable:this.routingTable,lan:this.lan}),this.rpc=new fi(t,{routingTable:this.routingTable,providers:this.providers,peerRouting:this.peerRouting,validators:this.validators,lan:this.lan}),this.topologyListener=new li(t,{protocol:this.protocol,lan:this.lan}),this.querySelf=new j1(t,{peerRouting:this.peerRouting,interval:o,initialInterval:r.initialQuerySelfInterval,lan:this.lan,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.network.addEventListener("peer",g=>{let m=g.detail;this.onPeerConnect(m).catch(x=>{this.log.error("could not add %p to routing table",m.id,x)}),this.dispatchEvent(new Rt("peer",{detail:m}))}),this.topologyListener.addEventListener("peer",g=>{let m=g.detail;Promise.resolve().then(async()=>{let x=await this.components.peerStore.get(m),v={id:m,multiaddrs:x.addresses.map(({multiaddr:T})=>T),protocols:x.protocols};await this.onPeerConnect(v)}).catch(x=>{this.log.error("could not add %p to routing table",m,x)})})}async onPeerConnect(t){if(this.log("peer %p connected",t.id),this.lan?t=vn(t):t=xn(t),t.multiaddrs.length===0){this.log("ignoring %p as they do not have any %s addresses in %s",t.id,this.lan?"private":"public",t.multiaddrs.map(r=>r.toString()));return}try{await this.routingTable.add(t.id)}catch(r){this.log.error("could not add %p to routing table",t.id,r)}}isStarted(){return this.running}async getMode(){return this.clientMode?"client":"server"}async setMode(t){await this.components.registrar.unhandle(this.protocol),t==="client"?(this.log("enabling client mode"),this.clientMode=!0):(this.log("enabling server mode"),this.clientMode=!1,await this.components.registrar.handle(this.protocol,this.rpc.onIncomingStream.bind(this.rpc),{maxInboundStreams:this.maxInboundStreams,maxOutboundStreams:this.maxOutboundStreams}))}async start(){this.running=!0,await this.setMode(this.clientMode?"client":"server"),await Promise.all([this.providers.start(),this.queryManager.start(),this.network.start(),this.routingTable.start(),this.topologyListener.start()]),this.querySelf.start(),await this.routingTableRefresh.start()}async stop(){this.running=!1,this.querySelf.stop(),await Promise.all([this.providers.stop(),this.queryManager.stop(),this.network.stop(),this.routingTable.stop(),this.routingTableRefresh.stop(),this.topologyListener.stop()])}async*put(t,r,n={}){yield*this.contentFetching.put(t,r,n)}async*get(t,r={}){yield*this.contentFetching.get(t,r)}async*provide(t,r={}){yield*this.contentRouting.provide(t,this.components.addressManager.getAddresses(),r)}async*findProviders(t,r={}){yield*this.contentRouting.findProviders(t,r)}async*findPeer(t,r={}){yield*this.peerRouting.findPeer(t,r)}async*getClosestPeers(t,r={}){yield*this.peerRouting.getClosestPeers(t,r)}async refreshRoutingTable(){this.routingTableRefresh.refreshTable(!0)}};var zo=class{dht;constructor(t){this.dht=t}async provide(t,r={}){await yi(this.dht.provide(t,r))}async*findProviders(t,r={}){for await(let n of this.dht.findProviders(t,r))n.name==="PROVIDER"&&(yield*n.providers)}async put(t,r,n){await yi(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 P("Not found","ERR_NOT_FOUND")}},Ho=class{dht;constructor(t){this.dht=t}async findPeer(t,r={}){for await(let n of this.dht.findPeer(t,r))if(n.name==="FINAL_PEER")return n.peer;throw new P("Not found","ERR_NOT_FOUND")}async*getClosestPeers(t,r={}){for await(let n of this.dht.getClosestPeers(t,r))n.name==="FINAL_PEER"&&(yield n.peer)}},u9=290,f9=54,l9=55,h9=56,d9=4,p9=41;function y9(e){let t=e.stringTuples();for(let r of t)if(r[0]===u9)return!1;if(t[0][0]===f9||t[0][0]===l9||t[0][0]===h9)return!0;if(t[0][0]===d9||t[0][0]===p9){let r=Mn(`${t[0][1]}`);return r==null||!r}return!1}var hi=class extends Xt{wan;lan;components;contentRouting;peerRouting;log;constructor(t,r={}){super(),this.components=t,this.log=t.logger.forComponent("libp2p:kad-dht"),this.wan=new A0(t,{protocolPrefix:"/ipfs",...r,lan:!1}),this.lan=new A0(t,{protocolPrefix:"/ipfs",...r,clientMode:!1,lan:!0}),this.contentRouting=new zo(this),this.peerRouting=new Ho(this),this.wan.addEventListener("peer",n=>{this.dispatchEvent(new Rt("peer",{detail:n.detail}))}),this.lan.addEventListener("peer",n=>{this.dispatchEvent(new Rt("peer",{detail:n.detail}))}),r.clientMode==null&&t.events.addEventListener("self:peer:update",n=>{this.log("received update of self-peer info");let i=n.detail.peer.addresses.some(({multiaddr:s})=>y9(s));this.getMode().then(async s=>{i&&s==="client"?await this.setMode("server"):s==="server"&&!i&&await this.setMode("client")}).catch(s=>{this.log.error("error setting dht server mode",s)})})}[Symbol.toStringTag]="@libp2p/dual-kad-dht";get[r2](){return this.contentRouting}get[i2](){return this.peerRouting}get[n2](){return this}isStarted(){return this.wan.isStarted()&&this.lan.isStarted()}async getMode(){return this.wan.getMode()}async setMode(t){await this.wan.setMode(t)}async start(){await Promise.all([this.lan.start(),this.wan.start()])}async stop(){await Promise.all([this.lan.stop(),this.wan.stop()])}async*put(t,r,n={}){for await(let i of xe(this.lan.put(t,r,n),this.wan.put(t,r,n)))yield i}async*get(t,r={}){let n=!1,i=!1;for await(let s of xe(this.lan.get(t,r),this.wan.get(t,r)))yield s,s.name==="DIAL_PEER"&&(n=!0),s.name==="VALUE"&&(n=!0,s.value!=null&&(i=!0)),s.name==="SEND_QUERY"&&(n=!0);if(!n)throw new P("No peers found in routing table!","ERR_NO_PEERS_IN_ROUTING_TABLE");i||(yield ne({from:this.components.peerId,error:new P("Not found","ERR_NOT_FOUND")},r))}async*provide(t,r={}){let n=0,i=0,s=[],a=[this.lan];await this.wan.getMode()==="server"&&a.push(this.wan);for await(let o of xe(...a.map(c=>c.provide(t,r))))yield o,o.name==="SEND_QUERY"&&n++,o.name==="QUERY_ERROR"&&s.push(o.error),o.name==="PEER_RESPONSE"&&o.messageName==="ADD_PROVIDER"&&(this.log("sent provider record for %s to %p",t,o.from),i++);if(i===0)throw s.length>0?new P(`Failed to provide to ${s.length} of ${n} peers`,"ERR_PROVIDES_FAILED",{errors:s}):new P("Failed to provide - no peers found","ERR_PROVIDES_FAILED")}async*findProviders(t,r={}){yield*xe(this.lan.findProviders(t,r),this.wan.findProviders(t,r))}async*findPeer(t,r={}){let n=!1;for await(let i of xe(this.lan.findPeer(t,r),this.wan.findPeer(t,r)))yield i,(i.name==="SEND_QUERY"||i.name==="FINAL_PEER")&&(n=!0);if(!n)throw new P("Peer lookup failed","ERR_LOOKUP_FAILED")}async*getClosestPeers(t,r={}){yield*xe(this.lan.getClosestPeers(t,r),this.wan.getClosestPeers(t,r))}async refreshRoutingTable(){await Promise.all([this.lan.refreshRoutingTable(),this.wan.refreshRoutingTable()])}};var $o;(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"})($o||($o={}));var Go;(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"})(Go||(Go={}));function g9(e){return t=>new hi(t,e)}return J5(m9);})();
|
|
26
|
+
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),c8=new RegExp(`(?:^${be}$)|(?:^${R0}$)`),u8=new RegExp(`^${be}$`),f8=new RegExp(`^${R0}$`),vi=e=>e&&e.exact?c8:new RegExp(`(?:${lr(e)}${be}${lr(e)})|(?:${lr(e)}${R0}${lr(e)})`,"g");vi.v4=e=>e&&e.exact?u8:new RegExp(`${lr(e)}${be}${lr(e)}`,"g");vi.v6=e=>e&&e.exact?f8:new RegExp(`${lr(e)}${R0}${lr(e)}`,"g");var h2=vi;var P0=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,r,n,i){return this.readAtomically(()=>{let o=0,a=0,s=this.peekChar();if(s===void 0)return;let c=s==="0",u=2**(8*i)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let p=Number.parseInt(l,t);if(!Number.isNaN(p))return p});if(f===void 0)break;if(o*=t,o+=f,o>u||(a+=1,r!==void 0&&a>r))return}if(a!==0)return!n&&c&&a>1?void 0:o})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let a=this.readSeparator(":",n,()=>this.readIPv4Addr());if(a!==void 0)return r[i]=a[0],r[i+1]=a[1],r[i+2]=a[2],r[i+3]=a[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),a=16-(n+2),[s]=t(o.subarray(0,a));return r.set(o.subarray(0,s),16-s),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var d2=45,l8=15,nn=new P0;function bi(e){if(!(e.length>l8))return nn.new(e).parseWith(()=>nn.readIPv4Addr())}function wi(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>d2))return nn.new(e).parseWith(()=>nn.readIPv6Addr())}function L0(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>d2))return nn.new(e).parseWith(()=>nn.readIPAddr())}function p2(e){return!!bi(e)}function y2(e){return!!wi(e)}function on(e){return!!L0(e)}var b2=Bt(m2(),1),{isValid:h8,parse:d8}=b2.default,p8=["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"],y8=p8.map(e=>new v2.Netmask(e));function g8(e){for(let t of y8)if(t.contains(e))return!0;return!1}function x2(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 w2=e=>{if(h8(e)){let t=d8(e);if(t.kind()==="ipv4")return g8(t.toNormalizedString());if(t.kind()==="ipv6")return x2(e)}else if(on(e)&&h2.v6().test(e))return x2(e)};var Vn=w2;var E2="/lan",S2="/ipfs",I2="/kad/1.0.0",A2="/dht/record",Ei="/dht/provider";function m8(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 B2=m8;function x8(e){return e[Symbol.asyncIterator]!=null}function v8(e,t){if(x8(e))return async function*(){for await(let s of e)yield t(s)}();let r=B2(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let o=t(n);if(typeof o.then=="function")return async function*(){yield await o;for await(let s of r)yield t(s)}();let a=t;return function*(){yield o;for(let s of r)yield a(s)}()}var D0=v8;var k0=globalThis.CustomEvent??Event;async function*qn(e,t={}){let r=t.concurrency??1/0;r<1&&(r=1/0);let n=t.ordered==null?!1:t.ordered,i=new EventTarget,o=[],a=qt(),s=qt(),c=!1,u,f=!1;i.addEventListener("task-complete",()=>{s.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of e){if(o.length===r&&(a=qt(),await a.promise),f)break;let y={done:!1};o.push(y),h().then(g=>{y.done=!0,y.ok=!0,y.value=g,i.dispatchEvent(new k0("task-complete"))},g=>{y.done=!0,y.err=g,i.dispatchEvent(new k0("task-complete"))})}c=!0,i.dispatchEvent(new k0("task-complete"))}catch(h){u=h,i.dispatchEvent(new k0("task-complete"))}});function l(){return n?o[0]?.done:!!o.find(h=>h.done)}function*p(){for(;o.length>0&&o[0].done;){let h=o[0];if(o.shift(),h.ok)yield h.value;else throw f=!0,a.resolve(),h.err;a.resolve()}}function*d(){for(;l();)for(let h=0;h<o.length;h++)if(o[h].done){let y=o[h];if(o.splice(h,1),h--,y.ok)yield y.value;else throw f=!0,a.resolve(),y.err;a.resolve()}}for(;;){if(l()||(s=qt(),await s.promise),u!=null)throw u;if(n?yield*p():yield*d(),c&&o.length===0)break}}function hr(e,...t){if(e==null)throw new Error("Empty pipeline");if(Si(e)){let n=e;e=()=>n.source}else if(_2(e)||T2(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]=w8(r[n]));return b8(...r)}var b8=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},T2=e=>e?.[Symbol.asyncIterator]!=null,_2=e=>e?.[Symbol.iterator]!=null,Si=e=>e==null?!1:e.sink!=null&&e.source!=null,w8=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=rn({objectMode:!0});r.then(()=>{n.end()},a=>{n.end(a)});let i,o=e.source;if(T2(o))i=async function*(){yield*o,n.end()};else if(_2(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return ve(n,i())}return e.source};function ht(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 _i={};Ot(_i,{base58btc:()=>Kt,base58flickr:()=>T8});function E8(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),a=o.charCodeAt(0);if(r[a]!==255)throw new TypeError(o+" is ambiguous");r[a]=i}var s=e.length,c=e.charAt(0),u=Math.log(s)/Math.log(256),f=Math.log(256)/Math.log(s);function l(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var y=0,g=0,m=0,x=h.length;m!==x&&h[m]===0;)m++,y++;for(var v=(x-m)*f+1>>>0,T=new Uint8Array(v);m!==x;){for(var E=h[m],S=0,L=v-1;(E!==0||S<g)&&L!==-1;L--,S++)E+=256*T[L]>>>0,T[L]=E%s>>>0,E=E/s>>>0;if(E!==0)throw new Error("Non-zero carry");g=S,m++}for(var N=v-g;N!==v&&T[N]===0;)N++;for(var G=c.repeat(y);N<v;++N)G+=e.charAt(T[N]);return G}function p(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var y=0;if(h[y]!==" "){for(var g=0,m=0;h[y]===c;)g++,y++;for(var x=(h.length-y)*u+1>>>0,v=new Uint8Array(x);h[y];){var T=r[h.charCodeAt(y)];if(T===255)return;for(var E=0,S=x-1;(T!==0||E<m)&&S!==-1;S--,E++)T+=s*v[S]>>>0,v[S]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=E,y++}if(h[y]!==" "){for(var L=x-m;L!==x&&v[L]===0;)L++;for(var N=new Uint8Array(g+(x-L)),G=g;L!==x;)N[G++]=v[L++];return N}}}function d(h){var y=p(h);if(y)return y;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:p,decode:d}}var S8=E8,I8=S8,C2=I8;var Kh=new Uint8Array(0);var R2=(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 P2=e=>new TextEncoder().encode(e),L2=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 D2(this,t)}},Bi=class{constructor(t){this.decoders=t}or(t){return D2(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`)}},D2=(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)}},sn=({name:e,prefix:t,encode:r,decode:n})=>new Ti(e,t,r,n),dr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=C2(r,t);return sn({prefix:e,name:t,encode:n,decode:o=>Qe(i(o))})},A8=(e,t,r,n)=>{let i={};for(let f=0;f<t.length;++f)i[t[f]]=f;let o=e.length;for(;e[o-1]==="=";)--o;let a=new Uint8Array(o*r/8|0),s=0,c=0,u=0;for(let f=0;f<o;++f){let l=i[e[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|l,s+=r,s>=8&&(s-=8,a[u++]=255&c>>s)}if(s>=r||255&c<<8-s)throw new SyntaxError("Unexpected end of data");return a},B8=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,o="",a=0,s=0;for(let c=0;c<e.length;++c)for(s=s<<8|e[c],a+=8;a>r;)a-=r,o+=t[i&s>>a];if(a&&(o+=t[i&s<<r-a]),n)for(;o.length*r&7;)o+="=";return o},Tt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>sn({prefix:t,name:e,encode(i){return B8(i,n,r)},decode(i){return A8(i,n,r,e)}});var Kt=dr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),T8=dr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ci={};Ot(Ci,{base10:()=>_8});var _8=dr({prefix:"9",name:"base10",alphabet:"0123456789"});var Ri={};Ot(Ri,{base16:()=>C8,base16upper:()=>R8});var C8=Tt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),R8=Tt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Pi={};Ot(Pi,{base2:()=>P8});var P8=Tt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Li={};Ot(Li,{base256emoji:()=>O8});var k2=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),L8=k2.reduce((e,t,r)=>(e[r]=t,e),[]),N8=k2.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function D8(e){return e.reduce((t,r)=>(t+=L8[r],t),"")}function k8(e){let t=[];for(let r of e){let n=N8[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var O8=sn({prefix:"\u{1F680}",name:"base256emoji",encode:D8,decode:k8});var Ni={};Ot(Ni,{base32:()=>Ye,base32hex:()=>M8,base32hexpad:()=>q8,base32hexpadupper:()=>z8,base32hexupper:()=>V8,base32pad:()=>F8,base32padupper:()=>K8,base32upper:()=>U8,base32z:()=>H8});var Ye=Tt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),U8=Tt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),F8=Tt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),K8=Tt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),M8=Tt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),V8=Tt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),q8=Tt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),z8=Tt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),H8=Tt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Di={};Ot(Di,{base36:()=>$8,base36upper:()=>G8});var $8=dr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),G8=dr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ki={};Ot(ki,{base64:()=>zn,base64pad:()=>Q8,base64url:()=>Y8,base64urlpad:()=>W8});var zn=Tt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Q8=Tt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Y8=Tt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),W8=Tt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Oi={};Ot(Oi,{base8:()=>Z8});var Z8=Tt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ui={};Ot(Ui,{identity:()=>X8});var X8=sn({prefix:"\0",name:"identity",encode:e=>L2(e),decode:e=>P2(e)});var td=new TextEncoder,ed=new TextDecoder;var Ki={};Ot(Ki,{identity:()=>pr});var t6=F2,O2=128,e6=127,r6=~e6,n6=Math.pow(2,31);function F2(e,t,r){t=t||[],r=r||0;for(var n=r;e>=n6;)t[r++]=e&255|O2,e/=128;for(;e&r6;)t[r++]=e&255|O2,e>>>=7;return t[r]=e|0,F2.bytes=r-n+1,t}var i6=Fi,o6=128,U2=127;function Fi(e,n){var r=0,n=n||0,i=0,o=n,a,s=e.length;do{if(o>=s)throw Fi.bytes=0,new RangeError("Could not decode varint");a=e[o++],r+=i<28?(a&U2)<<i:(a&U2)*Math.pow(2,i),i+=7}while(a>=o6);return Fi.bytes=o-n,r}var s6=Math.pow(2,7),a6=Math.pow(2,14),c6=Math.pow(2,21),u6=Math.pow(2,28),f6=Math.pow(2,35),l6=Math.pow(2,42),h6=Math.pow(2,49),d6=Math.pow(2,56),p6=Math.pow(2,63),y6=function(e){return e<s6?1:e<a6?2:e<c6?3:e<u6?4:e<f6?5:e<l6?6:e<h6?7:e<d6?8:e<p6?9:10},g6={encode:t6,decode:i6,encodingLength:y6},m6=g6,Hn=m6;var $n=(e,t=0)=>[Hn.decode(e,t),Hn.decode.bytes],an=(e,t,r=0)=>(Hn.encode(e,t,r),t),cn=e=>Hn.encodingLength(e);var Le=(e,t)=>{let r=t.byteLength,n=cn(e),i=n+cn(r),o=new Uint8Array(i+r);return an(e,o,0),an(r,o,n),o.set(t,i),new un(e,r,t,o)},Nr=e=>{let t=Qe(e),[r,n]=$n(t),[i,o]=$n(t.subarray(n)),a=t.subarray(n+o);if(a.byteLength!==i)throw new Error("Incorrect length");return new un(r,i,a,t)},K2=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&R2(e.bytes,r.bytes)}},un=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var M2=0,x6="identity",V2=Qe,v6=e=>Le(M2,V2(e)),pr={code:M2,name:x6,encode:V2,digest:v6};var qi={};Ot(qi,{sha256:()=>St,sha512:()=>b6});var Vi=({name:e,code:t,encode:r})=>new Mi(e,t,r),Mi=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?Le(this.code,r):r.then(n=>Le(this.code,n))}else throw Error("Unknown type, must be binary type")}};var z2=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),St=Vi({name:"sha2-256",code:18,encode:z2("SHA-256")}),b6=Vi({name:"sha2-512",code:19,encode:z2("SHA-512")});var H2=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return E6(r,zi(e),t||Kt.encoder);default:return S6(r,zi(e),t||Ye.encoder)}};var $2=new WeakMap,zi=e=>{let t=$2.get(e);if(t==null){let r=new Map;return $2.set(e,r),r}return t},re=class e{constructor(t,r,n,i){this.code=r,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==Gn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==I6)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=Le(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&&K2(t.multihash,n.multihash)}toString(t){return H2(this,t)}toJSON(){return{"/":H2(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:o,bytes:a}=r;return new e(n,i,o,a||G2(n,i,o.bytes))}else if(r[A6]===!0){let{version:n,multihash:i,code:o}=r,a=Nr(i);return e.create(n,o,a)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==Gn)throw new Error(`Version 0 CID must use dag-pb (code: ${Gn}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=G2(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,Gn,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),a=new un(r.multihashCode,r.digestSize,o,i);return[r.version===0?e.createV0(a):e.createV1(r.codec,a),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[l,p]=$n(t.subarray(r));return r+=p,l},i=n(),o=Gn;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let a=r,s=n(),c=n(),u=r+c,f=u-a;return{version:i,codec:o,multihashCode:s,digestSize:c,multihashSize:f,size:u}}static parse(t,r){let[n,i]=w6(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}},w6=(e,t)=>{switch(e[0]){case"Q":{let r=t||Kt;return[Kt.prefix,r.decode(`${Kt.prefix}${e}`)]}case Kt.prefix:{let r=t||Kt;return[Kt.prefix,r.decode(e)]}case Ye.prefix:{let r=t||Ye;return[Ye.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)]}}},E6=(e,t,r)=>{let{prefix:n}=r;if(n!==Kt.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},S6=(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},Gn=112,I6=18,G2=(e,t,r)=>{let n=cn(e),i=n+cn(t),o=new Uint8Array(i+r.byteLength);return an(e,o,0),an(t,o,n),o.set(r,i),o},A6=Symbol.for("@ipld/js-cid/CID");var yr={...Ui,...Pi,...Oi,...Ci,...Ri,...Ni,...Di,..._i,...ki,...Li},md={...qi,...Ki};var B6=Symbol.for("nodejs.util.inspect.custom"),Q2=Object.values(yr).map(e=>e.decoder).reduce((e,t)=>e.or(t),yr.identity.decoder),Y2=114,Hi=36,$i=37,Qn=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=Kt.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return re.createV1(Y2,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return ht(this.multihash.bytes,t);if(typeof t=="string")return _t(t).equals(this);if(t?.multihash?.bytes!=null)return ht(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[B6](){return`PeerId(${this.toString()})`}},fn=class extends Qn{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},ln=class extends Qn{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},hn=class extends Qn{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function _t(e,t){if(t=t??Q2,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Nr(Kt.decode(`z${e}`));return e.startsWith("12D")?new ln({multihash:r}):e.startsWith("16U")?new hn({multihash:r}):new fn({multihash:r})}return kr(Q2.decode(e))}function kr(e){try{let t=Nr(e);if(t.code===pr.code){if(t.digest.length===Hi)return new ln({multihash:t});if(t.digest.length===$i)return new hn({multihash:t})}if(t.code===St.code)return new fn({multihash:t})}catch{return T6(re.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function T6(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==Y2)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===St.code)return new fn({multihash:e.multihash});if(t.code===pr.code){if(t.digest.length===Hi)return new ln({multihash:e.multihash});if(t.digest.length===$i)return new hn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function W2(e,t){return e.length===Hi?new ln({multihash:Le(pr.code,e),privateKey:t}):e.length===$i?new hn({multihash:Le(pr.code,e),privateKey:t}):new fn({multihash:await St.digest(e),publicKey:e,privateKey:t})}var U0=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};function Ne(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function We(e=0){return globalThis.Buffer?.alloc!=null?Ne(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function zt(e=0){return globalThis.Buffer?.allocUnsafe!=null?Ne(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function X2(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var Z2=X2("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Gi=X2("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=zt(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),_6={utf8:Z2,"utf-8":Z2,hex:yr.base16,latin1:Gi,ascii:Gi,binary:Gi,...yr},F0=_6;function z(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)}var C6=Math.pow(2,7),R6=Math.pow(2,14),P6=Math.pow(2,21),Qi=Math.pow(2,28),Yi=Math.pow(2,35),Wi=Math.pow(2,42),Zi=Math.pow(2,49),ot=128,Jt=127;function jt(e){if(e<C6)return 1;if(e<R6)return 2;if(e<P6)return 3;if(e<Qi)return 4;if(e<Yi)return 5;if(e<Wi)return 6;if(e<Zi)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function L6(e,t,r=0){switch(jt(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 N6(e,t,r=0){switch(jt(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 D6(e,t){let r=e[t],n=0;if(n+=r&Jt,r<ot||(r=e[t+1],n+=(r&Jt)<<7,r<ot)||(r=e[t+2],n+=(r&Jt)<<14,r<ot)||(r=e[t+3],n+=(r&Jt)<<21,r<ot)||(r=e[t+4],n+=(r&Jt)*Qi,r<ot)||(r=e[t+5],n+=(r&Jt)*Yi,r<ot)||(r=e[t+6],n+=(r&Jt)*Wi,r<ot)||(r=e[t+7],n+=(r&Jt)*Zi,r<ot))return n;throw new RangeError("Could not decode varint")}function k6(e,t){let r=e.get(t),n=0;if(n+=r&Jt,r<ot||(r=e.get(t+1),n+=(r&Jt)<<7,r<ot)||(r=e.get(t+2),n+=(r&Jt)<<14,r<ot)||(r=e.get(t+3),n+=(r&Jt)<<21,r<ot)||(r=e.get(t+4),n+=(r&Jt)*Qi,r<ot)||(r=e.get(t+5),n+=(r&Jt)*Yi,r<ot)||(r=e.get(t+6),n+=(r&Jt)*Wi,r<ot)||(r=e.get(t+7),n+=(r&Jt)*Zi,r<ot))return n;throw new RangeError("Could not decode varint")}function De(e,t,r=0){return t==null&&(t=zt(jt(e))),t instanceof Uint8Array?L6(e,t,r):N6(e,t,r)}function ue(e,t=0){return e instanceof Uint8Array?D6(e,t):k6(e,t)}function yt(e,t){if(globalThis.Buffer!=null)return Ne(globalThis.Buffer.concat(e,t));t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=zt(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return Ne(r)}var Gd=parseInt("0xFFFF",16),Qd=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function dt(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?Ne(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var ta=p2,M6=y2,Xi=function(e){let t=0;if(e=e.toString().trim(),ta(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(M6(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=ta(r[n]),a;o&&(a=Xi(r[n]),r[n]=z(a.slice(0,2),"base16")),a!=null&&++n<8&&r.splice(n,0,z(a.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(t+16);for(n=0;n<r.length;n++){let o=parseInt(r[n],16);i[t++]=o>>8&255,i[t++]=o&255}return i}throw new Error("invalid ip address")},ea=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 pn={},Ji={},q6=[[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"]];q6.forEach(e=>{let t=z6(...e);Ji[t.code]=t,pn[t.name]=t});function z6(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function ct(e){if(typeof e=="number"){if(Ji[e]!=null)return Ji[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(pn[e]!=null)return pn[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var Pp=ct("ip4"),Lp=ct("ip6"),Np=ct("ipcidr");function to(e,t){switch(ct(e).code){case 4:case 41:return $6(t);case 42:return ia(t);case 6:case 273:case 33:case 132:return sa(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return ia(t);case 421:return W6(t);case 444:return oa(t);case 445:return oa(t);case 466:return Y6(t);default:return z(t,"base16")}}function eo(e,t){switch(ct(e).code){case 4:return ra(t);case 41:return ra(t);case 42:return na(t);case 6:case 273:case 33:case 132:return ro(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return na(t);case 421:return G6(t);case 444:return Z6(t);case 445:return X6(t);case 466:return Q6(t);default:return dt(t,"base16")}}var ji=Object.values(yr).map(e=>e.decoder),H6=function(){let e=ji[0].or(ji[1]);return ji.slice(2).forEach(t=>e=e.or(t)),e}();function ra(e){if(!on(e))throw new Error("invalid ip address");return Xi(e)}function $6(e){let t=ea(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!on(t))throw new Error("invalid ip address");return t}function ro(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function sa(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function na(e){let t=dt(e),r=Uint8Array.from(De(t.length));return yt([r,t],r.length+t.length)}function ia(e){let t=ue(e);if(e=e.slice(jt(t)),e.length!==t)throw new Error("inconsistent lengths");return z(e)}function G6(e){let t;e[0]==="Q"||e[0]==="1"?t=Nr(Kt.decode(`z${e}`)).bytes:t=re.parse(e).multihash.bytes;let r=Uint8Array.from(De(t.length));return yt([r,t],r.length+t.length)}function Q6(e){let t=H6.decode(e),r=Uint8Array.from(De(t.length));return yt([r,t],r.length+t.length)}function Y6(e){let t=ue(e),r=e.slice(jt(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+z(r,"base64url")}function W6(e){let t=ue(e),r=e.slice(jt(t));if(r.length!==t)throw new Error("inconsistent lengths");return z(r,"base58btc")}function Z6(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=Ye.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=ro(n);return yt([r,i],r.length+i.length)}function X6(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=Ye.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=ro(n);return yt([r,i],r.length+i.length)}function oa(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=z(t,"base32"),i=sa(r);return`${n}:${i}`}function aa(e){e=no(e);let t=[],r=[],n=null,i=e.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o<i.length;o++){let a=i[o],s=ct(a);if(s.size===0){t.push([s.code]),r.push([s.code]);continue}if(o++,o>=i.length)throw ua("invalid address: "+e);if(s.path===!0){n=no(i.slice(o).join("/")),t.push([s.code,eo(s.code,n)]),r.push([s.code,n]);break}let c=eo(s.code,i[o]);t.push([s.code,c]),r.push([s.code,to(s.code,c)])}return{string:ca(r),bytes:oo(t),tuples:t,stringTuples:r,path:n}}function io(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=ue(e,i),a=jt(o),s=ct(o),c=J6(s,e.slice(i+a));if(c===0){t.push([o]),r.push([o]),i+=a;continue}let u=e.slice(i+a,i+a+c);if(i+=c+a,i>e.length)throw ua("Invalid address Uint8Array: "+z(e,"base16"));t.push([o,u]);let f=to(o,u);if(r.push([o,f]),s.path===!0){n=f;break}}return{bytes:Uint8Array.from(e),string:ca(r),tuples:t,stringTuples:r,path:n}}function ca(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}),no(t.join("/"))}function oo(e){return yt(e.map(t=>{let r=ct(t[0]),n=Uint8Array.from(De(r.code));return t.length>1&&t[1]!=null&&(n=yt([n,t[1]])),n}))}function J6(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=ue(t instanceof Uint8Array?t:Uint8Array.from(t));return r+jt(r)}}function no(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function ua(e){return new Error("Error parsing address: "+e)}var j6=Symbol.for("nodejs.util.inspect.custom"),so=Symbol.for("@multiformats/js-multiaddr/multiaddr"),tc=[ct("dns").code,ct("dns4").code,ct("dns6").code,ct("dnsaddr").code],K0=class e{bytes;#t;#e;#r;#n;[so]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=io(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=aa(t)}else if(la(t))r=io(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",a=ct("tcp"),s=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??""}`),tc.includes(d)&&(r=a.name,i=443,n=`${h??""}${o}`,t=d===f.code?6:4),(d===a.code||d===s.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.#e.map(([t])=>Object.assign({},ct(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>ct(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(oo(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===pn.p2p.code&&t.push([n,i]),n===pn["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?z(Kt.decode(`z${n}`),"base58btc"):z(re.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return ht(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 U0(`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)}[j6](){return`Multiaddr(${this.#t})`}};var fa=new Map;function la(e){return!!e?.[so]}function ao(e){return new K0(e)}var co=new Float32Array([-0]),gr=new Uint8Array(co.buffer);function ha(e,t,r){co[0]=e,t[r]=gr[0],t[r+1]=gr[1],t[r+2]=gr[2],t[r+3]=gr[3]}function da(e,t){return gr[0]=e[t],gr[1]=e[t+1],gr[2]=e[t+2],gr[3]=e[t+3],co[0]}var uo=new Float64Array([-0]),te=new Uint8Array(uo.buffer);function pa(e,t,r){uo[0]=e,t[r]=te[0],t[r+1]=te[1],t[r+2]=te[2],t[r+3]=te[3],t[r+4]=te[4],t[r+5]=te[5],t[r+6]=te[6],t[r+7]=te[7]}function ya(e,t){return te[0]=e[t],te[1]=e[t+1],te[2]=e[t+2],te[3]=e[t+3],te[4]=e[t+4],te[5]=e[t+5],te[6]=e[t+6],te[7]=e[t+7],uo[0]}var ec=BigInt(Number.MAX_SAFE_INTEGER),rc=BigInt(Number.MIN_SAFE_INTEGER),ae=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 Or;if(t<ec&&t>rc)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>ga&&(i=0n,++n>ga&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return Or;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):Or}},Or=new ae(0,0);Or.toBigInt=function(){return 0n};Or.zzEncode=Or.zzDecode=function(){return this};Or.length=function(){return 1};var ga=4294967296n;function ma(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 xa(e,t,r){if(r-t<1)return"";let i,o=[],a=0,s;for(;t<r;)s=e[t++],s<128?o[a++]=s:s>191&&s<224?o[a++]=(s&31)<<6|e[t++]&63:s>239&&s<365?(s=((s&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,o[a++]=55296+(s>>10),o[a++]=56320+(s&1023)):o[a++]=(s&15)<<12|(e[t++]&63)<<6|e[t++]&63,a>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,o)),a=0);return i!=null?(a>0&&i.push(String.fromCharCode.apply(String,o.slice(0,a))),i.join("")):String.fromCharCode.apply(String,o.slice(0,a))}function fo(e,t,r){let n=r,i,o;for(let a=0;a<e.length;++a)i=e.charCodeAt(a),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((o=e.charCodeAt(a+1))&64512)===56320?(i=65536+((i&1023)<<10)+(o&1023),++a,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=i&63|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=i&63|128);return r-n}function we(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function M0(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var lo=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,we(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 we(this,4);return M0(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw we(this,4);return M0(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw we(this,4);let t=da(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw we(this,4);let t=ya(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 we(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return xa(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw we(this,t);this.pos+=t}else do if(this.pos>=this.len)throw we(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 ae(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 we(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 we(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 we(this,8);let t=M0(this.buf,this.pos+=4),r=M0(this.buf,this.pos+=4);return new ae(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 ho(e){return new lo(e instanceof Uint8Array?e:e.subarray())}function ke(e,t){let r=ho(e);return t.decode(r)}function po(e){let t=e??8192,r=t>>>1,n,i=t;return function(a){if(a<1||a>r)return zt(a);i+a>t&&(n=zt(t),i=0);let s=n.subarray(i,i+=a);return i&7&&(i=(i|7)+1),s}}var Ur=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function yo(){}var mo=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},nc=po();function ic(e){return globalThis.Buffer!=null?zt(e):nc(e)}var Zn=class{len;head;tail;states;constructor(){this.len=0,this.head=new Ur(yo,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new Ur(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new xo((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,ae.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=ae.fromBigInt(t);return this._push(Yn,r.length(),r)}uint64Number(t){let r=ae.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=ae.fromBigInt(t).zzEncode();return this._push(Yn,r.length(),r)}sint64Number(t){let r=ae.fromNumber(t).zzEncode();return this._push(Yn,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(go,1,t?1:0)}fixed32(t){return this._push(Wn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=ae.fromBigInt(t);return this._push(Wn,4,r.lo)._push(Wn,4,r.hi)}fixed64Number(t){let r=ae.fromNumber(t);return this._push(Wn,4,r.lo)._push(Wn,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(ha,4,t)}double(t){return this._push(pa,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(go,1,0):this.uint32(r)._push(sc,r,t)}string(t){let r=ma(t);return r!==0?this.uint32(r)._push(fo,r,t):this._push(go,1,0)}fork(){return this.states=new mo(this),this.head=this.tail=new Ur(yo,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 Ur(yo,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=ic(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function go(e,t,r){t[r]=e&255}function oc(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var xo=class extends Ur{next;constructor(t,r){super(oc,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 Wn(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 sc(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(Zn.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(ac,t,e),this},Zn.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(cc,t,e),this});function ac(e,t,r){t.set(e,r)}function cc(e,t,r){e.length<40?fo(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(dt(e),r)}function vo(){return new Zn}function Oe(e,t){let r=vo();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var yn;(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"})(yn||(yn={}));function V0(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function gn(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(o,a){let s=t(o);a.int32(s)},n=function(o){let a=o.int32();return t(a)};return V0("enum",yn.VARINT,r,n)}function Ue(e,t){return V0("message",yn.LENGTH_DELIMITED,e,t)}var Xn;(function(e){let t;e.codec=()=>(t==null&&(t=Ue((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&r.key.byteLength>0&&(n.uint32(10),n.bytes(r.key)),r.value!=null&&r.value.byteLength>0&&(n.uint32(18),n.bytes(r.value)),r.timeReceived!=null&&r.timeReceived!==""&&(n.uint32(42),n.string(r.timeReceived)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={key:new Uint8Array(0),value:new Uint8Array(0),timeReceived:""},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.key=r.bytes();break;case 2:i.value=r.bytes();break;case 5:i.timeReceived=r.string();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Oe(r,e.codec()),e.decode=r=>ke(r,e.codec())})(Xn||(Xn={}));function ba(e){let t=e.getUTCFullYear(),r=String(e.getUTCMonth()+1).padStart(2,"0"),n=String(e.getUTCDate()).padStart(2,"0"),i=String(e.getUTCHours()).padStart(2,"0"),o=String(e.getUTCMinutes()).padStart(2,"0"),a=String(e.getUTCSeconds()).padStart(2,"0"),s=e.getUTCMilliseconds(),c=String(s*1e3*1e3).padStart(9,"0");return`${t}-${r}-${n}T${i}:${o}:${a}.${c}Z`}function wa(e){let t=new RegExp("(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})\\.(\\d+)Z"),r=String(e).trim().match(t);if(r==null)throw new Error("Invalid format");let n=parseInt(r[1],10),i=parseInt(r[2],10)-1,o=parseInt(r[3],10),a=parseInt(r[4],10),s=parseInt(r[5],10),c=parseInt(r[6],10),u=parseInt(r[7].slice(0,-6),10);return new Date(Date.UTC(n,i,o,a,s,c,u))}var Mt=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 Xn.encode(this.prepareSerialize())}prepareSerialize(){return{key:this.key,value:this.value,timeReceived:ba(this.timeReceived)}}static deserialize(t){let r=Xn.decode(t);return new e(r.key,r.value,new Date(r.timeReceived))}static fromDeserialized(t){let r=wa(t.timeReceived);if(t.key==null)throw new Error("key missing from deserialized object");if(t.value==null)throw new Error("value missing from deserialized object");return new e(t.key,t.value,r)}};var Ea;(function(e){let t;e.codec=()=>(t==null&&(t=Ue((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.key!=null&&(n.uint32(10),n.bytes(r.key)),r.value!=null&&(n.uint32(18),n.bytes(r.value)),r.author!=null&&(n.uint32(26),n.bytes(r.author)),r.signature!=null&&(n.uint32(34),n.bytes(r.signature)),r.timeReceived!=null&&(n.uint32(42),n.string(r.timeReceived)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.key=r.bytes();break;case 2:i.value=r.bytes();break;case 3:i.author=r.bytes();break;case 4:i.signature=r.bytes();break;case 5:i.timeReceived=r.string();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Oe(r,e.codec()),e.decode=r=>ke(r,e.codec())})(Ea||(Ea={}));var mr;(function(e){let t;(function(s){s.PUT_VALUE="PUT_VALUE",s.GET_VALUE="GET_VALUE",s.ADD_PROVIDER="ADD_PROVIDER",s.GET_PROVIDERS="GET_PROVIDERS",s.FIND_NODE="FIND_NODE",s.PING="PING"})(t=e.MessageType||(e.MessageType={}));let r;(function(s){s[s.PUT_VALUE=0]="PUT_VALUE",s[s.GET_VALUE=1]="GET_VALUE",s[s.ADD_PROVIDER=2]="ADD_PROVIDER",s[s.GET_PROVIDERS=3]="GET_PROVIDERS",s[s.FIND_NODE=4]="FIND_NODE",s[s.PING=5]="PING"})(r||(r={})),function(s){s.codec=()=>gn(r)}(t=e.MessageType||(e.MessageType={}));let n;(function(s){s.NOT_CONNECTED="NOT_CONNECTED",s.CONNECTED="CONNECTED",s.CAN_CONNECT="CAN_CONNECT",s.CANNOT_CONNECT="CANNOT_CONNECT"})(n=e.ConnectionType||(e.ConnectionType={}));let i;(function(s){s[s.NOT_CONNECTED=0]="NOT_CONNECTED",s[s.CONNECTED=1]="CONNECTED",s[s.CAN_CONNECT=2]="CAN_CONNECT",s[s.CANNOT_CONNECT=3]="CANNOT_CONNECT"})(i||(i={})),function(s){s.codec=()=>gn(i)}(n=e.ConnectionType||(e.ConnectionType={}));let o;(function(s){let c;s.codec=()=>(c==null&&(c=Ue((u,f,l={})=>{if(l.lengthDelimited!==!1&&f.fork(),u.id!=null&&(f.uint32(10),f.bytes(u.id)),u.addrs!=null)for(let p of u.addrs)f.uint32(18),f.bytes(p);u.connection!=null&&(f.uint32(24),e.ConnectionType.codec().encode(u.connection,f)),l.lengthDelimited!==!1&&f.ldelim()},(u,f)=>{let l={addrs:[]},p=f==null?u.len:u.pos+f;for(;u.pos<p;){let d=u.uint32();switch(d>>>3){case 1:l.id=u.bytes();break;case 2:l.addrs.push(u.bytes());break;case 3:l.connection=e.ConnectionType.codec().decode(u);break;default:u.skipType(d&7);break}}return l})),c),s.encode=u=>Oe(u,s.codec()),s.decode=u=>ke(u,s.codec())})(o=e.Peer||(e.Peer={}));let a;e.codec=()=>(a==null&&(a=Ue((s,c,u={})=>{if(u.lengthDelimited!==!1&&c.fork(),s.type!=null&&(c.uint32(8),e.MessageType.codec().encode(s.type,c)),s.clusterLevelRaw!=null&&(c.uint32(80),c.int32(s.clusterLevelRaw)),s.key!=null&&(c.uint32(18),c.bytes(s.key)),s.record!=null&&(c.uint32(26),c.bytes(s.record)),s.closerPeers!=null)for(let f of s.closerPeers)c.uint32(66),e.Peer.codec().encode(f,c);if(s.providerPeers!=null)for(let f of s.providerPeers)c.uint32(74),e.Peer.codec().encode(f,c);u.lengthDelimited!==!1&&c.ldelim()},(s,c)=>{let u={closerPeers:[],providerPeers:[]},f=c==null?s.len:s.pos+c;for(;s.pos<f;){let l=s.uint32();switch(l>>>3){case 1:u.type=e.MessageType.codec().decode(s);break;case 10:u.clusterLevelRaw=s.int32();break;case 2:u.key=s.bytes();break;case 3:u.record=s.bytes();break;case 8:u.closerPeers.push(e.Peer.codec().decode(s,s.uint32()));break;case 9:u.providerPeers.push(e.Peer.codec().decode(s,s.uint32()));break;default:s.skipType(l&7);break}}return u})),a),e.encode=s=>Oe(s,e.codec()),e.decode=s=>ke(s,e.codec())})(mr||(mr={}));var Pt=mr.MessageType,fc=mr.ConnectionType,Aa=Object.keys(Pt),vt=class e{type;key;clusterLevelRaw;closerPeers;providerPeers;record;constructor(t,r,n){if(!(r instanceof Uint8Array))throw new Error("Key must be a Uint8Array");this.type=t,this.key=r,this.clusterLevelRaw=n,this.closerPeers=[],this.providerPeers=[],this.record=void 0}get clusterLevel(){let t=this.clusterLevelRaw-1;return t<0?0:t}set clusterLevel(t){this.clusterLevelRaw=t}serialize(){return mr.encode({key:this.key,type:this.type,clusterLevelRaw:this.clusterLevelRaw,closerPeers:this.closerPeers.map(Sa),providerPeers:this.providerPeers.map(Sa),record:this.record==null?void 0:this.record.serialize().subarray()})}static deserialize(t){let r=mr.decode(t),n=new e(r.type??mr.MessageType.PUT_VALUE,r.key??Uint8Array.from([]),r.clusterLevelRaw??0);return n.closerPeers=r.closerPeers.map(Ia),n.providerPeers=r.providerPeers.map(Ia),r.record?.length!=null&&(n.record=Mt.deserialize(r.record)),n}static encode(t){return t.serialize()}static decode(t){return e.deserialize(t)}};function Sa(e){return{id:e.id.toBytes(),addrs:(e.multiaddrs??[]).map(r=>r.bytes),connection:fc.CONNECTED}}function Ia(e){if(e.id==null)throw new Error("Invalid peer in message");return{id:kr(e.id),multiaddrs:(e.addrs??[]).map(t=>ao(t))}}function bo(e,t={}){let r={...e,name:"SEND_QUERY",type:0,messageName:e.type,messageType:Aa.indexOf(e.type.toString())};return t.onProgress?.(new Rt("kad-dht:query:send-query",{detail:r})),r}function Jn(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 Rt("kad-dht:query:peer-response",{detail:r})),r}function q0(e,t={}){let r={...e,name:"FINAL_PEER",type:2};return t.onProgress?.(new Rt("kad-dht:query:final-peer",{detail:r})),r}function ne(e,t={}){let r={...e,name:"QUERY_ERROR",type:3};return t.onProgress?.(new Rt("kad-dht:query:query-error",{detail:r})),r}function wo(e,t={}){let r={...e,name:"PROVIDER",type:4};return t.onProgress?.(new Rt("kad-dht:query:provider",{detail:r})),r}function jn(e,t={}){let r={...e,name:"VALUE",type:5};return t.onProgress?.(new Rt("kad-dht:query:value",{detail:r})),r}function Eo(e,t={}){let r={...e,name:"DIAL_PEER",type:7};return t.onProgress?.(new Rt("kad-dht:query:dial-peer",{detail:r})),r}function Ba(e,t,r){if(r.length===0){let a="No records given";throw new P(a,"ERR_NO_RECORDS_RECEIVED")}let i=z(t).split("/");if(i.length<3){let a="Record key does not have a selector function";throw new P(a,"ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")}let o=e[i[1].toString()];if(o==null){let a=`No selector function configured for key type "${i[1]}"`;throw new P(a,"ERR_UNRECOGNIZED_KEY_PREFIX")}return r.length===1?0:o(t,r)}function lc(e,t){return 0}var Ta={pk:lc};async function mn(e,t){let r=t.key,i=z(r).split("/");if(i.length<3)return;let o=e[i[1].toString()];if(o==null){let a=`No validator available for key type "${i[1]}"`;throw new P(a,"ERR_INVALID_RECORD_KEY_TYPE")}await o(r,t.value)}var hc=async(e,t)=>{if(!(e instanceof Uint8Array))throw new P('"key" must be a Uint8Array',"ERR_INVALID_RECORD_KEY_NOT_BUFFER");if(e.byteLength<5)throw new P("invalid public key record","ERR_INVALID_RECORD_KEY_TOO_SHORT");if(z(e.subarray(0,4))!=="/pk/")throw new P("key was not prefixed with /pk/","ERR_INVALID_RECORD_KEY_BAD_PREFIX");let n=e.slice(4),i=await St.digest(t);if(!ht(n,i.bytes))throw new P("public key does not match passed in key","ERR_INVALID_RECORD_HASH_MISMATCH")},_a={pk:hc};var Ca=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var Ze="/",Ra=new TextEncoder().encode(Ze),z0=Ra[0],xn=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=dt(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 z(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join(Ze))}static random(){return new e(Ca().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new e(t):typeof t.uint8Array=="function"?new e(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Ra),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],a=n[i];if(o<a)return!0;if(o>a)return!1}return r.length<n.length}reverse(){return e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(Ze).slice(1)}type(){return dc(this.baseNamespace())}name(){return pc(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(Ze)||(t+=Ze),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(Ze):new e(t.slice(0,-1).join(Ze))}child(t){return this.toString()===Ze?t:t.toString()===Ze?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(),...yc(t.map(r=>r.namespaces()))])}};function dc(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function pc(e){let t=e.split(":");return t[t.length-1]}function yc(e){return[].concat(...e)}var gc=dt("/pk/");function vn(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=Vn(n);return i==null?!0:!i})}}function bn(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=Vn(n);return i??!1})}}async function xr(e){return(await St.digest(e)).digest}async function Ee(e){return xr(e.toBytes())}function Xe(e){return new xn(`${A2}/${z(e,"base32")}`,!1)}function Pa(e){return yt([gc,e.toBytes()])}function La(e){return z(e.subarray(0,4))==="/pk/"}function Na(e){return kr(e.subarray(4))}function So(e,t){let r=new Date;return new Mt(e,t,r).serialize()}function Da(e,t=100){let r;return()=>{clearTimeout(r),r=setTimeout(()=>{e()},t)}}var H0=class{log;components;validators;selectors;peerRouting;queryManager;network;constructor(t,r){let{validators:n,selectors:i,peerRouting:o,queryManager:a,network:s,lan:c}=r;this.components=t,this.log=t.logger.forComponent(`libp2p:kad-dht:${c?"lan":"wan"}:content-fetching`),this.validators=n,this.selectors=i,this.peerRouting=o,this.queryManager=a,this.network=s}async putLocal(t,r){let n=Xe(t);await this.components.datastore.put(n,r)}async getLocal(t){this.log("getLocal %b",t);let r=Xe(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=Mt.deserialize(n);return await mn(this.validators,i),i}async*sendCorrectionRecord(t,r,n,i={}){this.log("sendCorrection for %b",t);let o=So(t,n);for(let{value:a,from:s}of r){if(ht(a,n)){this.log("record was ok");continue}if(this.components.peerId.equals(s)){try{let f=Xe(t);this.log(`Storing corrected record for key ${f.toString()}`),await this.components.datastore.put(f,o.subarray())}catch(f){this.log.error("Failed error correcting self",f)}continue}let c=!1,u=new vt(Pt.PUT_VALUE,t,0);u.record=Mt.deserialize(o);for await(let f of this.network.sendRequest(s,u,i))f.name==="PEER_RESPONSE"&&f.record!=null&&ht(f.record.value,Mt.deserialize(o).value)&&(c=!0),yield f;c||(yield ne({from:s,error:new P("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=So(t,r),o=Xe(t);this.log(`storing record for key ${o.toString()}`),await this.components.datastore.put(o,i.subarray()),yield*hr(this.peerRouting.getClosestPeers(t,{signal:n.signal}),a=>D0(a,s=>async()=>{if(s.name!=="FINAL_PEER")return[s];let c=[],u=new vt(Pt.PUT_VALUE,t,0);u.record=Mt.deserialize(i),this.log("send put to %p",s.peer.id);for await(let f of this.network.sendRequest(s.peer.id,u,n))c.push(f),f.name==="PEER_RESPONSE"&&(f.record!=null&&ht(f.record.value,Mt.deserialize(i).value)||c.push(ne({from:s.peer.id,error:new P("value not put correctly","ERR_PUT_VALUE_INVALID")},n)));return c}),a=>qn(a,{ordered:!1,concurrency:3}),async function*(a){for await(let s of a)yield*s})}async*get(t,r={}){this.log("get %b",t);let n=[];for await(let s of this.getMany(t,r))s.name==="VALUE"&&n.push(s),yield s;if(n.length===0)return;let i=n.map(s=>s.value),o=0;try{o=Ba(this.selectors,t,i)}catch(s){if(s.code!=="ERR_NO_SELECTOR_FUNCTION_FOR_RECORD_KEY")throw s}let a=i[o];if(this.log("GetValue %b %b",t,a),a==null)throw new P("best value was not found","ERR_NOT_FOUND");yield*this.sendCorrectionRecord(t,n,a,r),yield n[o]}async*getMany(t,r={}){this.log("getMany values for %b",t);try{let o=await this.getLocal(t);yield 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:a}){for await(let s of n.peerRouting.getValueOrPeers(o,t,{signal:a}))yield s,s.name==="PEER_RESPONSE"&&s.record!=null&&(yield jn({from:o,value:s.record.value},r))};yield*this.queryManager.run(t,i,r)}};var $0=class{log;components;network;peerRouting;queryManager;routingTable;providers;constructor(t,r){let{network:n,peerRouting:i,queryManager:o,routingTable:a,providers:s,lan:c}=r;this.components=t,this.log=t.logger.forComponent(`libp2p:kad-dht:${c?"lan":"wan"}:content-routing`),this.network=n,this.peerRouting=i,this.queryManager=o,this.routingTable=a,this.providers=s}async*provide(t,r,n={}){this.log("provide %s",t),await this.providers.addProvider(t,this.components.peerId);let i=new vt(Pt.ADD_PROVIDER,t.multihash.bytes,0);i.providerPeers=[{id:this.components.peerId,multiaddrs:r}];let o=0,a=s=>async()=>{if(s.name!=="FINAL_PEER")return[s];let c=[];this.log("putProvider %s to %p",t,s.peer.id);try{this.log("sending provider record for %s to %p",t,s.peer.id);for await(let u of this.network.sendMessage(s.peer.id,i,n))u.name==="PEER_RESPONSE"&&(this.log("sent provider record for %s to %p",t,s.peer.id),o++),c.push(u)}catch(u){this.log.error("error sending provide record to peer %p",s.peer.id,u),c.push(ne({from:s.peer.id,error:u},n))}return c};yield*hr(this.peerRouting.getClosestPeers(t.multihash.bytes,n),s=>D0(s,c=>a(c)),s=>qn(s,{ordered:!1,concurrency:3}),async function*(s){for await(let c of s)yield*c}),this.log("sent provider records to %d peers",o)}async*findProviders(t,r){let n=this.routingTable.kBucketSize,i=t.multihash.bytes,o=this;this.log("findProviders %c",t);let a=await this.providers.getProviders(t);if(a.length>0){let u=[];for(let f of a.slice(0,n))try{let l=await this.components.peerStore.get(f);u.push({id:f,multiaddrs:l.addresses.map(({multiaddr:p})=>p)})}catch(l){if(l.code!=="ERR_NOT_FOUND")throw l;this.log("no peer store entry for %p",f)}yield Jn({from:this.components.peerId,messageType:Pt.GET_PROVIDERS,providers:u},r),yield wo({from:this.components.peerId,providers:u},r)}if(a.length>=n)return;let s=async function*({peer:u,signal:f}){let l=new vt(Pt.GET_PROVIDERS,i,0);yield*o.network.sendRequest(u,l,{...r,signal:f})},c=new Set(a.map(u=>u.toString()));for await(let u of this.queryManager.run(i,s,r))if(yield u,u.name==="PEER_RESPONSE"){this.log("Found %d provider entries for %c and %d closer peers",u.providers.length,t,u.closer.length);let f=[];for(let l of u.providers)c.has(l.id.toString())||(c.add(l.id.toString()),f.push(l));if(f.length>0&&(yield wo({from:u.from,providers:f},r)),c.size===n)return}}};var Oa=Symbol.for("@achingbrain/uint8arraylist");function ka(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 G0(e){return!!e?.[Oa]}var pe=class e{bufs;length;[Oa]=!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(G0(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(G0(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=ka(this.bufs,t);return r.buf[r.index]}set(t,r){let n=ka(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(G0(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 yt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:yt(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),o=new e;return o.length=i,o.bufs=[...n],o}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===0&&r===this.length)return{bufs:this.bufs,length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let a=this.bufs[o],s=i,c=s+a.byteLength;if(i=c,t>=c)continue;let u=t>=s&&t<c,f=r>s&&r<=c;if(u&&f){if(t===s&&r===c){n.push(a);break}let l=t-s;n.push(a.subarray(l,l+(r-t)));break}if(u){if(t===0){n.push(a);continue}n.push(a.subarray(t-s));continue}if(f){if(r===c){n.push(a);break}n.push(a.subarray(0,r-s));break}n.push(a)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!G0(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,a=new Int32Array(o);for(let l=0;l<o;l++)a[l]=-1;for(let l=0;l<i;l++)a[n[l]]=l;let s=a,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let l=r;l<=c;l+=f){f=0;for(let p=u;p>=0;p--){let d=this.get(l+p);if(n[p]!==d){f=Math.max(1,p-s[d]);break}}if(f===0)return l}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=zt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=We(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=We(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=We(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=zt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=We(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=We(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=We(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=We(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=We(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(!ht(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 Q0=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 Ua(e,t,r){if(t==null)return e;if(t.aborted)return Promise.reject(new Q0(r?.errorMessage,r?.errorCode));let n,i=new Q0(r?.errorMessage,r?.errorCode);try{return await Promise.race([e,new Promise((o,a)=>{n=()=>{a(i)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var Ao=class{needNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.needNext=qt(),this.needNext.resolve(),this.haveNext=qt()}[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=qt(),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=qt(),await Ua(this.needNext.promise,r?.signal,r)}};function Fa(){return new Ao}var Y0=class extends Error{code;constructor(t,r){super(t),this.code=r}},Bo=class extends Y0{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function Ka(e,t){let r=Fa();e.sink(r).catch(async a=>{await r.end(a)}),e.sink=async a=>{for await(let s of a)await r.push(s);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 pe;return{read:async(a,s)=>{s?.signal?.throwIfAborted();let c,u=new Promise((f,l)=>{c=()=>{l(new Bo("Read aborted"))},s?.signal?.addEventListener("abort",c)});try{if(a==null){let{done:l,value:p}=await Promise.race([n.next(),u]);return l===!0?new pe:p}for(;i.byteLength<a;){let{value:l,done:p}=await Promise.race([n.next(),u]);if(p===!0)throw new Y0("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(l)}let f=i.sublist(0,a);return i.consume(a),f}finally{c!=null&&s?.signal?.removeEventListener("abort",c)}},write:async(a,s)=>{s?.signal?.throwIfAborted(),a instanceof Uint8Array?await r.push(a,s):await r.push(a.subarray(),s)},unwrap:()=>{if(i.byteLength>0){let a=e.source;e.source=async function*(){t?.yieldBytes===!1?yield i:yield*i,yield*a}()}return e}}}function W0(e){return e[Symbol.asyncIterator]!=null}var Z0=e=>{let t=jt(e),r=zt(t);return De(e,r),Z0.bytes=t,r};Z0.bytes=0;function Fr(e,t){t=t??{};let r=t.lengthEncoder??Z0;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return W0(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}Fr.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??Z0;return new pe(r(e.byteLength),e)};var En=Bt(qa(),1);var xc=8,vc=1024*1024*4,Kr;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Kr||(Kr={}));var To=e=>{let t=ue(e);return To.bytes=jt(t),t};To.bytes=0;function t0(e,t){let r=new pe,n=Kr.LENGTH,i=-1,o=t?.lengthDecoder??To,a=t?.maxLengthLength??xc,s=t?.maxDataLength??vc;function*c(){for(;r.byteLength>0;){if(n===Kr.LENGTH)try{if(i=o(r),i<0)throw(0,En.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>s)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=Kr.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>a)throw(0,En.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Kr.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Kr.LENGTH}}}return W0(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")}()}t0.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:a}=await e.next(r);if(o===!0)return;a!=null&&(yield a)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return t0(n,{...t??{},onLength:o=>{r=o}})};var X0=class extends Error{code;constructor(t,r){super(t),this.code=r}},Ha=e=>ue(e);Ha.bytes=0;function $a(e,t={}){let r=Ka(e,t);return t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=jt(t.maxDataLength)),{read:async i=>{let o=-1,a=new pe,s=t?.lengthDecoder??Ha;for(;;){a.append(await r.read(1,i));try{o=s(a)}catch(c){if(c instanceof RangeError)continue;throw c}if(t?.maxLengthLength!=null&&a.byteLength>t.maxLengthLength)throw new X0("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(o>-1)break}if(t?.maxDataLength!=null&&o>t.maxDataLength)throw new X0("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(o,i)},write:async(i,o)=>{await r.write(Fr.single(i,t),o)},writeV:async(i,o)=>{let a=new pe(...i.map(s=>Fr.single(s,t)));await r.write(a,o)},unwrap:()=>r.unwrap()}}function _o(e,t){let r=$a(e,t),n={read:async(i,o)=>{let a=await r.read(o);return i.decode(a)},write:async(i,o,a)=>{await r.write(o.encode(i),a)},writeV:async(i,o,a)=>{await r.writeV(i.map(s=>o.encode(s)),a)},pb:i=>({read:async o=>n.read(i,o),write:async(o,a)=>n.write(o,i,a),writeV:async(o,a)=>n.writeV(o,i,a),unwrap:()=>n}),unwrap:()=>r.unwrap()};return n}var J0=class extends Xt{log;protocol;running;components;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=t.logger.forComponent(`libp2p:kad-dht:${i?"lan":"wan"}:network`),this.running=!1,this.protocol=n}async start(){this.running||(this.running=!0)}async stop(){this.running=!1}isStarted(){return this.running}async*sendRequest(t,r,n={}){if(!this.running)return;this.log("sending %s to %p",r.type,t),yield Eo({peer:t},n),yield bo({to:t,type:r.type},n);let i;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n),s=await this._writeReadMessage(a,r,n);yield Jn({from:t,messageType:s.type,closer:s.closerPeers,providers:s.providerPeers,record:s.record},n)}catch(o){yield ne({from:t,error:o},n)}finally{i!=null&&await i.close()}}async*sendMessage(t,r,n={}){if(!this.running)return;this.log("sending %s to %p",r.type,t),yield Eo({peer:t},n),yield bo({to:t,type:r.type},n);let i;try{let a=await(await this.components.connectionManager.openConnection(t,n)).newStream(this.protocol,n);await this._writeMessage(a,r,n),yield Jn({from:t,messageType:r.type},n)}catch(o){yield ne({from:t,error:o},n)}finally{i!=null&&await i.close()}}async _writeMessage(t,r,n){let i=_o(t);await i.write(r,vt,n),await i.unwrap().close(n)}async _writeReadMessage(t,r,n){let i=_o(t);await i.write(r,vt,n);let o=await i.read(vt,n);return await i.unwrap().close(n),o.closerPeers.forEach(a=>{this.dispatchEvent(new Rt("peer",{detail:a}))}),o.providerPeers.forEach(a=>{this.dispatchEvent(new Rt("peer",{detail:a}))}),o}};var Em=Bt(n1(),1),Tc=Bt(ut(),1);var Nt={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 s3={SHA1:20,SHA256:32,SHA512:64};var Rc={SHA1:"SHA-1",SHA256:"SHA-256",SHA512:"SHA-512"},Pc=async(e,t)=>{let r=await Nt.get().subtle.sign({name:"HMAC"},e,t);return new Uint8Array(r,0,r.byteLength)};async function a3(e,t){let r=Rc[e],n=await Nt.get().subtle.importKey("raw",t,{name:"HMAC",hash:{name:r}},!1,["sign"]);return{async digest(i){return Pc(n,i)},length:s3[e]}}var U1={};Ot(U1,{generateEphemeralKeyPair:()=>K4,generateKeyPair:()=>Ll,generateKeyPairFromSeed:()=>Nl,importKey:()=>Ul,keyStretcher:()=>q4,keysPBM:()=>Dn,marshalPrivateKey:()=>Ol,marshalPublicKey:()=>kl,supportedKeys:()=>$e,unmarshalPrivateKey:()=>m5,unmarshalPublicKey:()=>Dl});var Eb=Bt(i0(),1),Sb=Bt(u4(),1);var O1=Bt(ut(),1);var gs={};Ot(gs,{Ed25519PrivateKey:()=>Yr,Ed25519PublicKey:()=>f0,generateKeyPair:()=>rl,generateKeyPairFromSeed:()=>ys,unmarshalEd25519PrivateKey:()=>tl,unmarshalEd25519PublicKey:()=>el});var Jm=Bt(Lt(),1),jm=Bt(p1(),1),f4=Bt(ut(),1);function Ae(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=yt([new Uint8Array(t-r.length),r])}return z(r,"base64url")}function fe(e){let t=x1(e);return new f4.default.jsbn.BigInteger(z(t,"base16"),16)}function x1(e,t){let r=dt(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=yt([new Uint8Array(t-r.length),r])}return r}function me(e){return e==null?!1:typeof e.then=="function"&&typeof e.catch=="function"&&typeof e.finally=="function"}function l4(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Xo(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function h4(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");l4(e.outputLen),l4(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 d4(e,t){Xo(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var v1=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var p4=e=>e instanceof Uint8Array;var b1=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Be=(e,t)=>e<<32-t|e>>>t,Zf=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Zf)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 a0(e){if(typeof e=="string"&&(e=Jo(e)),!p4(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function w1(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!p4(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var _n=class{clone(){return this._cloneInto()}},ax={}.toString;function E1(e){let t=n=>e().update(a0(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Cn(e=32){if(v1&&typeof v1.getRandomValues=="function")return v1.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function Xf(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),a=Number(r>>i&o),s=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,a,n),e.setUint32(t+u,s,n)}var Rn=class extends _n{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=a0(t);let o=t.length;for(let a=0;a<o;){let s=Math.min(i-this.pos,o-a);if(s===i){let c=b1(t);for(;i<=o-a;a+=i)this.process(c,a);continue}n.set(t.subarray(a,a+s),this.pos),this.pos+=s,a+=s,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Tn(this),d4(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:a}=this;r[a++]=128,this.buffer.subarray(a).fill(0),this.padOffset>i-a&&(this.process(n,0),a=0);for(let l=a;l<i;l++)r[l]=0;Xf(n,i-8,BigInt(this.length*8),o),this.process(n,0);let s=b1(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)s.setUint32(4*l,f[l],o)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:o,destroyed:a,pos:s}=this;return t.length=i,t.pos=s,t.finished=o,t.destroyed=a,i%r&&t.buffer.set(n),t}};var S1=BigInt(4294967295),jo=BigInt(32);function y4(e,t=!1){return t?{h:Number(e&S1),l:Number(e>>jo&S1)}:{h:Number(e>>jo&S1)|0,l:Number(e&S1)|0}}function Jf(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:o,l:a}=y4(e[i],t);[r[i],n[i]]=[o,a]}return[r,n]}var jf=(e,t)=>BigInt(e>>>0)<<jo|BigInt(t>>>0),t7=(e,t,r)=>e>>>r,e7=(e,t,r)=>e<<32-r|t>>>r,r7=(e,t,r)=>e>>>r|t<<32-r,n7=(e,t,r)=>e<<32-r|t>>>r,i7=(e,t,r)=>e<<64-r|t>>>r-32,o7=(e,t,r)=>e>>>r-32|t<<64-r,s7=(e,t)=>t,a7=(e,t)=>e,c7=(e,t,r)=>e<<r|t>>>32-r,u7=(e,t,r)=>t<<r|e>>>32-r,f7=(e,t,r)=>t<<r-32|e>>>64-r,l7=(e,t,r)=>e<<r-32|t>>>64-r;function h7(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var d7=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),p7=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,y7=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),g7=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,m7=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),x7=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0;var v7={fromBig:y4,split:Jf,toBig:jf,shrSH:t7,shrSL:e7,rotrSH:r7,rotrSL:n7,rotrBH:i7,rotrBL:o7,rotr32H:s7,rotr32L:a7,rotlSH:c7,rotlSL:u7,rotlBH:f7,rotlBL:l7,add:h7,add3L:d7,add3H:p7,add4L:y7,add4H:g7,add5H:x7,add5L:m7},W=v7;var[b7,w7]=W.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),Sr=new Uint32Array(80),Ir=new Uint32Array(80),ts=class extends Rn{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:r,Bh:n,Bl:i,Ch:o,Cl:a,Dh:s,Dl:c,Eh:u,El:f,Fh:l,Fl:p,Gh:d,Gl:h,Hh:y,Hl:g}=this;return[t,r,n,i,o,a,s,c,u,f,l,p,d,h,y,g]}set(t,r,n,i,o,a,s,c,u,f,l,p,d,h,y,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=o|0,this.Cl=a|0,this.Dh=s|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=p|0,this.Gh=d|0,this.Gl=h|0,this.Hh=y|0,this.Hl=g|0}process(t,r){for(let v=0;v<16;v++,r+=4)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=W.rotrSH(T,E,1)^W.rotrSH(T,E,8)^W.shrSH(T,E,7),L=W.rotrSL(T,E,1)^W.rotrSL(T,E,8)^W.shrSL(T,E,7),N=Sr[v-2]|0,G=Ir[v-2]|0,$=W.rotrSH(N,G,19)^W.rotrBH(N,G,61)^W.shrSH(N,G,6),q=W.rotrSL(N,G,19)^W.rotrBL(N,G,61)^W.shrSL(N,G,6),J=W.add4L(L,q,Ir[v-7],Ir[v-16]),ft=W.add4H(J,S,$,Sr[v-7],Sr[v-16]);Sr[v]=ft|0,Ir[v]=J|0}let{Ah:n,Al:i,Bh:o,Bl:a,Ch:s,Cl:c,Dh:u,Dl:f,Eh:l,El:p,Fh:d,Fl:h,Gh:y,Gl:g,Hh:m,Hl:x}=this;for(let v=0;v<80;v++){let T=W.rotrSH(l,p,14)^W.rotrSH(l,p,18)^W.rotrBH(l,p,41),E=W.rotrSL(l,p,14)^W.rotrSL(l,p,18)^W.rotrBL(l,p,41),S=l&d^~l&y,L=p&h^~p&g,N=W.add5L(x,E,L,w7[v],Ir[v]),G=W.add5H(N,m,T,S,b7[v],Sr[v]),$=N|0,q=W.rotrSH(n,i,28)^W.rotrBH(n,i,34)^W.rotrBH(n,i,39),J=W.rotrSL(n,i,28)^W.rotrBL(n,i,34)^W.rotrBL(n,i,39),ft=n&o^n&s^o&s,Qt=i&a^i&c^a&c;m=y|0,x=g|0,y=d|0,g=h|0,d=l|0,h=p|0,{h:l,l:p}=W.add(u|0,f|0,G|0,$|0),u=s|0,f=c|0,s=o|0,c=a|0,o=n|0,a=i|0;let _=W.add3L($,J,Qt);n=W.add3H(_,G,q,ft),i=_|0}({h:n,l:i}=W.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:a}=W.add(this.Bh|0,this.Bl|0,o|0,a|0),{h:s,l:c}=W.add(this.Ch|0,this.Cl|0,s|0,c|0),{h:u,l:f}=W.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:p}=W.add(this.Eh|0,this.El|0,l|0,p|0),{h:d,l:h}=W.add(this.Fh|0,this.Fl|0,d|0,h|0),{h:y,l:g}=W.add(this.Gh|0,this.Gl|0,y|0,g|0),{h:m,l:x}=W.add(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,i,o,a,s,c,u,f,l,p,d,h,y,g,m,x)}roundClean(){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 es=E1(()=>new ts);var B1={};Ot(B1,{bitGet:()=>_7,bitLen:()=>T7,bitMask:()=>c0,bitSet:()=>C7,bytesToHex:()=>er,bytesToNumberBE:()=>rr,bytesToNumberLE:()=>Ar,concatBytes:()=>nr,createHmacDrbg:()=>is,ensureBytes:()=>Ct,equalBytes:()=>A7,hexToBytes:()=>$r,hexToNumber:()=>ns,numberToBytesBE:()=>Br,numberToBytesLE:()=>Gr,numberToHexUnpadded:()=>x4,numberToVarBytesBE:()=>I7,utf8ToBytes:()=>B7,validateObject:()=>He});var m4=BigInt(0),I1=BigInt(1),E7=BigInt(2),A1=e=>e instanceof Uint8Array,S7=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function er(e){if(!A1(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=S7[e[r]];return t}function x4(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function ns(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function $r(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,o=e.slice(i,i+2),a=Number.parseInt(o,16);if(Number.isNaN(a)||a<0)throw new Error("Invalid byte sequence");r[n]=a}return r}function rr(e){return ns(er(e))}function Ar(e){if(!A1(e))throw new Error("Uint8Array expected");return ns(er(Uint8Array.from(e).reverse()))}function Br(e,t){return $r(e.toString(16).padStart(t*2,"0"))}function Gr(e,t){return Br(e,t).reverse()}function I7(e){return $r(x4(e))}function Ct(e,t,r){let n;if(typeof t=="string")try{n=$r(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(A1(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=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!A1(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function A7(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function B7(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function T7(e){let t;for(t=0;e>m4;e>>=I1,t+=1);return t}function _7(e,t){return e>>BigInt(t)&I1}var C7=(e,t,r)=>e|(r?I1:m4)<<BigInt(t),c0=e=>(E7<<BigInt(e-1))-I1,rs=e=>new Uint8Array(e),g4=e=>Uint8Array.from(e);function is(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=rs(e),i=rs(e),o=0,a=()=>{n.fill(1),i.fill(0),o=0},s=(...l)=>r(i,n,...l),c=(l=rs())=>{i=s(g4([0]),l),n=s(),l.length!==0&&(i=s(g4([1]),l),n=s())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,p=[];for(;l<t;){n=s();let d=n.slice();p.push(d),l+=n.length}return nr(...p)};return(l,p)=>{a(),c(l);let d;for(;!(d=p(u()));)c();return a(),d}}var R7={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function He(e,t,r={}){let n=(i,o,a)=>{let s=R7[o];if(typeof s!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=e[i];if(!(a&&c===void 0)&&!s(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${o}`)};for(let[i,o]of Object.entries(t))n(i,o,!1);for(let[i,o]of Object.entries(r))n(i,o,!0);return e}var Vt=BigInt(0),wt=BigInt(1),Qr=BigInt(2),P7=BigInt(3),os=BigInt(4),v4=BigInt(5),b4=BigInt(8),L7=BigInt(9),N7=BigInt(16);function lt(e,t){let r=e%t;return r>=Vt?r:t+r}function D7(e,t,r){if(r<=Vt||t<Vt)throw new Error("Expected power/modulo > 0");if(r===wt)return Vt;let n=wt;for(;t>Vt;)t&wt&&(n=n*e%r),e=e*e%r,t>>=wt;return n}function Et(e,t,r){let n=e;for(;t-- >Vt;)n*=n,n%=r;return n}function T1(e,t){if(e===Vt||t<=Vt)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=lt(e,t),n=t,i=Vt,o=wt,a=wt,s=Vt;for(;r!==Vt;){let u=n/r,f=n%r,l=i-a*u,p=o-s*u;n=r,r=f,i=a,o=s,a=l,s=p}if(n!==wt)throw new Error("invert: does not exist");return lt(i,t)}function k7(e){let t=(e-wt)/Qr,r,n,i;for(r=e-wt,n=0;r%Qr===Vt;r/=Qr,n++);for(i=Qr;i<e&&D7(i,t,e)!==e-wt;i++);if(n===1){let a=(e+wt)/os;return function(c,u){let f=c.pow(u,a);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let o=(r+wt)/Qr;return function(s,c){if(s.pow(c,t)===s.neg(s.ONE))throw new Error("Cannot find square root");let u=n,f=s.pow(s.mul(s.ONE,i),r),l=s.pow(c,o),p=s.pow(c,r);for(;!s.eql(p,s.ONE);){if(s.eql(p,s.ZERO))return s.ZERO;let d=1;for(let y=s.sqr(p);d<u&&!s.eql(y,s.ONE);d++)y=s.sqr(y);let h=s.pow(f,wt<<BigInt(u-d-1));f=s.sqr(h),l=s.mul(l,h),p=s.mul(p,f),u=d}return l}}function O7(e){if(e%os===P7){let t=(e+wt)/os;return function(n,i){let o=n.pow(i,t);if(!n.eql(n.sqr(o),i))throw new Error("Cannot find square root");return o}}if(e%b4===v4){let t=(e-v4)/b4;return function(n,i){let o=n.mul(i,Qr),a=n.pow(o,t),s=n.mul(i,a),c=n.mul(n.mul(s,Qr),a),u=n.mul(s,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return e%N7,k7(e)}var w4=(e,t)=>(lt(e,t)&wt)===wt,U7=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ss(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=U7.reduce((n,i)=>(n[i]="function",n),t);return He(e,r)}function F7(e,t,r){if(r<Vt)throw new Error("Expected power > 0");if(r===Vt)return e.ONE;if(r===wt)return t;let n=e.ONE,i=t;for(;r>Vt;)r&wt&&(n=e.mul(n,i)),i=e.sqr(i),r>>=wt;return n}function K7(e,t){let r=new Array(t.length),n=t.reduce((o,a,s)=>e.is0(a)?o:(r[s]=o,e.mul(o,a)),e.ONE),i=e.inv(n);return t.reduceRight((o,a,s)=>e.is0(a)?o:(r[s]=e.mul(o,r[s]),e.mul(o,a)),i),r}function as(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function _1(e,t,r=!1,n={}){if(e<=Vt)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=as(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let a=O7(e),s=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:c0(i),ZERO:Vt,ONE:wt,create:c=>lt(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Vt<=c&&c<e},is0:c=>c===Vt,isOdd:c=>(c&wt)===wt,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)=>F7(s,c,u),div:(c,u)=>lt(c*T1(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>T1(c,e),sqrt:n.sqrt||(c=>a(s,c)),invertBatch:c=>K7(s,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?Gr(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):rr(c)}});return Object.freeze(s)}function E4(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 S4(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 cs(e){let t=S4(e);return t+Math.ceil(t/2)}function I4(e,t,r=!1){let n=e.length,i=S4(t),o=cs(t);if(n<16||n<o||n>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let a=r?rr(e):Ar(e),s=lt(a,t-wt)+wt;return r?Gr(s,i):Br(s,i)}var V7=BigInt(0),us=BigInt(1);function C1(e,t){let r=(i,o)=>{let a=o.negate();return i?a:o},n=i=>{let o=Math.ceil(t/i)+1,a=2**(i-1);return{windows:o,windowSize:a}};return{constTimeNegate:r,unsafeLadder(i,o){let a=e.ZERO,s=i;for(;o>V7;)o&us&&(a=a.add(s)),s=s.double(),o>>=us;return a},precomputeWindow(i,o){let{windows:a,windowSize:s}=n(o),c=[],u=i,f=u;for(let l=0;l<a;l++){f=u,c.push(f);for(let p=1;p<s;p++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(i,o,a){let{windows:s,windowSize:c}=n(i),u=e.ZERO,f=e.BASE,l=BigInt(2**i-1),p=2**i,d=BigInt(i);for(let h=0;h<s;h++){let y=h*c,g=Number(a&l);a>>=d,g>c&&(g-=p,a+=us);let m=y,x=y+Math.abs(g)-1,v=h%2!==0,T=g<0;g===0?f=f.add(r(v,o[m])):u=u.add(r(T,o[x]))}return{p:u,f}},wNAFCached(i,o,a,s){let c=i._WINDOW_SIZE||1,u=o.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&o.set(i,s(u))),this.wNAF(c,u,a)}}}function u0(e){return ss(e.Fp),He(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...as(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Te=BigInt(0),le=BigInt(1),R1=BigInt(2),q7=BigInt(8),z7={zip215:!0};function H7(e){let t=u0(e);return He(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function P1(e){let t=H7(e),{Fp:r,n,prehash:i,hash:o,randomBytes:a,nByteLength:s,h:c}=t,u=R1<<BigInt(s*8)-le,f=r.create,l=t.uvRatio||((D,A)=>{try{return{isValid:!0,value:r.sqrt(D*r.inv(A))}}catch{return{isValid:!1,value:Te}}}),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"&&Te<D,y=(D,A)=>h(D)&&h(A)&&D<A,g=D=>D===Te||y(D,u);function m(D,A){if(y(D,A))return D;throw new Error(`Expected valid scalar < ${A}, got ${typeof D} ${D}`)}function x(D){return D===Te?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,H){if(this.ex=A,this.ey=F,this.ez=M,this.et=H,!g(A))throw new Error("x required");if(!g(F))throw new Error("y required");if(!g(M))throw new Error("z required");if(!g(H))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(A){if(A instanceof E)throw new Error("extended point not allowed");let{x:F,y:M}=A||{};if(!g(F)||!g(M))throw new Error("invalid affine point");return new E(F,M,le,f(F*M))}static normalizeZ(A){let F=r.invertBatch(A.map(M=>M.ez));return A.map((M,H)=>M.toAffine(F[H])).map(E.fromAffine)}_setWindowSize(A){this._WINDOW_SIZE=A,v.delete(this)}assertValidity(){let{a:A,d:F}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:M,ey:H,ez:Z,et:j}=this,at=f(M*M),tt=f(H*H),nt=f(Z*Z),kt=f(nt*nt),At=f(at*A),Yt=f(nt*f(At+tt)),Wt=f(kt+f(F*f(at*tt)));if(Yt!==Wt)throw new Error("bad point: equation left != right (1)");let Ft=f(M*H),Zt=f(Z*j);if(Ft!==Zt)throw new Error("bad point: equation left != right (2)")}equals(A){T(A);let{ex:F,ey:M,ez:H}=this,{ex:Z,ey:j,ez:at}=A,tt=f(F*at),nt=f(Z*H),kt=f(M*at),At=f(j*H);return tt===nt&&kt===At}is0(){return this.equals(E.ZERO)}negate(){return new E(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:A}=t,{ex:F,ey:M,ez:H}=this,Z=f(F*F),j=f(M*M),at=f(R1*f(H*H)),tt=f(A*Z),nt=F+M,kt=f(f(nt*nt)-Z-j),At=tt+j,Yt=At-at,Wt=tt-j,Ft=f(kt*Yt),Zt=f(At*Wt),Ge=f(kt*Wt),Lr=f(Yt*At);return new E(Ft,Zt,Lr,Ge)}add(A){T(A);let{a:F,d:M}=t,{ex:H,ey:Z,ez:j,et:at}=this,{ex:tt,ey:nt,ez:kt,et:At}=A;if(F===BigInt(-1)){let Zs=f((Z-H)*(nt+tt)),Xs=f((Z+H)*(nt-tt)),yi=f(Xs-Zs);if(yi===Te)return this.double();let Js=f(j*R1*At),js=f(at*R1*kt),t2=js+Js,e2=Xs+Zs,r2=js-Js,Q5=f(t2*yi),Y5=f(e2*r2),W5=f(t2*r2),Z5=f(yi*e2);return new E(Q5,Y5,Z5,W5)}let Yt=f(H*tt),Wt=f(Z*nt),Ft=f(at*M*At),Zt=f(j*kt),Ge=f((H+Z)*(tt+nt)-Yt-Wt),Lr=Zt-Ft,Kn=Zt+Ft,Ws=f(Wt-F*Yt),z5=f(Ge*Lr),H5=f(Kn*Ws),$5=f(Ge*Ws),G5=f(Lr*Kn);return new E(z5,H5,G5,$5)}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===Te?L:this.equals(L)||F===le?this:this.equals(S)?this.wNAF(F).p:N.unsafeLadder(this,F)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return N.unsafeLadder(this,n).is0()}toAffine(A){let{ex:F,ey:M,ez:H}=this,Z=this.is0();A==null&&(A=Z?q7:r.inv(H));let j=f(F*A),at=f(M*A),tt=f(H*A);if(Z)return{x:Te,y:le};if(tt!==le)throw new Error("invZ was invalid");return{x:j,y:at}}clearCofactor(){let{h:A}=t;return A===le?this:this.multiplyUnsafe(A)}static fromHex(A,F=!1){let{d:M,a:H}=t,Z=r.BYTES;A=Ct("pointHex",A,Z);let j=A.slice(),at=A[Z-1];j[Z-1]=at&-129;let tt=Ar(j);tt===Te||(F?m(tt,u):m(tt,r.ORDER));let nt=f(tt*tt),kt=f(nt-le),At=f(M*nt-H),{isValid:Yt,value:Wt}=l(kt,At);if(!Yt)throw new Error("Point.fromHex: invalid y coordinate");let Ft=(Wt&le)===le,Zt=(at&128)!==0;if(!F&&Wt===Te&&Zt)throw new Error("Point.fromHex: x=0 and x_0=1");return Zt!==Ft&&(Wt=f(-Wt)),E.fromAffine({x:Wt,y:tt})}static fromPrivateKey(A){return q(A).point}toRawBytes(){let{x:A,y:F}=this.toAffine(),M=Gr(F,r.BYTES);return M[M.length-1]|=A&le?128:0,M}toHex(){return er(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,le,f(t.Gx*t.Gy)),E.ZERO=new E(Te,le,le,Te);let{BASE:S,ZERO:L}=E,N=C1(E,s*8);function G(D){return lt(D,n)}function $(D){return G(Ar(D))}function q(D){let A=s;D=Ct("private key",D,A);let F=Ct("hashed private key",o(D),2*A),M=p(F.slice(0,A)),H=F.slice(A,2*A),Z=$(M),j=S.multiply(Z),at=j.toRawBytes();return{head:M,prefix:H,scalar:Z,point:j,pointBytes:at}}function J(D){return q(D).pointBytes}function ft(D=new Uint8Array,...A){let F=nr(...A);return $(o(d(F,Ct("context",D),!!i)))}function Qt(D,A,F={}){D=Ct("message",D),i&&(D=i(D));let{prefix:M,scalar:H,pointBytes:Z}=q(A),j=ft(F.context,M,D),at=S.multiply(j).toRawBytes(),tt=ft(F.context,at,Z,D),nt=G(j+tt*H);x(nt);let kt=nr(at,Gr(nt,r.BYTES));return Ct("result",kt,s*2)}let _=z7;function k(D,A,F,M=_){let{context:H,zip215:Z}=M,j=r.BYTES;D=Ct("signature",D,2*j),A=Ct("message",A),i&&(A=i(A));let at=Ar(D.slice(j,2*j)),tt,nt,kt;try{tt=E.fromHex(F,Z),nt=E.fromHex(D.slice(0,j),Z),kt=S.multiplyUnsafe(at)}catch{return!1}if(!Z&&tt.isSmallOrder())return!1;let At=ft(H,nt.toRawBytes(),tt.toRawBytes(),A);return nt.add(tt.multiplyUnsafe(At)).subtract(kt).clearCofactor().equals(E.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:J,sign:Qt,verify:k,ExtendedPoint:E,utils:{getExtendedPublicKey:q,randomPrivateKey:()=>a(r.BYTES),precompute(D=8,A=E.BASE){return A._setWindowSize(D),A.multiply(BigInt(3)),A}}}}var ls=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),A4=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Cx=BigInt(0),$7=BigInt(1),fs=BigInt(2),G7=BigInt(5),B4=BigInt(10),Q7=BigInt(20),Y7=BigInt(40),T4=BigInt(80);function W7(e){let t=ls,n=e*e%t*e%t,i=Et(n,fs,t)*n%t,o=Et(i,$7,t)*e%t,a=Et(o,G7,t)*o%t,s=Et(a,B4,t)*a%t,c=Et(s,Q7,t)*s%t,u=Et(c,Y7,t)*c%t,f=Et(u,T4,t)*u%t,l=Et(f,T4,t)*u%t,p=Et(l,B4,t)*a%t;return{pow_p_5_8:Et(p,fs,t)*e%t,b2:n}}function Z7(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function X7(e,t){let r=ls,n=lt(t*t*t,r),i=lt(n*n*t,r),o=W7(e*i).pow_p_5_8,a=lt(e*n*o,r),s=lt(t*a*a,r),c=a,u=lt(a*A4,r),f=s===e,l=s===lt(-e,r),p=s===lt(-e*A4,r);return f&&(a=c),(l||p)&&(a=u),w4(a,r)&&(a=lt(-a,r)),{isValid:f||l,value:a}}var ir=_1(ls,void 0,!0),hs={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:ir,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:es,randomBytes:Cn,adjustScalarBytes:Z7,uvRatio:X7},Pn=P1(hs);function _4(e,t,r){if(t.length>255)throw new Error("Context is too big");return w1(Jo("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var Rx=P1({...hs,domain:_4}),Px=P1({...hs,domain:_4,prehash:es});var J7=(ir.ORDER+BigInt(3))/BigInt(8),Lx=ir.pow(fs,J7),Nx=ir.sqrt(ir.neg(ir.ONE)),Dx=(ir.ORDER-BigInt(5))/BigInt(8),kx=BigInt(486662);var Ox=E4(ir,ir.neg(BigInt(486664)));var Ux=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Fx=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),Kx=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Mx=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var Vx=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Ln=32,or=64,L1=32;function C4(){let e=Pn.utils.randomPrivateKey(),t=Pn.getPublicKey(e);return{privateKey:N4(e,t),publicKey:t}}function R4(e){if(e.length!==L1)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:N4(t,r),publicKey:r}}function P4(e,t){let r=e.subarray(0,L1);return Pn.sign(t instanceof Uint8Array?t:t.subarray(),r)}function L4(e,t,r){return Pn.verify(t,r instanceof Uint8Array?r:r.subarray(),e)}function N4(e,t){let r=new Uint8Array(or);for(let n=0;n<L1;n++)r[n]=e[n],r[L1+n]=t[n];return r}var ds={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function N1(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",o=e?.saltLength??16,a=e?.iterations??32767,s=Nt.get();r*=8;async function c(l,p){let d=s.getRandomValues(new Uint8Array(o)),h=s.getRandomValues(new Uint8Array(n)),y={name:t,iv:h};typeof p=="string"&&(p=dt(p));let g;if(p.length===0){g=await s.subtle.importKey("jwk",ds,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},v=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);g=await s.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}catch{g=await s.subtle.importKey("jwk",ds,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},v=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);g=await s.subtle.deriveKey(x,v,{name:t,length:r},!0,["encrypt"])}let m=await s.subtle.encrypt(y,g,l);return yt([d,y.iv,new Uint8Array(m)])}async function u(l,p){let d=l.subarray(0,o),h=l.subarray(o,o+n),y=l.subarray(o+n),g={name:t,iv:h};typeof p=="string"&&(p=dt(p));let m;if(p.length===0)try{let v={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},T=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await s.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}catch{m=await s.subtle.importKey("jwk",ds,{name:"AES-GCM"},!0,["decrypt"])}else{let v={name:"PBKDF2",salt:d,iterations:a,hash:{name:i}},T=await s.subtle.importKey("raw",p,{name:"PBKDF2"},!1,["deriveKey"]);m=await s.subtle.deriveKey(v,T,{name:t,length:r},!0,["decrypt"])}let x=await s.subtle.decrypt(g,m,y);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Nn(e,t){let n=await N1().encrypt(e,t);return zn.encode(n)}var Dn={};Ot(Dn,{KeyType:()=>mt,PrivateKey:()=>Ce,PublicKey:()=>_e});var mt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(mt||(mt={}));var ps;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(ps||(ps={}));(function(e){e.codec=()=>gn(ps)})(mt||(mt={}));var _e;(function(e){let t;e.codec=()=>(t==null&&(t=Ue((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),mt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.Type=mt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Oe(r,e.codec()),e.decode=r=>ke(r,e.codec())})(_e||(_e={}));var Ce;(function(e){let t;e.codec=()=>(t==null&&(t=Ue((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),mt.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let a=r.uint32();switch(a>>>3){case 1:i.Type=mt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(a&7);break}}return i})),t),e.encode=r=>Oe(r,e.codec()),e.decode=r=>ke(r,e.codec())})(Ce||(Ce={}));var f0=class{_key;constructor(t){this._key=kn(t,Ln)}verify(t,r){return L4(this._key,r,t)}marshal(){return this._key}get bytes(){return _e.encode({Type:mt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return ht(this.bytes,t.bytes)}hash(){let t=St.digest(this.bytes);return me(t)?t.then(({bytes:r})=>r):t.bytes}},Yr=class{_key;_publicKey;constructor(t,r){this._key=kn(t,or),this._publicKey=kn(r,Ln)}sign(t){return P4(this._key,t)}get public(){return new f0(this._publicKey)}marshal(){return this._key}get bytes(){return Ce.encode({Type:mt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return ht(this.bytes,t.bytes)}async hash(){let t=St.digest(this.bytes),r;return me(t)?{bytes:r}=await t:r=t.bytes,r}async id(){let t=pr.digest(this.public.bytes);return Kt.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Nn(this.bytes,t);throw new P(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function tl(e){if(e.length>or){e=kn(e,or+Ln);let n=e.subarray(0,or),i=e.subarray(or,e.length);return new Yr(n,i)}e=kn(e,or);let t=e.subarray(0,or),r=e.subarray(Ln);return new Yr(t,r)}function el(e){return e=kn(e,Ln),new f0(e)}async function rl(){let{privateKey:e,publicKey:t}=C4();return new Yr(e,t)}async function ys(e){let{privateKey:t,publicKey:r}=R4(e);return new Yr(t,r)}function kn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new P(`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},nl=Object.keys(k4),ms=nl.join(" / ");async function O4(e){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new P(`Unknown curve: ${e}. Must be ${ms}`,"ERR_INVALID_CURVE");let t=await Nt.get().subtle.generateKey({name:"ECDH",namedCurve:e},!0,["deriveBits"]),r=async(o,a)=>{let s;a!=null?s=await Nt.get().subtle.importKey("jwk",ol(e,a),{name:"ECDH",namedCurve:e},!1,["deriveBits"]):s=t.privateKey;let c=await Nt.get().subtle.importKey("jwk",F4(e,o),{name:"ECDH",namedCurve:e},!1,[]),u=await Nt.get().subtle.deriveBits({name:"ECDH",namedCurve:e,public:c},s,k4[e]);return new Uint8Array(u,0,u.byteLength)},n=await Nt.get().subtle.exportKey("jwk",t.publicKey);return{key:il(n),genSharedKey:r}}var U4={"P-256":32,"P-384":48,"P-521":66};function il(e){if(e.crv==null||e.x==null||e.y==null)throw new P("JWK was missing components","ERR_INVALID_PARAMETERS");if(e.crv!=="P-256"&&e.crv!=="P-384"&&e.crv!=="P-521")throw new P(`Unknown curve: ${e.crv}. Must be ${ms}`,"ERR_INVALID_CURVE");let t=U4[e.crv];return yt([Uint8Array.from([4]),x1(e.x,t),x1(e.y,t)],1+t*2)}function F4(e,t){if(e!=="P-256"&&e!=="P-384"&&e!=="P-521")throw new P(`Unknown curve: ${e}. Must be ${ms}`,"ERR_INVALID_CURVE");let r=U4[e];if(!ht(t.subarray(0,1),Uint8Array.from([4])))throw new P("Cannot unmarshal public key - invalid key format","ERR_INVALID_KEY_FORMAT");return{kty:"EC",crv:e,x:z(t.subarray(1,r+1),"base64url"),y:z(t.subarray(1+r),"base64url"),ext:!0}}var ol=(e,t)=>({...F4(e,t.public),d:z(t.private,"base64url")});var K4=O4;async function M4(e,t){let r=zn.decode(e);return N1().decrypt(r,t)}var V4={"AES-128":{ivSize:16,keySize:16},"AES-256":{ivSize:16,keySize:32},Blowfish:{ivSize:8,keySize:32}};async function q4(e,t,r){let n=V4[e];if(n==null){let x=Object.keys(V4).join(" / ");throw new P(`unknown cipher type '${e}'. Must be ${x}`,"ERR_INVALID_CIPHER_TYPE")}if(t==null)throw new P("missing hash type","ERR_MISSING_HASH_TYPE");let i=n.keySize,o=n.ivSize,a=20,s=dt("key expansion"),c=2*(o+i+a),u=await a3(t,r),f=await u.digest(s),l=[],p=0;for(;p<c;){let x=await u.digest(yt([f,s])),v=x.length;p+v>c&&(v=c-p),l.push(x),p+=v,f=await u.digest(f)}let d=c/2,h=yt(l),y=h.subarray(0,d),g=h.subarray(d,c),m=x=>({iv:x.subarray(0,o),cipherKey:x.subarray(o,o+i),macKey:x.subarray(o+i)});return{k1:m(y),k2:m(g)}}var Es={};Ot(Es,{MAX_KEY_SIZE:()=>p0,RsaPrivateKey:()=>On,RsaPublicKey:()=>d0,fromJwk:()=>yl,generateKeyPair:()=>gl,unmarshalRsaPrivateKey:()=>dl,unmarshalRsaPublicKey:()=>pl});var h0=Bt(ut(),1);var Mv=Bt(Q4(),1);function Zr(e){if(isNaN(e)||e<=0)throw new P("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Cn(e)}var Ev=Bt(m1(),1),bs=Bt(ut(),1);function Y4(e,t){return t.map(r=>fe(e[r]))}function W4(e){return bs.default.pki.setRsaPrivateKey(...Y4(e,["n","e","d","p","q","dp","dq","qi"]))}function Z4(e){return bs.default.pki.setRsaPublicKey(...Y4(e,["n","e"]))}var Xr={};Ot(Xr,{jwkToPkcs1:()=>cl,jwkToPkix:()=>fl,pkcs1ToJwk:()=>al,pkixToJwk:()=>ul});var Av=Bt(i0(),1),Bv=Bt(m1(),1);var sr=Bt(ut(),1);function al(e){let t=sr.default.asn1.fromDer(z(e,"ascii")),r=sr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Ae(r.n),e:Ae(r.e),d:Ae(r.d),p:Ae(r.p),q:Ae(r.q),dp:Ae(r.dP),dq:Ae(r.dQ),qi:Ae(r.qInv),alg:"RS256"}}function cl(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 P("JWK was missing components","ERR_INVALID_PARAMETERS");let t=sr.default.pki.privateKeyToAsn1({n:fe(e.n),e:fe(e.e),d:fe(e.d),p:fe(e.p),q:fe(e.q),dP:fe(e.dp),dQ:fe(e.dq),qInv:fe(e.qi)});return dt(sr.default.asn1.toDer(t).getBytes(),"ascii")}function ul(e){let t=sr.default.asn1.fromDer(z(e,"ascii")),r=sr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Ae(r.n),e:Ae(r.e)}}function fl(e){if(e.n==null||e.e==null)throw new P("JWK was missing components","ERR_INVALID_PARAMETERS");let t=sr.default.pki.publicKeyToAsn1({n:fe(e.n),e:fe(e.e)});return dt(sr.default.asn1.toDer(t).getBytes(),"ascii")}async function X4(e){let t=await Nt.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 t5(t);return{privateKey:r[0],publicKey:r[1]}}async function ws(e){let r=[await Nt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await ll(e)],n=await t5({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function J4(e,t){let r=await Nt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Nt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function j4(e,t,r){let n=await Nt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Nt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r instanceof Uint8Array?r:r.subarray())}async function t5(e){if(e.privateKey==null||e.publicKey==null)throw new P("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Nt.get().subtle.exportKey("jwk",e.privateKey),Nt.get().subtle.exportKey("jwk",e.publicKey)])}async function ll(e){return Nt.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 e5(e,t,r,n){let i=t?Z4(e):W4(e),o=z(r instanceof Uint8Array?r:r.subarray(),"ascii"),a=n(o,i);return dt(a,"ascii")}function r5(e,t){return e5(e,!0,t,(r,n)=>n.encrypt(r))}function n5(e,t){return e5(e,!1,t,(r,n)=>n.decrypt(r))}function D1(e){if(e.kty!=="RSA")throw new P("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new P("invalid key modulus","ERR_INVALID_KEY_MODULUS");return dt(e.n,"base64url").length*8}var p0=8192,d0=class{_key;constructor(t){this._key=t}verify(t,r){return j4(this._key,r,t)}marshal(){return Xr.jwkToPkix(this._key)}get bytes(){return _e.encode({Type:mt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return r5(this._key,t)}equals(t){return ht(this.bytes,t.bytes)}hash(){let t=St.digest(this.bytes);return me(t)?t.then(({bytes:r})=>r):t.bytes}},On=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return Zr(16)}sign(t){return J4(this._key,t)}get public(){if(this._publicKey==null)throw new P("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new d0(this._publicKey)}decrypt(t){return n5(this._key,t)}marshal(){return Xr.jwkToPkcs1(this._key)}get bytes(){return Ce.encode({Type:mt.RSA,Data:this.marshal()}).subarray()}equals(t){return ht(this.bytes,t.bytes)}hash(){let t=St.digest(this.bytes);return me(t)?t.then(({bytes:r})=>r):t.bytes}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new h0.default.util.ByteBuffer(this.marshal()),i=h0.default.asn1.fromDer(n),o=h0.default.pki.privateKeyFromAsn1(i),a={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return h0.default.pki.encryptRsaPrivateKey(o,t,a)}else{if(r==="libp2p-key")return Nn(this.bytes,t);throw new P(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function dl(e){let t=Xr.pkcs1ToJwk(e);if(D1(t)>p0)throw new P("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await ws(t);return new On(r.privateKey,r.publicKey)}function pl(e){let t=Xr.pkixToJwk(e);if(D1(t)>p0)throw new P("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new d0(t)}async function yl(e){if(D1(e)>p0)throw new P("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await ws(e);return new On(t.privateKey,t.publicKey)}async function gl(e){if(e>p0)throw new P("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await X4(e);return new On(t.privateKey,t.publicKey)}var _s={};Ot(_s,{Secp256k1PrivateKey:()=>g0,Secp256k1PublicKey:()=>y0,generateKeyPair:()=>Pl,unmarshalSecp256k1PrivateKey:()=>Cl,unmarshalSecp256k1PublicKey:()=>Rl});var ml=(e,t,r)=>e&t^~e&r,xl=(e,t,r)=>e&t^e&r^t&r,vl=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]),_r=new Uint32Array(64),Ss=class extends Rn{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:a,G:s,H:c}=this;return[t,r,n,i,o,a,s,c]}set(t,r,n,i,o,a,s,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=a|0,this.G=s|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)_r[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let p=_r[l-15],d=_r[l-2],h=Be(p,7)^Be(p,18)^p>>>3,y=Be(d,17)^Be(d,19)^d>>>10;_r[l]=y+_r[l-7]+h+_r[l-16]|0}let{A:n,B:i,C:o,D:a,E:s,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let p=Be(s,6)^Be(s,11)^Be(s,25),d=f+p+ml(s,c,u)+vl[l]+_r[l]|0,y=(Be(n,2)^Be(n,13)^Be(n,22))+xl(n,i,o)|0;f=u,u=c,c=s,s=a+d|0,a=o,o=i,i=n,n=d+y|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,a=a+this.D|0,s=s+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,a,s,c,u,f)}roundClean(){_r.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var i5=E1(()=>new Ss);function bl(e){let t=u0(e);He(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:wl,hexToBytes:El}=B1,Jr={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=Jr;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:wl(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=Jr,r=typeof e=="string"?El(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:o}=Jr._parseInt(r.subarray(2)),{d:a,l:s}=Jr._parseInt(o);if(s.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:a}},hexFromSig(e){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},n=t(r(e.s)),i=t(r(e.r)),o=n.length/2,a=i.length/2,s=r(o),c=r(a);return`30${r(a+o+4)}02${c}${i}02${s}${n}`}},ar=BigInt(0),xe=BigInt(1),Zv=BigInt(2),o5=BigInt(3),Xv=BigInt(4);function Sl(e){let t=bl(e),{Fp:r}=t,n=t.toBytes||((h,y,g)=>{let m=y.toAffine();return nr(Uint8Array.from([4]),r.toBytes(m.x),r.toBytes(m.y))}),i=t.fromBytes||(h=>{let y=h.subarray(1),g=r.fromBytes(y.subarray(0,r.BYTES)),m=r.fromBytes(y.subarray(r.BYTES,2*r.BYTES));return{x:g,y:m}});function o(h){let{a:y,b:g}=t,m=r.sqr(h),x=r.mul(m,h);return r.add(r.add(x,r.mul(h,y)),g)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function a(h){return typeof h=="bigint"&&ar<h&&h<t.n}function s(h){if(!a(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:y,nByteLength:g,wrapPrivateKey:m,n:x}=t;if(y&&typeof h!="bigint"){if(h instanceof Uint8Array&&(h=er(h)),typeof h!="string"||!y.includes(h.length))throw new Error("Invalid key");h=h.padStart(g*2,"0")}let v;try{v=typeof h=="bigint"?h:rr(Ct("private key",h,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof h}`)}return m&&(v=lt(v,x)),s(v),v}let u=new Map;function f(h){if(!(h instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(y,g,m){if(this.px=y,this.py=g,this.pz=m,y==null||!r.isValid(y))throw new Error("x required");if(g==null||!r.isValid(g))throw new Error("y required");if(m==null||!r.isValid(m))throw new Error("z required")}static fromAffine(y){let{x:g,y:m}=y||{};if(!y||!r.isValid(g)||!r.isValid(m))throw new Error("invalid affine point");if(y instanceof l)throw new Error("projective point not allowed");let x=v=>r.eql(v,r.ZERO);return x(g)&&x(m)?l.ZERO:new l(g,m,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(y){let g=r.invertBatch(y.map(m=>m.pz));return y.map((m,x)=>m.toAffine(g[x])).map(l.fromAffine)}static fromHex(y){let g=l.fromAffine(i(Ct("pointHex",y)));return g.assertValidity(),g}static fromPrivateKey(y){return l.BASE.multiply(c(y))}_setWindowSize(y){this._WINDOW_SIZE=y,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:y,y:g}=this.toAffine();if(!r.isValid(y)||!r.isValid(g))throw new Error("bad point: x or y not FE");let m=r.sqr(g),x=o(y);if(!r.eql(m,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y}=this.toAffine();if(r.isOdd)return!r.isOdd(y);throw new Error("Field doesn't support isOdd")}equals(y){f(y);let{px:g,py:m,pz:x}=this,{px:v,py:T,pz:E}=y,S=r.eql(r.mul(g,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:y,b:g}=t,m=r.mul(g,o5),{px:x,py:v,pz:T}=this,E=r.ZERO,S=r.ZERO,L=r.ZERO,N=r.mul(x,x),G=r.mul(v,v),$=r.mul(T,T),q=r.mul(x,v);return q=r.add(q,q),L=r.mul(x,T),L=r.add(L,L),E=r.mul(y,L),S=r.mul(m,$),S=r.add(E,S),E=r.sub(G,S),S=r.add(G,S),S=r.mul(E,S),E=r.mul(q,E),L=r.mul(m,L),$=r.mul(y,$),q=r.sub(N,$),q=r.mul(y,q),q=r.add(q,L),L=r.add(N,N),N=r.add(L,N),N=r.add(N,$),N=r.mul(N,q),S=r.add(S,N),$=r.mul(v,T),$=r.add($,$),N=r.mul($,q),E=r.sub(E,N),L=r.mul($,G),L=r.add(L,L),L=r.add(L,L),new l(E,S,L)}add(y){f(y);let{px:g,py:m,pz:x}=this,{px:v,py:T,pz:E}=y,S=r.ZERO,L=r.ZERO,N=r.ZERO,G=t.a,$=r.mul(t.b,o5),q=r.mul(g,v),J=r.mul(m,T),ft=r.mul(x,E),Qt=r.add(g,m),_=r.add(v,T);Qt=r.mul(Qt,_),_=r.add(q,J),Qt=r.sub(Qt,_),_=r.add(g,x);let k=r.add(v,E);return _=r.mul(_,k),k=r.add(q,ft),_=r.sub(_,k),k=r.add(m,x),S=r.add(T,E),k=r.mul(k,S),S=r.add(J,ft),k=r.sub(k,S),N=r.mul(G,_),S=r.mul($,ft),N=r.add(S,N),S=r.sub(J,N),N=r.add(J,N),L=r.mul(S,N),J=r.add(q,q),J=r.add(J,q),ft=r.mul(G,ft),_=r.mul($,_),J=r.add(J,ft),ft=r.sub(q,ft),ft=r.mul(G,ft),_=r.add(_,ft),q=r.mul(J,_),L=r.add(L,q),q=r.mul(k,_),S=r.mul(Qt,S),S=r.sub(S,q),q=r.mul(Qt,J),N=r.mul(k,N),N=r.add(N,q),new l(S,L,N)}subtract(y){return this.add(y.negate())}is0(){return this.equals(l.ZERO)}wNAF(y){return d.wNAFCached(this,u,y,g=>{let m=r.invertBatch(g.map(x=>x.pz));return g.map((x,v)=>x.toAffine(m[v])).map(l.fromAffine)})}multiplyUnsafe(y){let g=l.ZERO;if(y===ar)return g;if(s(y),y===xe)return this;let{endo:m}=t;if(!m)return d.unsafeLadder(this,y);let{k1neg:x,k1:v,k2neg:T,k2:E}=m.splitScalar(y),S=g,L=g,N=this;for(;v>ar||E>ar;)v&xe&&(S=S.add(N)),E&xe&&(L=L.add(N)),N=N.double(),v>>=xe,E>>=xe;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(y){s(y);let g=y,m,x,{endo:v}=t;if(v){let{k1neg:T,k1:E,k2neg:S,k2:L}=v.splitScalar(g),{p:N,f:G}=this.wNAF(E),{p:$,f:q}=this.wNAF(L);N=d.constTimeNegate(T,N),$=d.constTimeNegate(S,$),$=new l(r.mul($.px,v.beta),$.py,$.pz),m=N.add($),x=G.add(q)}else{let{p:T,f:E}=this.wNAF(g);m=T,x=E}return l.normalizeZ([m,x])[0]}multiplyAndAddUnsafe(y,g,m){let x=l.BASE,v=(E,S)=>S===ar||S===xe||!E.equals(x)?E.multiplyUnsafe(S):E.multiply(S),T=v(this,g).add(v(y,m));return T.is0()?void 0:T}toAffine(y){let{px:g,py:m,pz:x}=this,v=this.is0();y==null&&(y=v?r.ONE:r.inv(x));let T=r.mul(g,y),E=r.mul(m,y),S=r.mul(x,y);if(v)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:T,y:E}}isTorsionFree(){let{h:y,isTorsionFree:g}=t;if(y===xe)return!0;if(g)return g(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:y,clearCofactor:g}=t;return y===xe?this:g?g(l,this):this.multiplyUnsafe(t.h)}toRawBytes(y=!0){return this.assertValidity(),n(l,this,y)}toHex(y=!0){return er(this.toRawBytes(y))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);let p=t.nBitLength,d=C1(l,t.endo?Math.ceil(p/2):p);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:a}}function Il(e){let t=u0(e);return He(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function s5(e){let t=Il(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function a(_){return ar<_&&_<r.ORDER}function s(_){return lt(_,n)}function c(_){return T1(_,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:p}=Sl({...t,toBytes(_,k,R){let D=k.toAffine(),A=r.toBytes(D.x),F=nr;return R?F(Uint8Array.from([k.hasEvenY()?2:3]),A):F(Uint8Array.from([4]),A,r.toBytes(D.y))},fromBytes(_){let k=_.length,R=_[0],D=_.subarray(1);if(k===i&&(R===2||R===3)){let A=rr(D);if(!a(A))throw new Error("Point is not on curve");let F=l(A),M=r.sqrt(F),H=(M&xe)===xe;return(R&1)===1!==H&&(M=r.neg(M)),{x:A,y:M}}else if(k===o&&R===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=_=>er(Br(_,t.nByteLength));function h(_){let k=n>>xe;return _>k}function y(_){return h(_)?s(-_):_}let g=(_,k,R)=>rr(_.slice(k,R));class m{constructor(k,R,D){this.r=k,this.s=R,this.recovery=D,this.assertValidity()}static fromCompact(k){let R=t.nByteLength;return k=Ct("compactSignature",k,R*2),new m(g(k,0,R),g(k,R,2*R))}static fromDER(k){let{r:R,s:D}=Jr.toSig(Ct("DER",k));return new m(R,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:R,s:D,recovery:A}=this,F=L(Ct("msgHash",k));if(A==null||![0,1,2,3].includes(A))throw new Error("recovery id invalid");let M=A===2||A===3?R+t.n:R;if(M>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=A&1?"03":"02",Z=u.fromHex(H+d(M)),j=c(M),at=s(-F*j),tt=s(D*j),nt=u.BASE.multiplyAndAddUnsafe(Z,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,s(-this.s),this.recovery):this}toDERRawBytes(){return $r(this.toDERHex())}toDERHex(){return Jr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return $r(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}let x={isValidPrivateKey(_){try{return f(_),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let _=cs(t.n);return I4(t.randomBytes(_),t.n)},precompute(_=8,k=u.BASE){return k._setWindowSize(_),k.multiply(BigInt(3)),k}};function v(_,k=!0){return u.fromPrivateKey(_).toRawBytes(k)}function T(_){let k=_ instanceof Uint8Array,R=typeof _=="string",D=(k||R)&&_.length;return k?D===i||D===o:R?D===2*i||D===2*o:_ instanceof u}function E(_,k,R=!0){if(T(_))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(_)).toRawBytes(R)}let S=t.bits2int||function(_){let k=rr(_),R=_.length*8-t.nBitLength;return R>0?k>>BigInt(R):k},L=t.bits2int_modN||function(_){return s(S(_))},N=c0(t.nBitLength);function G(_){if(typeof _!="bigint")throw new Error("bigint expected");if(!(ar<=_&&_<N))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Br(_,t.nByteLength)}function $(_,k,R=q){if(["recovered","canonical"].some(At=>At in R))throw new Error("sign() legacy options not supported");let{hash:D,randomBytes:A}=t,{lowS:F,prehash:M,extraEntropy:H}=R;F==null&&(F=!0),_=Ct("msgHash",_),M&&(_=Ct("prehashed msgHash",D(_)));let Z=L(_),j=f(k),at=[G(j),G(Z)];if(H!=null){let At=H===!0?A(r.BYTES):H;at.push(Ct("extraEntropy",At))}let tt=nr(...at),nt=Z;function kt(At){let Yt=S(At);if(!p(Yt))return;let Wt=c(Yt),Ft=u.BASE.multiply(Yt).toAffine(),Zt=s(Ft.x);if(Zt===ar)return;let Ge=s(Wt*s(nt+Zt*j));if(Ge===ar)return;let Lr=(Ft.x===Zt?0:2)|Number(Ft.y&xe),Kn=Ge;return F&&h(Ge)&&(Kn=y(Ge),Lr^=1),new m(Zt,Kn,Lr)}return{seed:tt,k2sig:kt}}let q={lowS:t.lowS,prehash:!1},J={lowS:t.lowS,prehash:!1};function ft(_,k,R=q){let{seed:D,k2sig:A}=$(_,k,R),F=t;return is(F.hash.outputLen,F.nByteLength,F.hmac)(D,A)}u.BASE._setWindowSize(8);function Qt(_,k,R,D=J){let A=_;if(k=Ct("msgHash",k),R=Ct("publicKey",R),"strict"in D)throw new Error("options.strict was renamed to lowS");let{lowS:F,prehash:M}=D,H,Z;try{if(typeof A=="string"||A instanceof Uint8Array)try{H=m.fromDER(A)}catch(Ft){if(!(Ft instanceof Jr.Err))throw Ft;H=m.fromCompact(A)}else if(typeof A=="object"&&typeof A.r=="bigint"&&typeof A.s=="bigint"){let{r:Ft,s:Zt}=A;H=new m(Ft,Zt)}else throw new Error("PARSE");Z=u.fromHex(R)}catch(Ft){if(Ft.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(F&&H.hasHighS())return!1;M&&(k=t.hash(k));let{r:j,s:at}=H,tt=L(k),nt=c(at),kt=s(tt*nt),At=s(j*nt),Yt=u.BASE.multiplyAndAddUnsafe(Z,kt,At)?.toAffine();return Yt?s(Yt.x)===j:!1}return{CURVE:t,getPublicKey:v,getSharedSecret:E,sign:ft,verify:Qt,ProjectivePoint:u,Signature:m,utils:x}}var k1=class extends _n{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,h4(t);let n=a0(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,o=new Uint8Array(i);o.set(n.length>i?t.create().update(n).digest():n);for(let a=0;a<o.length;a++)o[a]^=54;this.iHash.update(o),this.oHash=t.create();for(let a=0;a<o.length;a++)o[a]^=106;this.oHash.update(o),o.fill(0)}update(t){return Tn(this),this.iHash.update(t),this}digestInto(t){Tn(this),Xo(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:o,blockLen:a,outputLen:s}=this;return t=t,t.finished=i,t.destroyed=o,t.blockLen=a,t.outputLen=s,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Is=(e,t,r)=>new k1(e,t).update(r).digest();Is.create=(e,t)=>new k1(e,t);function Al(e){return{hash:e,hmac:(t,...r)=>Is(e,t,w1(...r)),randomBytes:Cn}}function a5(e,t){let r=n=>s5({...e,...Al(n)});return Object.freeze({...r(t),create:r})}var f5=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),c5=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Bl=BigInt(1),As=BigInt(2),u5=(e,t)=>(e+t/As)/t;function Tl(e){let t=f5,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),a=BigInt(23),s=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=Et(f,r,t)*f%t,p=Et(l,r,t)*f%t,d=Et(p,As,t)*u%t,h=Et(d,i,t)*d%t,y=Et(h,o,t)*h%t,g=Et(y,s,t)*y%t,m=Et(g,c,t)*g%t,x=Et(m,s,t)*y%t,v=Et(x,r,t)*f%t,T=Et(v,a,t)*h%t,E=Et(T,n,t)*u%t,S=Et(E,As,t);if(!Bs.eql(Bs.sqr(S),e))throw new Error("Cannot find square root");return S}var Bs=_1(f5,void 0,void 0,{sqrt:Tl}),Re=a5({a:BigInt(0),b:BigInt(7),Fp:Bs,n:c5,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=c5,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Bl*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,a=BigInt("0x100000000000000000000000000000000"),s=u5(o*e,t),c=u5(-n*e,t),u=lt(e-s*r-c*i,t),f=lt(-s*n-c*o,t),l=u>a,p=f>a;if(l&&(u=t-u),p&&(f=t-f),u>a||f>a)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:p,k2:f}}}},i5),ub=BigInt(0);var fb=Re.ProjectivePoint;function l5(){return Re.utils.randomPrivateKey()}function h5(e,t){let r=St.digest(t instanceof Uint8Array?t:t.subarray());if(me(r))return r.then(({digest:n})=>Re.sign(n,e).toDERRawBytes()).catch(n=>{throw new P(String(n),"ERR_INVALID_INPUT")});try{return Re.sign(r.digest,e).toDERRawBytes()}catch(n){throw new P(String(n),"ERR_INVALID_INPUT")}}function d5(e,t,r){let n=St.digest(r instanceof Uint8Array?r:r.subarray());if(me(n))return n.then(({digest:i})=>Re.verify(t,i,e)).catch(i=>{throw new P(String(i),"ERR_INVALID_INPUT")});try{return Re.verify(t,n.digest,e)}catch(i){throw new P(String(i),"ERR_INVALID_INPUT")}}function p5(e){return Re.ProjectivePoint.fromHex(e).toRawBytes(!0)}function y5(e){try{Re.getPublicKey(e,!0)}catch(t){throw new P(String(t),"ERR_INVALID_PRIVATE_KEY")}}function Ts(e){try{Re.ProjectivePoint.fromHex(e)}catch(t){throw new P(String(t),"ERR_INVALID_PUBLIC_KEY")}}function g5(e){try{return Re.getPublicKey(e,!0)}catch(t){throw new P(String(t),"ERR_INVALID_PRIVATE_KEY")}}var y0=class{_key;constructor(t){Ts(t),this._key=t}verify(t,r){return d5(this._key,r,t)}marshal(){return p5(this._key)}get bytes(){return _e.encode({Type:mt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return ht(this.bytes,t.bytes)}async hash(){let t=St.digest(this.bytes),r;return me(t)?{bytes:r}=await t:r=t.bytes,r}},g0=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??g5(t),y5(this._key),Ts(this._publicKey)}sign(t){return h5(this._key,t)}get public(){return new y0(this._publicKey)}marshal(){return this._key}get bytes(){return Ce.encode({Type:mt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return ht(this.bytes,t.bytes)}hash(){let t=St.digest(this.bytes);return me(t)?t.then(({bytes:r})=>r):t.bytes}async id(){let t=await this.public.hash();return z(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Nn(this.bytes,t);throw new P(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Cl(e){return new g0(e)}function Rl(e){return new y0(e)}async function Pl(){let e=l5();return new g0(e)}var $e={rsa:Es,ed25519:gs,secp256k1:_s};function Cs(e){let t=Object.keys($e).join(" / ");return new P(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Rs(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return $e[e];throw Cs(e)}async function Ll(e,t){return Rs(e).generateKeyPair(t??2048)}async function Nl(e,t,r){if(e.toLowerCase()!=="ed25519")throw new P("Seed key derivation is unimplemented for RSA or secp256k1","ERR_UNSUPPORTED_KEY_DERIVATION_TYPE");return ys(t)}function Dl(e){let t=_e.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case mt.RSA:return $e.rsa.unmarshalRsaPublicKey(r);case mt.Ed25519:return $e.ed25519.unmarshalEd25519PublicKey(r);case mt.Secp256k1:return $e.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw Cs(t.Type??"unknown")}}function kl(e,t){return t=(t??"rsa").toLowerCase(),Rs(t),e.bytes}async function m5(e){let t=Ce.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case mt.RSA:return $e.rsa.unmarshalRsaPrivateKey(r);case mt.Ed25519:return $e.ed25519.unmarshalEd25519PrivateKey(r);case mt.Secp256k1:return $e.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw Cs(t.Type??"RSA")}}function Ol(e,t){return t=(t??"rsa").toLowerCase(),Rs(t),e.bytes}async function Ul(e,t){try{let i=await M4(e,t);return await m5(i)}catch{}let r=O1.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new P("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=O1.default.asn1.toDer(O1.default.pki.privateKeyToAsn1(r));return n=dt(n.getBytes(),"ascii"),$e.rsa.unmarshalRsaPrivateKey(n)}var Fl=Bt(Vo(),1),Kl=Bt(Lt(),1);function F1(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=zt(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return Ne(r)}var K1=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 Ee(t),n={peerId:t,distance:cr(this.originDhtKey,r)};this.peerDistances.push(n),this.peerDistances.sort((i,o)=>F1(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(Ee)),n=this.peerDistances[this.peerDistances.length-1].distance;for(let i of r){let o=cr(this.originDhtKey,i);if(F1(o,n)<0)return!0}return!1}};var M1=class{log;routingTable;network;validators;queryManager;peerStore;peerId;constructor(t,r){let{routingTable:n,network:i,validators:o,queryManager:a,lan:s}=r;this.routingTable=n,this.network=i,this.validators=o,this.queryManager=a,this.peerStore=t.peerStore,this.peerId=t.peerId,this.log=t.logger.forComponent(`libp2p:kad-dht:${s?"lan":"wan"}:peer-routing`)}async findPeerLocal(t){let r,n=await this.routingTable.find(t);if(n!=null){this.log("findPeerLocal found %p in routing table",t);try{r=await this.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=new vt(Pt.GET_VALUE,r,0);yield*this.network.sendRequest(t,i,n)}async*getPublicKeyFromNode(t,r={}){let n=Pa(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(U1.marshalPublicKey({bytes:i.record.value}));if(!o.equals(t))throw new P("public key does not match id","ERR_PUBLIC_KEY_DOES_NOT_MATCH_ID");if(o.publicKey==null)throw new P("public key missing","ERR_PUBLIC_KEY_MISSING");yield jn({from:t,value:o.publicKey},r)}throw new P(`Node not responding with its public key: ${t.toString()}`,"ERR_INVALID_RECORD")}async*findPeer(t,r={}){this.log("findPeer %p",t);let n=await this.findPeerLocal(t);if(n!=null){this.log("found local"),yield q0({from:this.peerId,peer:n},r);return}let i=this,o=async function*({peer:s,signal:c}){let u=new vt(Pt.FIND_NODE,t.toBytes(),0);for await(let f of i.network.sendRequest(s,u,{...r,signal:c}))if(yield f,f.name==="PEER_RESPONSE"){let l=f.closer.find(p=>p.id.equals(t));l!=null&&(yield q0({from:f.from,peer:l},r))}},a=!1;for await(let s of this.queryManager.run(t.toBytes(),o,r))s.name==="FINAL_PEER"&&(a=!0),yield s;a||(yield ne({from:this.peerId,error:new P("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,a=new K1(n,this.routingTable.kBucketSize);await Promise.all(i.map(async c=>{await a.add(c)}));let s=async function*({peer:c,signal:u}){o.log("closerPeersSingle %s from %p",z(t,"base32"),c);let f=new vt(Pt.FIND_NODE,t,0);yield*o.network.sendRequest(c,f,{...r,signal:u})};for await(let c of this.queryManager.run(t,s,r))yield c,c.name==="PEER_RESPONSE"&&await Promise.all(c.closer.map(async u=>{await a.add(u.id)}));this.log("found %d peers close to %b",a.length,t);for(let c of a.peers)try{let u=await this.peerStore.get(c);yield q0({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 a="invalid record received, discarded";this.log(a),yield ne({from:i.from,error:new P(a,"ERR_INVALID_RECORD")},n);continue}yield i}}async _verifyRecordOnline(t){if(t.timeReceived==null)throw new P("invalid record received","ERR_INVALID_RECORD");await mn(this.validators,new Mt(t.key,t.value,t.timeReceived))}async getCloserPeersOffline(t,r){let n=await xr(t),i=this.routingTable.closestPeers(n),o=[];for(let a of i)if(!a.equals(r))try{let s=await this.peerStore.get(a);o.push({id:a,multiaddrs:s.addresses.map(({multiaddr:c})=>c)})}catch(s){if(s.code!=="ERR_NOT_FOUND")throw s}return o.length>0?this.log("getCloserPeersOffline found %d peer(s) closer to %b than %p",o.length,t,r):this.log("getCloserPeersOffline could not find peer closer to %b than %p",t,r),o}};var P5=Bt(v5(),1);var Ls=Bt(w5(),1);var x0=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Ns=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},E5=e=>globalThis.DOMException===void 0?new Ns(e):new DOMException(e),S5=e=>{let t=e.reason===void 0?E5("This operation was aborted."):e.reason;return t instanceof Error?t:E5(t)};function Ds(e,t,r,n){let i,o=new Promise((a,s)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){a(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&s(S5(c)),c.addEventListener("abort",()=>{s(S5(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{a(r())}catch(f){s(f)}return}let c=typeof r=="string"?r:`Promise timed out after ${t} milliseconds`,u=r instanceof Error?r:new x0(c);typeof e.cancel=="function"&&e.cancel(),s(u)},t),(async()=>{try{a(await e)}catch(c){s(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return o.clear=()=>{clearTimeout(i),i=void 0},o}function ks(e,t,r){let n=0,i=e.length;for(;i>0;){let o=Math.trunc(i/2),a=n+o;r(e[a],t)<=0?(n=++a,i-=o+1):i=o}return n}var jr=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},ur,Os=class{constructor(){ur.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&jr(this,ur,"f")[this.size-1].priority>=r.priority){jr(this,ur,"f").push(n);return}let i=ks(jr(this,ur,"f"),n,(o,a)=>a.priority-o.priority);jr(this,ur,"f").splice(i,0,n)}dequeue(){let t=jr(this,ur,"f").shift();return t?.run}filter(t){return jr(this,ur,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return jr(this,ur,"f").length}};ur=new WeakMap;var I5=Os;var It=function(e,t,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},K=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Dt,b0,w0,Rr,Q1,E0,q1,Pe,v0,he,z1,de,S0,Cr,H1,A5,B5,C5,T5,_5,$1,Us,Fs,Y1,R5,G1,W1=class extends Error{},Ks=class extends Ls.default{constructor(t){var r,n,i,o;if(super(),Dt.add(this),b0.set(this,void 0),w0.set(this,void 0),Rr.set(this,0),Q1.set(this,void 0),E0.set(this,void 0),q1.set(this,0),Pe.set(this,void 0),v0.set(this,void 0),he.set(this,void 0),z1.set(this,void 0),de.set(this,0),S0.set(this,void 0),Cr.set(this,void 0),H1.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:I5,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(o=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&o!==void 0?o:""}\` (${typeof t.interval})`);It(this,b0,t.carryoverConcurrencyCount,"f"),It(this,w0,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),It(this,Q1,t.intervalCap,"f"),It(this,E0,t.interval,"f"),It(this,he,new t.queueClass,"f"),It(this,z1,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,It(this,H1,t.throwOnTimeout===!0,"f"),It(this,Cr,t.autoStart===!1,"f")}get concurrency(){return K(this,S0,"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})`);It(this,S0,t,"f"),K(this,Dt,"m",Y1).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:K(this,H1,"f"),...r},new Promise((n,i)=>{K(this,he,"f").enqueue(async()=>{var o,a,s;It(this,de,(a=K(this,de,"f"),a++,a),"f"),It(this,Rr,(s=K(this,Rr,"f"),s++,s),"f");try{if(!((o=r.signal)===null||o===void 0)&&o.aborted)throw new W1("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=Ds(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,K(this,Dt,"m",R5).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof x0&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{K(this,Dt,"m",C5).call(this)}},r),this.emit("add"),K(this,Dt,"m",$1).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return K(this,Cr,"f")?(It(this,Cr,!1,"f"),K(this,Dt,"m",Y1).call(this),this):this}pause(){It(this,Cr,!0,"f")}clear(){It(this,he,new(K(this,z1,"f")),"f")}async onEmpty(){K(this,he,"f").size!==0&&await K(this,Dt,"m",G1).call(this,"empty")}async onSizeLessThan(t){K(this,he,"f").size<t||await K(this,Dt,"m",G1).call(this,"next",()=>K(this,he,"f").size<t)}async onIdle(){K(this,de,"f")===0&&K(this,he,"f").size===0||await K(this,Dt,"m",G1).call(this,"idle")}get size(){return K(this,he,"f").size}sizeBy(t){return K(this,he,"f").filter(t).length}get pending(){return K(this,de,"f")}get isPaused(){return K(this,Cr,"f")}};b0=new WeakMap,w0=new WeakMap,Rr=new WeakMap,Q1=new WeakMap,E0=new WeakMap,q1=new WeakMap,Pe=new WeakMap,v0=new WeakMap,he=new WeakMap,z1=new WeakMap,de=new WeakMap,S0=new WeakMap,Cr=new WeakMap,H1=new WeakMap,Dt=new WeakSet,A5=function(){return K(this,w0,"f")||K(this,Rr,"f")<K(this,Q1,"f")},B5=function(){return K(this,de,"f")<K(this,S0,"f")},C5=function(){var t;It(this,de,(t=K(this,de,"f"),t--,t),"f"),K(this,Dt,"m",$1).call(this),this.emit("next")},T5=function(){K(this,Dt,"m",Fs).call(this),K(this,Dt,"m",Us).call(this),It(this,v0,void 0,"f")},_5=function(){let t=Date.now();if(K(this,Pe,"f")===void 0){let r=K(this,q1,"f")-t;if(r<0)It(this,Rr,K(this,b0,"f")?K(this,de,"f"):0,"f");else return K(this,v0,"f")===void 0&&It(this,v0,setTimeout(()=>{K(this,Dt,"m",T5).call(this)},r),"f"),!0}return!1},$1=function(){if(K(this,he,"f").size===0)return K(this,Pe,"f")&&clearInterval(K(this,Pe,"f")),It(this,Pe,void 0,"f"),this.emit("empty"),K(this,de,"f")===0&&this.emit("idle"),!1;if(!K(this,Cr,"f")){let t=!K(this,Dt,"a",_5);if(K(this,Dt,"a",A5)&&K(this,Dt,"a",B5)){let r=K(this,he,"f").dequeue();return r?(this.emit("active"),r(),t&&K(this,Dt,"m",Us).call(this),!0):!1}}return!1},Us=function(){K(this,w0,"f")||K(this,Pe,"f")!==void 0||(It(this,Pe,setInterval(()=>{K(this,Dt,"m",Fs).call(this)},K(this,E0,"f")),"f"),It(this,q1,Date.now()+K(this,E0,"f"),"f"))},Fs=function(){K(this,Rr,"f")===0&&K(this,de,"f")===0&&K(this,Pe,"f")&&(clearInterval(K(this,Pe,"f")),It(this,Pe,void 0,"f")),It(this,Rr,K(this,b0,"f")?K(this,de,"f"):0,"f"),K(this,Dt,"m",Y1).call(this)},Y1=function(){for(;K(this,Dt,"m",$1).call(this););},R5=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new W1("The task was aborted."))},{once:!0})})},G1=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var Un=Ks;var Z1=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,P5.default)(n??256),this.syncQueue=new Un({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(),a=this.datastore.query({prefix:Ei});for await(let s of a)try{let{cid:c,peerId:u}=L5(s.key),f=N5(s.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(s.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[s,c]of i){let u=I0(s),f=this.cache.get(u);if(f!=null){for(let l of c)f.delete(l);f.size===0?this.cache.remove(u):this.cache.set(u,f)}}this.log("Cleanup successful (%dms)",Date.now()-t)})}async _getProvidersMap(t){let r=I0(t),n=this.cache.get(r);return n==null&&(n=await Gl(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=I0(t);this.cache.set(o,n),await $l(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=>_t(n))),{throwOnTimeout:!0})}};function I0(e){let t=typeof e=="string"?e:z(e.multihash.bytes,"base32");return`${Ei}/${t}`}async function $l(e,t,r,n){let i=[I0(t),"/",r.toString()].join(""),o=new xn(i),a=De(n.getTime());await e.put(o,a)}function L5(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 Gl(e,t){let r=new Map,n=e.query({prefix:I0(t)});for await(let i of n){let{peerId:o}=L5(i.key);r.set(o,N5(i.value))}return r}function N5(e){return new Date(ue(e))}function fr(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 Ms=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return fr(this.map.entries(),t=>[_t(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,_t(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 fr(this.map.keys(),t=>_t(t))}values(){return this.map.values()}get size(){return this.map.size}};var Pr=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 fr(this.set.entries(),t=>{let r=_t(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=_t(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return fr(this.set.values(),t=>_t(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 Vs=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return fr(this.list.entries(),t=>_t(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return fr(this.list.entries(),t=>[t[0],_t(t[1])])}every(t){return this.list.every((r,n)=>t(_t(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let o=_t(n);t(o,i,this)&&r.push(o)}),r}find(t){let r=this.list.find((n,i)=>t(_t(n),i,this));if(r!=null)return _t(r)}findIndex(t){return this.list.findIndex((r,n)=>t(_t(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(_t(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 _t(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return _t(t)}unshift(...t){let r=this.list.length;for(let n=t.length-1;n>-1;n--)r=this.list.unshift(t[n].toString());return r}get length(){return this.list.length}};function Fn(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*D5(e,t,r,n){let i=rn({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)},a=l=>{l!=null&&i.push(l)},s=l=>{n("queue error",l),o(l)},c=()=>{n("queue idle"),o()},u=()=>{n("abort queue"),o(new P("Query aborted","ERR_QUERY_ABORTED"))},f=()=>{o()};e.on("completed",a),e.on("error",s),e.on("idle",c),t.addEventListener("abort",u),r.addEventListener("cleanup",f);try{yield*i}finally{e.removeListener("completed",a),e.removeListener("error",s),e.removeListener("idle",c),t.removeEventListener("abort",u),r.removeEventListener("cleanup",f)}}var Ql=BigInt("0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF");async function*k5(e){let{key:t,startingPeer:r,ourPeerId:n,signal:i,query:o,alpha:a,pathIndex:s,numPaths:c,cleanUp:u,queryFuncTimeout:f,log:l,peersSeen:p}=e,d=new Un({concurrency:a}),h=await xr(t);function y(g,m){if(g==null)return;p.add(g);let x=BigInt("0x"+z(cr(m,h),"base16"));d.add(async()=>{let v=[i];f!=null&&v.push(AbortSignal.timeout(f));let T=Fn(v);try{for await(let E of o({key:t,peer:g,signal:T,pathIndex:s,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 Ee(S.id);if(BigInt("0x"+z(cr(L,h),"base16"))>x){l("skipping %p as they are not closer to %b than %p",S.id,t,g);continue}l("querying closer peer %p",S.id),y(S.id,L)}d.emit("completed",E)}}catch(E){if(!i.aborted)return ne({from:g,error:E},e)}finally{T.clear()}},{priority:Ql-x}).catch(v=>{l.error(v)})}y(r,await Ee(r)),yield*D5(d,i,u,l)}var J1=class{lan;disjointPaths;alpha;shutDownController;running;queries;logger;peerId;routingTable;initialQuerySelfHasRun;metrics;constructor(t,r){let{lan:n=!1,disjointPaths:i=20,alpha:o=3}=r;this.disjointPaths=i??20,this.running=!1,this.alpha=o??3,this.lan=n,this.queries=0,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun,this.routingTable=r.routingTable,this.logger=t.logger,this.peerId=t.peerId,t.metrics!=null&&(this.metrics={runningQueries:t.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_running_queries`),queryTime:t.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_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=Fn([this.shutDownController.signal,n.signal]);tn(1/0,o);let a=this.logger.forComponent(`libp2p:kad-dht:${this.lan?"lan":"wan"}:query:`+z(t,"base58btc")),s=Date.now(),c=new Xt;try{n.isSelfQuery!==!0&&this.initialQuerySelfHasRun!=null&&(a("waiting for initial query-self query before continuing"),await Promise.race([new Promise((h,y)=>{o.addEventListener("abort",()=>{y(new _0("Query was aborted before self-query ran"))})}),this.initialQuerySelfHasRun.promise]),this.initialQuerySelfHasRun=void 0),a("query:start"),this.queries++,this.metrics?.runningQueries.update(this.queries);let u=await xr(t),f=this.routingTable.closestPeers(u),l=f.slice(0,Math.min(this.disjointPaths,f.length));if(f.length===0){a.error("Running query with no peers");return}let p=new Pr,d=l.map((h,y)=>k5({key:t,startingPeer:h,ourPeerId:this.peerId,signal:o,query:r,pathIndex:y,numPaths:l.length,alpha:this.alpha,cleanUp:c,queryFuncTimeout:n.queryFuncTimeout,log:a,peersSeen:p,onProgress:n.onProgress}));for await(let h of ve(...d))yield h,h.name==="QUERY_ERROR"&&a("error",h.error)}catch(u){if(!(!this.running&&u.code==="ERR_QUERY_ABORTED"))throw u}finally{o.clear(),this.queries--,this.metrics?.runningQueries.update(this.queries),i?.(),c.dispatchEvent(new Rt("cleanup")),a("query:done in %dms",Date.now()-s)}}};function Wl(e){return e[Symbol.asyncIterator]!=null}function Zl(e){if(Wl(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 j1=Zl;function Xl(e){return e[Symbol.asyncIterator]!=null}function Jl(e,t){return Xl(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 O5=Jl;var ti=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},qs=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},U5=e=>globalThis.DOMException===void 0?new qs(e):new DOMException(e),F5=e=>{let t=e.reason===void 0?U5("This operation was aborted."):e.reason;return t instanceof Error?t:U5(t)};function zs(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,a,c=new Promise((u,f)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(t.signal){let{signal:p}=t;p.aborted&&f(F5(p)),p.addEventListener("abort",()=>{f(F5(p))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new ti;a=o.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(p){f(p)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?u():i instanceof Error?f(i):(l.message=i??`Promise timed out after ${r} milliseconds`,f(l))},r),(async()=>{try{u(await e)}catch(p){f(p)}})()}).finally(()=>{c.clear()});return c.clear=()=>{o.clearTimeout.call(void 0,a),a=void 0},c}var jl=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 t9(e,t,r){let n,i=new Promise((o,a)=>{if(r={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...r},!(r.count>=0&&(r.count===Number.POSITIVE_INFINITY||Number.isInteger(r.count))))throw new TypeError("The `count` option should be at least 0 or more");r.signal?.throwIfAborted();let s=[t].flat(),c=[],{addListener:u,removeListener:f}=jl(e),l=(...d)=>{let h=r.multiArgs?d:d[0];r.filter&&!r.filter(h)||(c.push(h),r.count===c.length&&(n(),o(c)))},p=d=>{n(),a(d)};n=()=>{for(let d of s)f(d,l);for(let d of r.rejectionEvents)f(d,p)};for(let d of s)u(d,l);for(let d of r.rejectionEvents)u(d,p);r.signal&&r.signal.addEventListener("abort",()=>{p(r.signal.reason)},{once:!0}),r.resolveImmediately&&o(c)});if(i.cancel=n,typeof r.timeout=="number"){let o=zs(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=t9(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var ei=class{log;peerId;peerRouting;routingTable;count;interval;initialInterval;queryTimeout;started;timeoutId;controller;initialQuerySelfHasRun;querySelfPromise;constructor(t,r){let{peerRouting:n,lan:i,count:o,interval:a,queryTimeout:s,routingTable:c}=r;this.peerId=t.peerId,this.log=t.logger.forComponent(`libp2p:kad-dht:${i?"lan":"wan"}:query-self`),this.started=!1,this.peerRouting=n,this.routingTable=c,this.count=o??20,this.interval=a??3e5,this.initialInterval=r.initialInterval??1e3,this.queryTimeout=s??5e3,this.initialQuerySelfHasRun=r.initialQuerySelfHasRun}isStarted(){return this.started}start(){this.started||(this.started=!0,clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>{this.querySelf().catch(t=>{this.log.error("error running self-query",t)})},this.initialInterval))}stop(){this.started=!1,this.timeoutId!=null&&clearTimeout(this.timeoutId),this.controller!=null&&this.controller.abort()}async querySelf(){if(!this.started){this.log("skip self-query because we are not started");return}if(this.querySelfPromise!=null)return this.log("joining existing self query"),this.querySelfPromise.promise;if(this.querySelfPromise=qt(),this.started){this.controller=new AbortController;let t=Fn([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 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 hr(this.peerRouting.getClosestPeers(this.peerId.toBytes(),{signal:t,isSelfQuery:!0}),i=>O5(i,this.count),async i=>j1(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 M5(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 A0(e,t){if(!(t instanceof Uint8Array))throw new TypeError(e+" is not a Uint8Array")}var ri=class e extends Xt{localNodeId;root;numberOfNodesPerKBucket;numberOfNodesToPing;distance;arbiter;constructor(t){super(),this.localNodeId=t.localNodeId,this.numberOfNodesPerKBucket=t.numberOfNodesPerKBucket??20,this.numberOfNodesToPing=t.numberOfNodesToPing??3,this.distance=t.distance??e.distance,this.arbiter=t.arbiter??e.arbiter,A0("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),a=Math.max(t.length,r.length);for(;i<o;++i)n=n*256+(t[i]^r[i]);for(;i<a;++i)n=n*256+255;return n}add(t){A0("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(A0("id",t),!Number.isInteger(r)&&r!==1/0||r<=0)throw new TypeError("n is not positive number");let n=[];for(let i=[this.root],o=0;i.length>0&&n.length<r;){let a=i.pop();if(a!=null)if(a.contacts===null){let s=this._determineNode(a,t,o++);i.push(a.left===s?a.right:a.left),i.push(s)}else n=n.concat(a.contacts)}return n.map(i=>({distance:this.distance(i.id,t),contact:i})).sort((i,o)=>i.distance-o.distance).slice(0,r).map(i=>i.contact)}count(){let t=0;for(let r=[this.root];r.length>0;){let n=r.pop();n!=null&&(n.contacts===null?r.push(n.right,n.left):t+=n.contacts.length)}return t}_determineNode(t,r,n){let i=n>>3,o=n%8;return r.length<=i&&o!==0?t.left:r[i]&1<<7-o?t.right:t.left}get(t){A0("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(M5(t.contacts[n].id,r))return n;return-1}remove(t){A0("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(!M5(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 i9="kad-close",o9=50,V5=20,s9=1e4,a9=10,ni=class extends Xt{kBucketSize;kb;pingQueue;log;components;lan;pingTimeout;pingConcurrency;running;protocol;tagName;tagValue;metrics;constructor(t,r){super();let{kBucketSize:n,pingTimeout:i,lan:o,pingConcurrency:a,protocol:s,tagName:c,tagValue:u}=r;this.components=t,this.log=t.logger.forComponent(`libp2p:kad-dht:${o?"lan":"wan"}:routing-table`),this.kBucketSize=n??V5,this.pingTimeout=i??s9,this.pingConcurrency=a??a9,this.lan=o,this.running=!1,this.protocol=s,this.tagName=c??i9,this.tagValue=u??o9;let f=()=>{this.metrics?.pingQueueSize.update(this.pingQueue.size),this.metrics?.pingRunning.update(this.pingQueue.pending)};this.pingQueue=new Un({concurrency:this.pingConcurrency}),this.pingQueue.addListener("add",f),this.pingQueue.addListener("next",f),this._onPing=this._onPing.bind(this)}isStarted(){return this.running}async start(){this.running=!0,this.components.metrics!=null&&(this.metrics={routingTableSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_routing_table_size`),pingQueueSize:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_queue_size`),pingRunning:this.components.metrics.registerMetric(`libp2p_kad_dht_${this.lan?"lan":"wan"}_ping_running`)});let t=new ri({localNodeId:await Ee(this.components.peerId),numberOfNodesPerKBucket:this.kBucketSize,numberOfNodesToPing:1});this.kb=t,t.addEventListener("ping",this._onPing),this._tagPeers(t)}async stop(){this.running=!1,this.pingQueue.clear(),this.kb=void 0}_tagPeers(t){let r=new Pr,n=Da(()=>{let i=new Pr(t.closest(t.localNodeId,V5).map(s=>s.peer)),o=i.difference(r),a=r.difference(i);Promise.resolve().then(async()=>{for(let s of o)await this.components.peerStore.merge(s,{tags:{[this.tagName]:{value:this.tagValue}}});for(let s of a)await this.components.peerStore.merge(s,{tags:{[this.tagName]:void 0}})}).catch(s=>{this.log.error("Could not update peer tags",s)}),r=i});t.addEventListener("added",i=>{n(),this.safeDispatchEvent("peer:add",{detail:i.detail.peer})}),t.addEventListener("removed",i=>{n(),this.safeDispatchEvent("peer:remove",{detail:i.detail.peer})})}_onPing(t){let{oldContacts:r,newContact:n}=t.detail;this.pingQueue.add(async()=>{if(!this.running)return;let i=0;try{await Promise.all(r.map(async o=>{try{let a={signal:AbortSignal.timeout(this.pingTimeout)};this.log("pinging old contact %p",o.peer),await(await(await this.components.connectionManager.openConnection(o.peer,a)).newStream(this.protocol,a)).close(),i++}catch(a){this.running&&this.kb!=null&&(this.log.error("could not ping peer %p",o.peer,a),this.log("evicting old contact after ping failed %p",o.peer),this.kb.remove(o.id))}finally{this.metrics?.routingTableSize.update(this.size)}})),this.running&&i<r.length&&this.kb!=null&&(this.log("adding new contact %p",n.peer),this.kb.add(n))}catch(o){this.log.error("could not process k-bucket ping event",o)}}).catch(i=>{this.log.error("could not process k-bucket ping event",i)})}get size(){return this.kb==null?0:this.kb.count()}async find(t){let r=await Ee(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 Ee(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 Ee(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 ii=15,oi=class{log;peerRouting;routingTable;refreshInterval;refreshQueryTimeout;commonPrefixLengthRefreshedAt;refreshTimeoutId;constructor(t,r){let{peerRouting:n,routingTable:i,refreshInterval:o,refreshQueryTimeout:a,lan:s}=r;this.log=t.logger.forComponent(`libp2p:kad-dht:${s?"lan":"wan"}:routing-table:refresh`),this.peerRouting=n,this.routingTable=i,this.refreshInterval=o??3e5,this.refreshQueryTimeout=a??3e4,this.commonPrefixLengthRefreshedAt=[],this.refreshTable=this.refreshTable.bind(this)}async start(){this.log(`refreshing routing table every ${this.refreshInterval}ms`),this.refreshTable(!0)}async stop(){this.refreshTimeoutId!=null&&clearTimeout(this.refreshTimeoutId)}refreshTable(t=!1){this.log("refreshing routing table");let r=this._maxCommonPrefix(),n=this._getTrackedCommonPrefixLengthsForRefresh(r);this.log(`max common prefix length ${r}`),this.log(`tracked CPLs [ ${n.map(i=>i.toISOString()).join(", ")} ]`),Promise.all(n.map(async(i,o)=>{try{if(await this._refreshCommonPrefixLength(o,i,t),this._numPeersForCpl(r)===0){let a=Math.min(2*(o+1),n.length-1);for(let s=o+1;s<a+1;s++)try{await this._refreshCommonPrefixLength(s,i,t)}catch(c){this.log.error(c)}}}catch(a){this.log.error(a)}})).catch(i=>{this.log.error(i)}).then(()=>{this.refreshTimeoutId=setTimeout(this.refreshTable,this.refreshInterval),this.refreshTimeoutId.unref!=null&&this.refreshTimeoutId.unref()}).catch(i=>{this.log.error(i)})}async _refreshCommonPrefixLength(t,r,n){if(!n&&r.getTime()>Date.now()-this.refreshInterval){this.log("not running refresh for cpl %s as time since last refresh not above interval",t);return}let i=await this._generateRandomPeerId(t);this.log("starting refreshing cpl %s with key %p (routing table size was %s)",t,i,this.routingTable.size);let o=await j1(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>ii&&(t=ii);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=Zr(2),n=(r[1]<<8)+r[0],i=await this._makePeerId(this.routingTable.kb.localNodeId,n,t);return kr(i)}async _makePeerId(t,r,n){if(n>ii)throw new Error(`Cannot generate peer ID for common prefix length greater than ${ii}`);let a=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint16(0,!1)^32768>>n,s=65535<<16-(n+1),c=a&s|r&~s,u=q5[c],f=new ArrayBuffer(34),l=new DataView(f,0,f.byteLength);return l.setUint8(0,St.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 si=class{providers;log;constructor(t,r){this.log=t.logger.forComponent("libp2p:kad-dht: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 P("Missing key","ERR_MISSING_KEY");let n;try{n=re.decode(r.key)}catch{throw new P("Invalid CID","ERR_INVALID_CID")}(r.providerPeers==null||r.providerPeers.length===0)&&this.log.error("no providers found in message"),await Promise.all(r.providerPeers.map(async i=>{if(!i.id.equals(t)){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=>o.toString())),await this.providers.addProvider(n,i.id)}))}};var ai=class{peerRouting;lan;peerId;addressManager;log;constructor(t,r){let{peerRouting:n,lan:i}=r;this.log=t.logger.forComponent("libp2p:kad-dht:rpc:handlers:find-node"),this.peerId=t.peerId,this.addressManager=t.addressManager,this.peerRouting=n,this.lan=!!i}async handle(t,r){this.log("incoming request from %p for peers closer to %b",t,r.key);let n=[];ht(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),n=n.map(this.lan?bn:vn).filter(({multiaddrs:o})=>o.length);let i=new vt(r.type,new Uint8Array(0),r.clusterLevel);return n.length>0?i.closerPeers=n:this.log("could not find any peers closer to %b than %p",r.key,t),i}};var ci=class{peerRouting;providers;lan;peerStore;log;constructor(t,r){let{peerRouting:n,providers:i,lan:o}=r;this.log=t.logger.forComponent("libp2p:kad-dht:rpc:handlers:get-providers"),this.peerStore=t.peerStore,this.peerRouting=n,this.providers=i,this.lan=!!o}async handle(t,r){let n;try{n=re.decode(r.key)}catch{throw new P("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)]),a=await this._getPeers(i),s=await this._getPeers(o.map(({id:u})=>u)),c=new vt(r.type,r.key,r.clusterLevel);return a.length>0&&(c.providerPeers=a),s.length>0&&(c.closerPeers=s),this.log("got %s providers %s closerPeers",a.length,s.length),c}async _getAddresses(t){return[]}async _getPeers(t){let r=[],n=this.lan?bn:vn;for(let i of t)try{let o=await this.peerStore.get(i),a=n({id:i,multiaddrs:o.addresses.map(({multiaddr:s})=>s)});a.multiaddrs.length>0&&r.push(a)}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}return r}};var ui=class{peerStore;datastore;peerRouting;log;constructor(t,r){this.log=t.logger.forComponent("libp2p:kad-dht: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 P("Invalid key","ERR_INVALID_KEY");let i=new vt(Pt.GET_VALUE,n,r.clusterLevel);if(La(n)){this.log("is public key");let s=Na(n),c;try{let u=await this.peerStore.get(s);if(u.id.publicKey==null)throw new P("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 Mt(n,c,new Date),i}let[o,a]=await Promise.all([this._checkLocalDatastore(n),this.peerRouting.getCloserPeersOffline(r.key,t)]);return o!=null&&(this.log("had record for %b in local datastore",n),i.record=o),a.length>0&&(this.log("had %s closer peers in routing table",a.length),i.closerPeers=a),i}async _checkLocalDatastore(t){this.log("checkLocalDatastore looking for %b",t);let r=Xe(t),n;try{n=await this.datastore.get(r)}catch(o){if(o.code==="ERR_NOT_FOUND")return;throw o}let i=Mt.deserialize(n);if(i==null)throw new P("Invalid record","ERR_INVALID_RECORD");if(i.timeReceived==null||Date.now()-i.timeReceived.getTime()>1296e5){await this.datastore.delete(r);return}return i}};var fi=class{log;constructor(t){this.log=t.logger.forComponent("libp2p:kad-dht:rpc:handlers:ping")}async handle(t,r){return this.log("ping from %p",t),r}};var li=class{components;validators;log;constructor(t,r){let{validators:n}=r;this.components=t,this.log=t.logger.forComponent("libp2p:kad-dht:rpc:handlers:put-value"),this.validators=n}async handle(t,r){let n=r.key;this.log("%p asked us to store value for key %b",t,n);let i=r.record;if(i==null){let o=`Empty record from: ${t.toString()}`;throw this.log.error(o),new P(o,"ERR_EMPTY_RECORD")}try{await mn(this.validators,i),i.timeReceived=new Date;let o=Xe(i.key);await this.components.datastore.put(o,i.serialize().subarray()),this.log("put record for %b into datastore under key %k",n,o)}catch(o){this.log("did not put record for key %b into datastore %o",n,o)}return r}};var hi=class{handlers;routingTable;log;constructor(t,r){let{providers:n,peerRouting:i,validators:o,lan:a}=r;this.log=t.logger.forComponent("libp2p:kad-dht:rpc"),this.routingTable=r.routingTable,this.handlers={[Pt.GET_VALUE]:new ui(t,{peerRouting:i}),[Pt.PUT_VALUE]:new li(t,{validators:o}),[Pt.FIND_NODE]:new ai(t,{peerRouting:i,lan:a}),[Pt.ADD_PROVIDER]:new si(t,{providers:n}),[Pt.GET_PROVIDERS]:new ci(t,{peerRouting:i,providers:n,lan:a}),[Pt.PING]:new fi(t)}}async handleMessage(t,r){try{await this.routingTable.add(t)}catch(i){this.log.error("Failed to update the kbucket store",i)}let n=this.handlers[r.type];if(n==null){this.log.error(`no handler found for message type: ${r.type}`);return}return n.handle(t,r)}onIncomingStream(t){Promise.resolve().then(async()=>{let{stream:r,connection:n}=t,i=n.remotePeer;try{await this.routingTable.add(i)}catch(a){this.log.error(a)}let o=this;await hr(r,a=>t0(a),async function*(a){for await(let s of a){let c=vt.deserialize(s);o.log("incoming %s from %p",c.type,i);let u=await o.handleMessage(i,c);u!=null&&(yield u.serialize())}},a=>Fr(a),r)}).catch(r=>{this.log.error(r)})}};var di=class extends Xt{log;components;protocol;running;registrarId;constructor(t,r){super();let{protocol:n,lan:i}=r;this.components=t,this.log=t.logger.forComponent(`libp2p:kad-dht:topology-listener:${i?"lan":"wan"}`),this.running=!1,this.protocol=n}isStarted(){return this.running}async start(){this.running||(this.running=!0,this.registrarId=await this.components.registrar.register(this.protocol,{onConnect:t=>{this.log("observed peer %p with protocol %s",t,this.protocol),this.dispatchEvent(new Rt("peer",{detail:t}))}}))}async stop(){this.running=!1,this.registrarId!=null&&(this.components.registrar.unregister(this.registrarId),this.registrarId=void 0)}};var l9=32,h9=64,B0=class extends Xt{protocol;routingTable;providers;network;peerRouting;components;log;running;kBucketSize;clientMode;lan;validators;selectors;queryManager;contentFetching;contentRouting;routingTableRefresh;rpc;topologyListener;querySelf;maxInboundStreams;maxOutboundStreams;constructor(t,r){super();let{kBucketSize:n,clientMode:i,validators:o,selectors:a,querySelfInterval:s,lan:c,protocolPrefix:u,pingTimeout:f,pingConcurrency:l,maxInboundStreams:p,maxOutboundStreams:d,providers:h}=r;this.running=!1,this.components=t,this.lan=!!c,this.log=t.logger.forComponent(`libp2p:kad-dht:${c===!0?"lan":"wan"}`),this.protocol=`${u??S2}${c===!0?E2:""}${I2}`,this.kBucketSize=n??20,this.clientMode=i??!0,this.maxInboundStreams=p??l9,this.maxOutboundStreams=d??h9,this.routingTable=new ni(t,{kBucketSize:n,lan:this.lan,pingTimeout:f,pingConcurrency:l,protocol:this.protocol}),this.providers=new Z1(t,h??{}),this.validators={..._a,...o},this.selectors={...Ta,...a},this.network=new J0(t,{protocol:this.protocol,lan:this.lan});let y=qt();r.allowQueryWithZeroPeers===!0&&y.resolve(),this.queryManager=new J1(t,{disjointPaths:Math.ceil(this.kBucketSize/2),lan:c,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.peerRouting=new M1(t,{routingTable:this.routingTable,network:this.network,validators:this.validators,queryManager:this.queryManager,lan:this.lan}),this.contentFetching=new H0(t,{validators:this.validators,selectors:this.selectors,peerRouting:this.peerRouting,queryManager:this.queryManager,network:this.network,lan:this.lan}),this.contentRouting=new $0(t,{network:this.network,peerRouting:this.peerRouting,queryManager:this.queryManager,routingTable:this.routingTable,providers:this.providers,lan:this.lan}),this.routingTableRefresh=new oi(t,{peerRouting:this.peerRouting,routingTable:this.routingTable,lan:this.lan}),this.rpc=new hi(t,{routingTable:this.routingTable,providers:this.providers,peerRouting:this.peerRouting,validators:this.validators,lan:this.lan}),this.topologyListener=new di(t,{protocol:this.protocol,lan:this.lan}),this.querySelf=new ei(t,{peerRouting:this.peerRouting,interval:s,initialInterval:r.initialQuerySelfInterval,lan:this.lan,initialQuerySelfHasRun:y,routingTable:this.routingTable}),this.network.addEventListener("peer",g=>{let m=g.detail;this.onPeerConnect(m).catch(x=>{this.log.error("could not add %p to routing table",m.id,x)}),this.dispatchEvent(new Rt("peer",{detail:m}))}),this.topologyListener.addEventListener("peer",g=>{let m=g.detail;Promise.resolve().then(async()=>{let x=await this.components.peerStore.get(m),v={id:m,multiaddrs:x.addresses.map(({multiaddr:T})=>T),protocols:x.protocols};await this.onPeerConnect(v)}).catch(x=>{this.log.error("could not add %p to routing table",m,x)})})}async onPeerConnect(t){if(this.log("peer %p connected",t.id),this.lan?t=bn(t):t=vn(t),t.multiaddrs.length===0){this.log("ignoring %p as they do not have any %s addresses in %s",t.id,this.lan?"private":"public",t.multiaddrs.map(r=>r.toString()));return}try{await this.routingTable.add(t.id)}catch(r){this.log.error("could not add %p to routing table",t.id,r)}}isStarted(){return this.running}async getMode(){return this.clientMode?"client":"server"}async setMode(t){await this.components.registrar.unhandle(this.protocol),t==="client"?(this.log("enabling client mode"),this.clientMode=!0):(this.log("enabling server mode"),this.clientMode=!1,await this.components.registrar.handle(this.protocol,this.rpc.onIncomingStream.bind(this.rpc),{maxInboundStreams:this.maxInboundStreams,maxOutboundStreams:this.maxOutboundStreams}))}async start(){this.running=!0,await this.setMode(this.clientMode?"client":"server"),await Promise.all([this.providers.start(),this.queryManager.start(),this.network.start(),this.routingTable.start(),this.topologyListener.start()]),this.querySelf.start(),await this.routingTableRefresh.start()}async stop(){this.running=!1,this.querySelf.stop(),await Promise.all([this.providers.stop(),this.queryManager.stop(),this.network.stop(),this.routingTable.stop(),this.routingTableRefresh.stop(),this.topologyListener.stop()])}async*put(t,r,n={}){yield*this.contentFetching.put(t,r,n)}async*get(t,r={}){yield*this.contentFetching.get(t,r)}async*provide(t,r={}){yield*this.contentRouting.provide(t,this.components.addressManager.getAddresses(),r)}async*findProviders(t,r={}){yield*this.contentRouting.findProviders(t,r)}async*findPeer(t,r={}){yield*this.peerRouting.findPeer(t,r)}async*getClosestPeers(t,r={}){yield*this.peerRouting.getClosestPeers(t,r)}async refreshRoutingTable(){this.routingTableRefresh.refreshTable(!0)}};var $s=class{dht;constructor(t){this.dht=t}async provide(t,r={}){await mi(this.dht.provide(t,r))}async*findProviders(t,r={}){for await(let n of this.dht.findProviders(t,r))n.name==="PROVIDER"&&(yield*n.providers)}async put(t,r,n){await mi(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 P("Not found","ERR_NOT_FOUND")}},Gs=class{dht;constructor(t){this.dht=t}async findPeer(t,r={}){for await(let n of this.dht.findPeer(t,r))if(n.name==="FINAL_PEER")return n.peer;throw new P("Not found","ERR_NOT_FOUND")}async*getClosestPeers(t,r={}){for await(let n of this.dht.getClosestPeers(t,r))n.name==="FINAL_PEER"&&(yield n.peer)}},d9=290,p9=54,y9=55,g9=56,m9=4,x9=41;function v9(e){let t=e.stringTuples();for(let r of t)if(r[0]===d9)return!1;if(t[0][0]===p9||t[0][0]===y9||t[0][0]===g9)return!0;if(t[0][0]===m9||t[0][0]===x9){let r=Vn(`${t[0][1]}`);return r==null||!r}return!1}var pi=class extends Xt{wan;lan;components;contentRouting;peerRouting;log;constructor(t,r={}){super(),this.components=t,this.log=t.logger.forComponent("libp2p:kad-dht"),this.wan=new B0(t,{protocolPrefix:"/ipfs",...r,lan:!1}),this.lan=new B0(t,{protocolPrefix:"/ipfs",...r,clientMode:!1,lan:!0}),this.contentRouting=new $s(this),this.peerRouting=new Gs(this),this.wan.addEventListener("peer",n=>{this.dispatchEvent(new Rt("peer",{detail:n.detail}))}),this.lan.addEventListener("peer",n=>{this.dispatchEvent(new Rt("peer",{detail:n.detail}))}),r.clientMode==null&&t.events.addEventListener("self:peer:update",n=>{this.log("received update of self-peer info");let i=n.detail.peer.addresses.some(({multiaddr:o})=>v9(o));this.getMode().then(async o=>{i&&o==="client"?await this.setMode("server"):o==="server"&&!i&&await this.setMode("client")}).catch(o=>{this.log.error("error setting dht server mode",o)})})}[Symbol.toStringTag]="@libp2p/dual-kad-dht";get[i2](){return this.contentRouting}get[a2](){return this.peerRouting}get[o2](){return this}isStarted(){return this.wan.isStarted()&&this.lan.isStarted()}async getMode(){return this.wan.getMode()}async setMode(t){await this.wan.setMode(t)}async start(){await Promise.all([this.lan.start(),this.wan.start()])}async stop(){await Promise.all([this.lan.stop(),this.wan.stop()])}async*put(t,r,n={}){for await(let i of ve(this.lan.put(t,r,n),this.wan.put(t,r,n)))yield i}async*get(t,r={}){let n=!1,i=!1;for await(let o of ve(this.lan.get(t,r),this.wan.get(t,r)))yield o,o.name==="DIAL_PEER"&&(n=!0),o.name==="VALUE"&&(n=!0,o.value!=null&&(i=!0)),o.name==="SEND_QUERY"&&(n=!0);if(!n)throw new P("No peers found in routing table!","ERR_NO_PEERS_IN_ROUTING_TABLE");i||(yield ne({from:this.components.peerId,error:new P("Not found","ERR_NOT_FOUND")},r))}async*provide(t,r={}){let n=0,i=0,o=[],a=[this.lan];await this.wan.getMode()==="server"&&a.push(this.wan);for await(let s of ve(...a.map(c=>c.provide(t,r))))yield s,s.name==="SEND_QUERY"&&n++,s.name==="QUERY_ERROR"&&o.push(s.error),s.name==="PEER_RESPONSE"&&s.messageName==="ADD_PROVIDER"&&(this.log("sent provider record for %s to %p",t,s.from),i++);if(i===0)throw o.length>0?new P(`Failed to provide to ${o.length} of ${n} peers`,"ERR_PROVIDES_FAILED",{errors:o}):new P("Failed to provide - no peers found","ERR_PROVIDES_FAILED")}async*findProviders(t,r={}){yield*ve(this.lan.findProviders(t,r),this.wan.findProviders(t,r))}async*findPeer(t,r={}){let n=!1;for await(let i of ve(this.lan.findPeer(t,r),this.wan.findPeer(t,r)))yield i,(i.name==="SEND_QUERY"||i.name==="FINAL_PEER")&&(n=!0);if(!n)throw new P("Peer lookup failed","ERR_LOOKUP_FAILED")}async*getClosestPeers(t,r={}){yield*ve(this.lan.getClosestPeers(t,r),this.wan.getClosestPeers(t,r))}async refreshRoutingTable(){await Promise.all([this.lan.refreshRoutingTable(),this.wan.refreshRoutingTable()])}};var Qs;(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"})(Qs||(Qs={}));var Ys;(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"})(Ys||(Ys={}));function b9(e){return t=>new pi(t,e)}return r8(w9);})();
|
|
27
27
|
/*! Bundled license information:
|
|
28
28
|
|
|
29
29
|
@noble/hashes/esm/utils.js:
|