@imtbl/sdk 0.41.1 → 0.42.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.
@@ -6,7 +6,7 @@
6
6
  * @author Chen, Yi-Cyuan [emn178@gmail.com]
7
7
  * @copyright Chen, Yi-Cyuan 2015-2018
8
8
  * @license MIT
9
- */!function(e){!function(){var t="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self;!r.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&{node:"20.10.0",acorn:"8.10.0",ada:"2.7.2",ares:"1.20.1",base64:"0.5.0",brotli:"1.0.9",cjs_module_lexer:"1.2.2",cldr:"43.1",icu:"73.2",llhttp:"8.1.1",modules:"115",napi:"9",nghttp2:"1.57.0",nghttp3:"0.7.0",ngtcp2:"0.8.1",openssl:"3.0.12+quic",simdutf:"3.2.18",tz:"2023c",undici:"5.26.4",unicode:"15.0",uv:"1.46.0",uvwasi:"0.0.19",v8:"11.3.244.8-node.25",zlib:"1.2.13.1-motley"}&&process.versions.node?r=yt:i&&(r=self);var a=!r.JS_SHA3_NO_COMMON_JS&&e.exports,o=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),u=[4,1024,262144,67108864],c=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],f=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],h={128:168,256:136};!r.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!o||!r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,n){return function(r){return new S(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new S(e,t,i).update(r)[n]()}},g=function(e,t,n){return function(t,r,i,a){return A["cshake"+e].update(t,r,i,a)[n]()}},b=function(e,t,n){return function(t,r,i,a){return A["kmac"+e].update(t,r,i,a)[n]()}},v=function(e,t,n,r){for(var i=0;i<p.length;++i){var a=p[i];e[a]=t(n,r,a)}return e},T=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new S(e,t,e)},n.update=function(e){return n.create().update(e)},v(n,m,e,t)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:T},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:T},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(e,t){var n=y(e,t,"hex");return n.create=function(n){return new S(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},v(n,y,e,t)}},{name:"cshake",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=g(e,0,"hex");return r.create=function(r,i,a){return i||a?new S(e,t,r).bytepad([i,a],n):A["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},v(r,g,e,t)}},{name:"kmac",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=b(e,0,"hex");return r.create=function(r,i,a){return new N(e,t,i).bytepad(["KMAC",a],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},v(r,b,e,t)}}],A={},E=[],_=0;_<w.length;++_)for(var I=w[_],R=I.bits,C=0;C<R.length;++C){var O=I.name+"_"+R[C];if(E.push(O),A[O]=I.createMethod(R[C],I.padding),"sha3"!==I.name){var k=I.name+R[C];E.push(k),A[k]=A[O]}}function S(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function N(e,t,n){S.call(this,e,t,n)}S.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,a,s=this.blocks,u=this.byteCount,l=e.length,d=this.blockCount,f=0,p=this.s;f<l;){if(this.reset)for(this.reset=!1,s[0]=this.block,i=1;i<d+1;++i)s[i]=0;if(n)for(i=this.start;f<l&&i<u;++f)s[i>>2]|=e[f]<<c[3&i++];else for(i=this.start;f<l&&i<u;++f)(a=e.charCodeAt(f))<128?s[i>>2]|=a<<c[3&i++]:a<2048?(s[i>>2]|=(192|a>>6)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):a<55296||a>=57344?(s[i>>2]|=(224|a>>12)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++f)),s[i>>2]|=(240|a>>18)<<c[3&i++],s[i>>2]|=(128|a>>12&63)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=s[d],i=0;i<d;++i)p[i]^=s[i];x(p),this.reset=!0}else this.start=i}return this},S.prototype.encode=function(e,t){var n=255&e,r=1,i=[n];for(n=255&(e>>=8);n>0;)i.unshift(n),n=255&(e>>=8),++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},S.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0,a=e.length;if(n)i=a;else for(var s=0;s<e.length;++s){var u=e.charCodeAt(s);u<128?i+=1:u<2048?i+=2:u<55296||u>=57344?i+=3:(u=65536+((1023&u)<<10|1023&e.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(e),i},S.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=t-n%t,a=[];return a.length=i,this.update(a),this},S.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];x(r)}},S.prototype.toString=S.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,u="";o<r;){for(a=0;a<t&&o<r;++a,++o)e=n[a],u+=s[e>>4&15]+s[15&e]+s[e>>12&15]+s[e>>8&15]+s[e>>20&15]+s[e>>16&15]+s[e>>28&15]+s[e>>24&15];o%t==0&&(x(n),a=0)}return i&&(e=n[a],u+=s[e>>4&15]+s[15&e],i>1&&(u+=s[e>>12&15]+s[e>>8&15]),i>2&&(u+=s[e>>20&15]+s[e>>16&15])),u},S.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,s=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(e);o<r;){for(a=0;a<t&&o<r;++a,++o)u[o]=n[a];o%t==0&&x(n)}return i&&(u[a]=n[a],e=e.slice(0,s)),e},S.prototype.buffer=S.prototype.arrayBuffer,S.prototype.digest=S.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,a=this.extraBytes,o=0,s=0,u=[];s<i;){for(o=0;o<n&&s<i;++o,++s)e=s<<2,t=r[o],u[e]=255&t,u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;s%n==0&&x(r)}return a&&(e=s<<2,t=r[o],u[e]=255&t,a>1&&(u[e+1]=t>>8&255),a>2&&(u[e+2]=t>>16&255)),u},N.prototype=new S,N.prototype.finalize=function(){return this.encode(this.outputBits,!0),S.prototype.finalize.call(this)};var x=function(e){var t,n,r,i,a,o,s,u,c,d,f,p,h,m,y,g,b,v,T,w,A,E,_,I,R,C,O,k,S,N,x,P,M,B,D,F,L,U,q,j,G,H,z,W,V,K,X,J,Y,Q,$,Z,ee,te,ne,re,ie,ae,oe,se,ue,ce,le;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],a=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],u=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],f=e[7]^e[17]^e[27]^e[37]^e[47],t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(o<<1|s>>>31),n=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|o>>>31),e[0]^=t,e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,t=i^(u<<1|c>>>31),n=a^(c<<1|u>>>31),e[2]^=t,e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,t=o^(d<<1|f>>>31),n=s^(f<<1|d>>>31),e[4]^=t,e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,t=u^(p<<1|h>>>31),n=c^(h<<1|p>>>31),e[6]^=t,e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,t=d^(i<<1|a>>>31),n=f^(a<<1|i>>>31),e[8]^=t,e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,m=e[0],y=e[1],K=e[11]<<4|e[10]>>>28,X=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,S=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,z=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,g=e[13]<<12|e[12]>>>20,b=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,N=e[33]<<13|e[32]>>>19,x=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,le=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,v=e[25]<<11|e[24]>>>21,T=e[24]<<11|e[25]>>>21,Q=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,P=e[45]<<29|e[44]>>>3,M=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,R=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,q=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,A=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,W=e[8]<<27|e[9]>>>5,V=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,ae=e[29]<<7|e[28]>>>25,oe=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,G=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,_=e[49]<<14|e[48]>>>18,e[0]=m^~g&v,e[1]=y^~b&T,e[10]=I^~C&k,e[11]=R^~O&S,e[20]=B^~F&U,e[21]=D^~L&q,e[30]=W^~K&J,e[31]=V^~X&Y,e[40]=te^~re&ae,e[41]=ne^~ie&oe,e[2]=g^~v&w,e[3]=b^~T&A,e[12]=C^~k&N,e[13]=O^~S&x,e[22]=F^~U&j,e[23]=L^~q&G,e[32]=K^~J&Q,e[33]=X^~Y&$,e[42]=re^~ae&se,e[43]=ie^~oe&ue,e[4]=v^~w&E,e[5]=T^~A&_,e[14]=k^~N&P,e[15]=S^~x&M,e[24]=U^~j&H,e[25]=q^~G&z,e[34]=J^~Q&Z,e[35]=Y^~$&ee,e[44]=ae^~se&ce,e[45]=oe^~ue&le,e[6]=w^~E&m,e[7]=A^~_&y,e[16]=N^~P&I,e[17]=x^~M&R,e[26]=j^~H&B,e[27]=G^~z&D,e[36]=Q^~Z&W,e[37]=$^~ee&V,e[46]=se^~ce&te,e[47]=ue^~le&ne,e[8]=E^~m&g,e[9]=_^~y&b,e[18]=P^~I&C,e[19]=M^~R&O,e[28]=H^~B&F,e[29]=z^~D&L,e[38]=Z^~W&K,e[39]=ee^~V&X,e[48]=ce^~te&re,e[49]=le^~ne&ie,e[0]^=l[r],e[1]^=l[r+1]};if(a)e.exports=A;else for(_=0;_<E.length;++_)r[E[_]]=A[E[_]]}()}(pi);var hi=gt(pi.exports);function mi(e){return"0x"+hi.keccak_256(qn(e))}var yi=Object.freeze({__proto__:null,keccak256:mi});const gi=new xn("rlp/5.7.0");function bi(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function vi(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function Ti(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(Ti(e))})),t.length<=55)return t.unshift(192+t.length),t;const n=bi(t.length);return n.unshift(247+n.length),n.concat(t)}Fn(e)||gi.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(qn(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const n=bi(t.length);return n.unshift(183+n.length),n.concat(t)}function wi(e){return Vn(Ti(e))}function Ai(e,t,n,r){const i=[];for(;n<t+1+r;){const a=Ei(e,n);i.push(a.result),(n+=a.consumed)>t+1+r&&gi.throwError("child data too short",xn.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function Ei(e,t){if(0===e.length&&gi.throwError("data too short",xn.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&gi.throwError("data short segment too short",xn.errors.BUFFER_OVERRUN,{});const r=vi(e,t+1,n);return t+1+n+r>e.length&&gi.throwError("data long segment too short",xn.errors.BUFFER_OVERRUN,{}),Ai(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&gi.throwError("data array too short",xn.errors.BUFFER_OVERRUN,{}),Ai(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&gi.throwError("data array too short",xn.errors.BUFFER_OVERRUN,{});const r=vi(e,t+1,n);t+1+n+r>e.length&&gi.throwError("data array too short",xn.errors.BUFFER_OVERRUN,{});return{consumed:1+n+r,result:Vn(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;t+1+n>e.length&&gi.throwError("data too short",xn.errors.BUFFER_OVERRUN,{});return{consumed:1+n,result:Vn(e.slice(t+1,t+1+n))}}return{consumed:1,result:Vn(e[t])}}function _i(e){const t=qn(e),n=Ei(t,0);return n.consumed!==t.length&&gi.throwArgumentError("invalid rlp data","data",e),n.result}var Ii=Object.freeze({__proto__:null,decode:_i,encode:wi});const Ri=new xn("address/5.7.0");function Ci(e){zn(e,20)||Ri.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);const r=qn(mi(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&r[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Oi={};for(let e=0;e<10;e++)Oi[String(e)]=String(e);for(let e=0;e<26;e++)Oi[String.fromCharCode(65+e)]=String(10+e);const ki=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Si(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>Oi[e])).join("");for(;t.length>=ki;){let e=t.substring(0,ki);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n="0"+n;return n}function Ni(e){let t=null;if("string"!=typeof e&&Ri.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Ci(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Ri.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==Si(e)&&Ri.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new rr(n,36).toString(16);t.length<40;)t="0"+t;t=Ci("0x"+t)}else Ri.throwArgumentError("invalid address","address",e);var n;return t}function xi(e){try{return Ni(e),!0}catch(e){}return!1}function Pi(e){let t=(n=Ni(e).substring(2),new rr(n,16).toString(36)).toUpperCase();for(var n;t.length<30;)t="0"+t;return"XE"+Si("XE00"+t)+t}function Mi(e){let t=null;try{t=Ni(e.from)}catch(t){Ri.throwArgumentError("missing from address","transaction",e)}return Ni(Xn(mi(wi([t,Gn(qn(ur.from(e.nonce).toHexString()))])),12))}function Bi(e,t,n){return 32!==Kn(t)&&Ri.throwArgumentError("salt must be 32 bytes","salt",t),32!==Kn(n)&&Ri.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",n),Ni(Xn(mi(jn(["0xff",Ni(e),t,n])),12))}var Di=Object.freeze({__proto__:null,getAddress:Ni,getContractAddress:Mi,getCreate2Address:Bi,getIcapAddress:Pi,isAddress:xi});let Fi=class extends di{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=Ni(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return Ni($n(e.readValue().toHexString(),20))}},Li=class extends di{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}};const Ui=new xn(Ur);function qi(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let e={};r=t.map((t=>{const r=t.localName;return r||Ui.throwError("cannot encode object for signature with missing names",xn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&Ui.throwError("cannot encode object for signature with duplicate names",xn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]}))}else Ui.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&Ui.throwArgumentError("types/value length mismatch","tuple",n);let i=new fi(e.wordSize),a=new fi(e.wordSize),o=[];t.forEach(((e,t)=>{let n=r[t];if(e.dynamic){let t=a.length;e.encode(a,n);let r=i.writeUpdatableValue();o.push((e=>{r(e+t)}))}else e.encode(i,n)})),o.forEach((e=>{e(i.length)}));let s=e.appendWriter(i);return s+=e.appendWriter(a),s}function ji(e,t){let n=[],r=e.subReader(0);t.forEach((t=>{let i=null;if(t.dynamic){let n=e.readValue(),a=r.subReader(n.toNumber());try{i=t.decode(a)}catch(e){if(e.code===xn.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===xn.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&n.push(i)}));const i=t.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});t.forEach(((e,t)=>{let r=e.localName;if(!r||1!==i[r])return;if("length"===r&&(r="_length"),null!=n[r])return;const a=n[t];a instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw a}}):n[r]=a}));for(let e=0;e<n.length;e++){const t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}let Gi=class extends di{constructor(e,t,n){super("array",e.type+"["+(t>=0?t:"")+"]",n,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let n=this.length;-1===n&&(n=t.length,e.writeValue(t.length)),Ui.checkArgumentCount(t.length,n,"coder array"+(this.localName?" "+this.localName:""));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return qi(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&Ui.throwError("insufficient data length",xn.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new Li(this.coder));return e.coerce(this.name,ji(e,n))}},Hi=class extends di{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}},zi=class extends di{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=qn(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}},Wi=class extends zi{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Vn(super.decode(e)))}},Vi=class extends di{constructor(e,t){let n="bytes"+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let n=qn(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,Vn(e.readBytes(this.size)))}},Ki=class extends di{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}};const Xi="0x0000000000000000000000000000000000000000",Ji=ur.from(-1),Yi=ur.from(0),Qi=ur.from(1),$i=ur.from(2),Zi=ur.from("1000000000000000000"),ea=ur.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ta=ur.from("-0x8000000000000000000000000000000000000000000000000000000000000000"),na=ur.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ra="0x0000000000000000000000000000000000000000000000000000000000000000";var ia=Object.freeze({__proto__:null,AddressZero:Xi,EtherSymbol:"Ξ",HashZero:ra,MaxInt256:na,MaxUint256:ea,MinInt256:ta,NegativeOne:Ji,One:Qi,Two:$i,WeiPerEther:Zi,Zero:Yi});let aa=class extends di{constructor(e,t,n){const r=(t?"int":"uint")+8*e;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=ur.from(t),r=ea.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(Qi).mul(Ji)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Yi)||n.gt(r.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return n=n.toTwos(8*this.size).mask(8*this.size),this.signed&&(n=n.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}};const oa=new xn("strings/5.7.0");var sa,ua;function ca(e,t,n,r,i){if(e===ua.BAD_PREFIX||e===ua.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===ua.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(sa||(sa={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(ua||(ua={}));const la=Object.freeze({error:function(e,t,n,r,i){return oa.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:ca,replace:function(e,t,n,r,i){return e===ua.OVERLONG?(r.push(i),0):(r.push(65533),ca(e,t,n))}});function da(e,t){null==t&&(t=la.error),e=qn(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let a=null,o=null;if(192==(224&i))a=1,o=127;else if(224==(240&i))a=2,o=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?ua.UNEXPECTED_CONTINUE:ua.BAD_PREFIX,r-1,e,n);continue}a=3,o=65535}if(r-1+a>=e.length){r+=t(ua.OVERRUN,r-1,e,n);continue}let s=i&(1<<8-a-1)-1;for(let i=0;i<a;i++){let i=e[r];if(128!=(192&i)){r+=t(ua.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|63&i,r++}null!==s&&(s>1114111?r+=t(ua.OUT_OF_RANGE,r-1-a,e,n,s):s>=55296&&s<=57343?r+=t(ua.UTF16_SURROGATE,r-1-a,e,n,s):s<=o?r+=t(ua.OVERLONG,r-1-a,e,n,s):n.push(s))}return n}function fa(e,t=sa.current){t!=sa.current&&(oa.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const a=65536+((1023&r)<<10)+(1023&i);n.push(a>>18|240),n.push(a>>12&63|128),n.push(a>>6&63|128),n.push(63&a|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return qn(n)}function pa(e){const t="0000"+e.toString(16);return"\\u"+t.substring(t.length-4)}function ha(e,t){return'"'+da(e,t).map((e=>{if(e<256){switch(e){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(e>=32&&e<127)return String.fromCharCode(e)}return e<=65535?pa(e):pa(55296+((e-=65536)>>10&1023))+pa(56320+(1023&e))})).join("")+'"'}function ma(e){return e.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("")}function ya(e,t){return ma(da(e,t))}function ga(e,t=sa.current){return da(fa(e,t))}function ba(e){const t=fa(e);if(t.length>31)throw new Error("bytes32 string must be less than 32 bytes");return Vn(jn([t,ra]).slice(0,32))}function va(e){const t=qn(e);if(32!==t.length)throw new Error("invalid bytes32 - not 32 bytes long");if(0!==t[31])throw new Error("invalid bytes32 string - no null terminator");let n=31;for(;0===t[n-1];)n--;return ya(t.slice(0,n))}function Ta(e,t){t||(t=function(e){return[parseInt(e,16)]});let n=0,r={};return e.split(",").forEach((e=>{let i=e.split(":");n+=parseInt(i[0],16),r[n]=t(i[1])})),r}function wa(e){let t=0;return e.split(",").map((e=>{let n=e.split("-");1===n.length?n[1]="0":""===n[1]&&(n[1]="1");let r=t+parseInt(n[0],16);return t=parseInt(n[1],16),{l:r,h:t}}))}function Aa(e,t){let n=0;for(let r=0;r<t.length;r++){let i=t[r];if(n+=i.l,e>=n&&e<=n+i.h&&(e-n)%(i.d||1)==0){if(i.e&&-1!==i.e.indexOf(e-n))continue;return i}}return null}const Ea=wa("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),_a="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((e=>parseInt(e,16))),Ia=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],Ra=Ta("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),Ca=Ta("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),Oa=Ta("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",(function(e){if(e.length%4!=0)throw new Error("bad data");let t=[];for(let n=0;n<e.length;n+=4)t.push(parseInt(e.substring(n,n+4),16));return t})),ka=wa("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001");function Sa(e){if(e.match(/^[a-z0-9-]*$/i)&&e.length<=59)return e.toLowerCase();let t=ga(e);var n;n=t.map((e=>{if(_a.indexOf(e)>=0)return[];if(e>=65024&&e<=65039)return[];let t=function(e){let t=Aa(e,Ia);if(t)return[e+t.s];let n=Ra[e];if(n)return n;let r=Ca[e];return r?[e+r[0]]:Oa[e]||null}(e);return t||[e]})),t=n.reduce(((e,t)=>(t.forEach((t=>{e.push(t)})),e)),[]),t=ga(ma(t),sa.NFKC),t.forEach((e=>{if(Aa(e,ka))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")})),t.forEach((e=>{if(Aa(e,Ea))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")}));let r=ma(t);if("-"===r.substring(0,1)||"--"===r.substring(2,4)||"-"===r.substring(r.length-1))throw new Error("invalid hyphen");return r}var Na=Object.freeze({__proto__:null,get UnicodeNormalizationForm(){return sa},Utf8ErrorFuncs:la,get Utf8ErrorReason(){return ua},_toEscapedUtf8String:ha,formatBytes32String:ba,nameprep:Sa,parseBytes32String:va,toUtf8Bytes:fa,toUtf8CodePoints:ga,toUtf8String:ya});let xa=class extends zi{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,fa(t))}decode(e){return ya(super.decode(e))}},Pa=class extends di{constructor(e,t){let n=!1;const r=[];e.forEach((e=>{e.dynamic&&(n=!0),r.push(e.type)}));super("tuple","tuple("+r.join(",")+")",t,n),this.coders=e}defaultValue(){const e=[];this.coders.forEach((t=>{e.push(t.defaultValue())}));const t=this.coders.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});return this.coders.forEach(((n,r)=>{let i=n.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[r]))})),Object.freeze(e)}encode(e,t){return qi(e,this.coders,t)}decode(e){return e.coerce(this.name,ji(e,this.coders))}};const Ma=new xn(Ur),Ba=new RegExp(/^bytes([0-9]*)$/),Da=new RegExp(/^(u?int)([0-9]*)$/);let Fa=class{constructor(e){Or(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new Fi(e.name);case"bool":return new Hi(e.name);case"string":return new xa(e.name);case"bytes":return new Wi(e.name);case"array":return new Gi(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Pa((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new Ki(e.name)}let t=e.type.match(Da);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Ma.throwArgumentError("invalid "+t[1]+" bit length","param",e),new aa(n/8,"int"===t[1],e.name)}if(t=e.type.match(Ba),t){let n=parseInt(t[1]);return(0===n||n>32)&&Ma.throwArgumentError("invalid bytes length","param",e),new Vi(n,e.name)}return Ma.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new class e{constructor(e,t,n,r){Or(this,"_data",qn(e)),Or(this,"wordSize",t||32),Or(this,"_coerceFunc",n),Or(this,"allowLoose",r),this._offset=0}get data(){return Vn(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(t,n){return this._coerceFunc?this._coerceFunc(t,n):e.coerce(t,n)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:ci.throwError("data out-of-bounds",xn.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(t){return new e(this._data.slice(this._offset+t),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return ur.from(this.readBytes(this.wordSize))}}(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new fi(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(Xr.from(e))));return new Pa(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Ma.throwError("types/values length mismatch",xn.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map((e=>this._getCoder(Xr.from(e)))),r=new Pa(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map((e=>this._getCoder(Xr.from(e))));return new Pa(r,"_").decode(this._getReader(qn(t),n))}};const La=new Fa;function Ua(e){return mi(fa(e))}const qa="hash/5.7.0";function ja(e){e=atob(e);const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return qn(t)}function Ga(e){e=qn(e);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}var Ha=Object.freeze({__proto__:null,decode:ja,encode:Ga});function za(e,t){null==t&&(t=1);const n=[],r=n.forEach,i=function(e,t){r.call(e,(function(e){t>0&&Array.isArray(e)?i(e,t-1):n.push(e)}))};return i(e,t),n}function Wa(e){return function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function n(){return e[t++]<<8|e[t++]}let r=n(),i=1,a=[0,1];for(let e=1;e<r;e++)a.push(i+=n());let o=n(),s=t;t+=o;let u=0,c=0;function l(){return 0==u&&(c=c<<8|e[t++],u=8),c>>--u&1}const d=Math.pow(2,31),f=d>>>1,p=f>>1,h=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|l();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,n=r;for(;n-t>1;){let r=t+n>>>1;e<a[r]?n=r:t=r}if(0==t)break;y.push(t);let o=g+Math.floor(b*a[t]/i),s=g+Math.floor(b*a[t+1]/i)-1;for(;0==((o^s)&f);)m=m<<1&h|l(),o=o<<1&h,s=s<<1&h|1;for(;o&~s&p;)m=m&f|m<<1&h>>>1|l(),o=o<<1^f,s=(s^f)<<1|f|1;g=o,b=1+s-o}let v=r-4;return y.map((t=>{switch(t-v){case 3:return v+65792+(e[s++]<<16|e[s++]<<8|e[s++]);case 2:return v+256+(e[s++]<<8|e[s++]);case 1:return v+e[s++];default:return t-1}}))}(e))}function Va(e){return 1&e?~e>>1:e>>1}function Ka(e,t){let n=Array(e);for(let r=0,i=-1;r<e;r++)n[r]=i+=1+t();return n}function Xa(e,t){let n=Array(e);for(let r=0,i=0;r<e;r++)n[r]=i+=Va(t());return n}function Ja(e,t){let n=Ka(e(),e),r=e(),i=Ka(r,e),a=function(e,t){let n=Array(e);for(let r=0;r<e;r++)n[r]=1+t();return n}(r,e);for(let e=0;e<r;e++)for(let t=0;t<a[e];t++)n.push(i[e]+t);return t?n.map((e=>t[e])):n}function Ya(e,t,n){let r=Array(e).fill(void 0).map((()=>[]));for(let i=0;i<t;i++)Xa(e,n).forEach(((e,t)=>r[t].push(e)));return r}function Qa(e,t){let n=1+t(),r=t(),i=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(n)}return t}(t);return za(Ya(i.length,1+e,t).map(((e,t)=>{const a=e[0],o=e.slice(1);return Array(i[t]).fill(void 0).map(((e,t)=>{let i=t*r;return[a+t*n,o.map((e=>e+i))]}))})))}function $a(e,t){return Ya(1+t(),1+e,t).map((e=>[e[0],e.slice(1)]))}const Za=Wa(ja("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA==")),eo=new Set(Ja(Za)),to=new Set(Ja(Za)),no=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(Qa(n,e))}for(;;){let n=e()-1;if(n<0)break;t.push($a(n,e))}return function(e){const t={};for(let n=0;n<e.length;n++){const r=e[n];t[r[0]]=r[1]}return t}(za(t))}(Za),ro=function(e){let t=Ja(e).sort(((e,t)=>e-t));return function n(){let r=[];for(;;){let i=Ja(e,t);if(0==i.length)break;r.push({set:new Set(i),node:n()})}r.sort(((e,t)=>t.set.size-e.set.size));let i=e(),a=i%3;i=i/3|0;let o=!!(1&i);return i>>=1,{branches:r,valid:a,fe0f:o,save:1==i,check:2==i}}()}(Za),io=45,ao=95;function oo(e){return ga(e)}function so(e){return e.filter((e=>65039!=e))}function uo(e){for(let t of e.split(".")){let e=oo(t);try{for(let t=e.lastIndexOf(ao)-1;t>=0;t--)if(e[t]!==ao)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every((e=>e<128))&&e[2]===io&&e[3]===io)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function co(e){return uo(function(e,t){let n=oo(e).reverse(),r=[];for(;n.length;){let e=lo(n);if(e){r.push(...t(e));continue}let i=n.pop();if(eo.has(i)){r.push(i);continue}if(to.has(i))continue;let a=no[i];if(!a)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);r.push(...a)}return uo(function(e){return e.normalize("NFC")}(String.fromCodePoint(...r)))}(e,so))}function lo(e,t){var n;let r,i,a=ro,o=[],s=e.length;for(t&&(t.length=0);s;){let u=e[--s];if(a=null===(n=a.branches.find((e=>e.set.has(u))))||void 0===n?void 0:n.node,!a)break;if(a.save)i=u;else if(a.check&&u===i)break;o.push(u),a.fe0f&&(o.push(65039),s>0&&65039==e[s-1]&&s--),a.valid&&(r=o.slice(),2==a.valid&&r.splice(1,1),t&&t.push(...e.slice(s).reverse()),e.length=s)}return r}const fo=new xn(qa),po=new Uint8Array(32);function ho(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function mo(e){const t=fa(co(e)),n=[];if(0===e.length)return n;let r=0;for(let e=0;e<t.length;e++){46===t[e]&&(n.push(ho(t.slice(r,e))),r=e+1)}if(r>=t.length)throw new Error("invalid ENS name; empty component");return n.push(ho(t.slice(r))),n}function yo(e){try{return 0!==mo(e).length}catch(e){}return!1}function go(e){"string"!=typeof e&&fo.throwArgumentError("invalid ENS name; not a string","name",e);let t=po;const n=mo(e);for(;n.length;)t=mi(jn([t,mi(n.pop())]));return Vn(t)}function bo(e){return Vn(jn(mo(e).map((e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t}))))+"00"}po.fill(0);const vo="Ethereum Signed Message:\n";function To(e){return"string"==typeof e&&(e=fa(e)),mi(jn([fa(vo),fa(String(e.length)),e]))}var wo=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Ao=new xn(qa),Eo=new Uint8Array(32);Eo.fill(0);const _o=ur.from(-1),Io=ur.from(0),Ro=ur.from(1),Co=ur.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const Oo=$n(Ro.toHexString(),32),ko=$n(Io.toHexString(),32),So={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},No=["name","version","chainId","verifyingContract","salt"];function xo(e){return function(t){return"string"!=typeof t&&Ao.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const Po={name:xo("name"),version:xo("version"),chainId:function(e){try{return ur.from(e).toString()}catch(e){}return Ao.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return Ni(e).toLowerCase()}catch(e){}return Ao.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=qn(e);if(32!==t.length)throw new Error("bad length");return Vn(t)}catch(e){}return Ao.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function Mo(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const n=""===t[1],r=parseInt(t[2]||"256");(r%8!=0||r>256||t[2]&&t[2]!==String(r))&&Ao.throwArgumentError("invalid numeric width","type",e);const i=Co.mask(n?r-1:r),a=n?i.add(Ro).mul(_o):Io;return function(t){const n=ur.from(t);return(n.lt(a)||n.gt(i))&&Ao.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),$n(n.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const n=parseInt(t[1]);return(0===n||n>32||t[1]!==String(n))&&Ao.throwArgumentError("invalid bytes width","type",e),function(t){return qn(t).length!==n&&Ao.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=qn(e),n=t.length%32;return n?Jn([t,Eo.slice(n)]):Vn(t)}(t)}}}switch(e){case"address":return function(e){return $n(Ni(e),32)};case"bool":return function(e){return e?Oo:ko};case"bytes":return function(e){return mi(e)};case"string":return function(e){return Ua(e)}}return null}function Bo(e,t){return`${e}(${t.map((({name:e,type:t})=>t+" "+e)).join(",")})`}class Do{constructor(e){Or(this,"types",Object.freeze(Dr(e))),Or(this,"_encoderCache",{}),Or(this,"_types",{});const t={},n={},r={};Object.keys(e).forEach((e=>{t[e]={},n[e]=[],r[e]={}}));for(const r in e){const i={};e[r].forEach((a=>{i[a.name]&&Ao.throwArgumentError(`duplicate variable name ${JSON.stringify(a.name)} in ${JSON.stringify(r)}`,"types",e),i[a.name]=!0;const o=a.type.match(/^([^\x5b]*)(\x5b|$)/)[1];o===r&&Ao.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e);Mo(o)||(n[o]||Ao.throwArgumentError(`unknown type ${JSON.stringify(o)}`,"types",e),n[o].push(r),t[r][o]=!0)}))}const i=Object.keys(n).filter((e=>0===n[e].length));0===i.length?Ao.throwArgumentError("missing primary type","types",e):i.length>1&&Ao.throwArgumentError(`ambiguous primary types or unused types: ${i.map((e=>JSON.stringify(e))).join(", ")}`,"types",e),Or(this,"primaryType",i[0]),function i(a,o){o[a]&&Ao.throwArgumentError(`circular type reference to ${JSON.stringify(a)}`,"types",e),o[a]=!0,Object.keys(t[a]).forEach((e=>{n[e]&&(i(e,o),Object.keys(o).forEach((t=>{r[t][e]=!0})))})),delete o[a]}(this.primaryType,{});for(const t in r){const n=Object.keys(r[t]);n.sort(),this._types[t]=Bo(t,e[t])+n.map((t=>Bo(t,e[t]))).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=Mo(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],n=this.getEncoder(e),r=parseInt(t[3]);return t=>{r>=0&&t.length!==r&&Ao.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(n);return this._types[e]&&(i=i.map(mi)),mi(Jn(i))}}const n=this.types[e];if(n){const t=Ua(this._types[e]);return e=>{const r=n.map((({name:t,type:n})=>{const r=this.getEncoder(n)(e[t]);return this._types[n]?mi(r):r}));return r.unshift(t),Jn(r)}}return Ao.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Ao.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return mi(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,n){if(Mo(e))return n(e,t);const r=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(r){const e=r[1],i=parseInt(r[3]);return i>=0&&t.length!==i&&Ao.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map((t=>this._visit(e,t,n)))}const i=this.types[e];return i?i.reduce(((e,{name:r,type:i})=>(e[r]=this._visit(i,t[r],n),e)),{}):Ao.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new Do(e)}static getPrimaryType(e){return Do.from(e).primaryType}static hashStruct(e,t,n){return Do.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){const r=So[n];r||Ao.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort(((e,t)=>No.indexOf(e.name)-No.indexOf(t.name))),Do.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return Jn(["0x1901",Do.hashDomain(e),Do.from(t).hash(n)])}static hash(e,t,n){return mi(Do.encode(e,t,n))}static resolveNames(e,t,n,r){return wo(this,void 0,void 0,(function*(){e=xr(e);const i={};e.verifyingContract&&!zn(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const a=Do.from(t);a.visit(n,((e,t)=>("address"!==e||zn(t,20)||(i[t]="0x"),t)));for(const e in i)i[e]=yield r(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=a.visit(n,((e,t)=>"address"===e&&i[t]?i[t]:t)),{domain:e,value:n}}))}static getPayload(e,t,n){Do.hashDomain(e);const r={},i=[];No.forEach((t=>{const n=e[t];null!=n&&(r[t]=Po[t](n),i.push({name:t,type:So[t]}))}));const a=Do.from(t),o=xr(t);return o.EIP712Domain?Ao.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):o.EIP712Domain=i,a.encode(n),{types:o,domain:r,primaryType:a.primaryType,message:a.visit(n,((e,t)=>{if(e.match(/^bytes(\d*)/))return Vn(qn(t));if(e.match(/^u?int/))return ur.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&Ao.throwArgumentError("invalid string","value",t),t}return Ao.throwArgumentError("unsupported type","type",e)}))}}}var Fo=Object.freeze({__proto__:null,_TypedDataEncoder:Do,dnsEncode:bo,ensNormalize:function(e){return mo(e).map((e=>ya(e))).join(".")},hashMessage:To,id:Ua,isValidName:yo,messagePrefix:vo,namehash:go});const Lo=new xn(Ur);let Uo=class extends Fr{},qo=class extends Fr{},jo=class extends Fr{},Go=class extends Fr{static isIndexed(e){return!(!e||!e._isIndexed)}};const Ho={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function zo(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}let Wo=class{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,Or(this,"fragments",t.map((e=>Yr.from(e))).filter((e=>null!=e))),Or(this,"_abiCoder",kr(new.target,"getAbiCoder")()),Or(this,"functions",{}),Or(this,"errors",{}),Or(this,"events",{}),Or(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Lo.warn("duplicate definition - constructor"):void Or(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let n=e.format();t[n]?Lo.warn("duplicate definition - "+n):t[n]=e})),this.deploy||Or(this,"deploy",ti.from({payable:!1,type:"constructor"})),Or(this,"_isInterface",!0)}format(e){e||(e=Vr.full),e===Vr.sighash&&Lo.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===Vr.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return La}static getAddress(e){return Ni(e)}static getSighash(e){return Xn(Ua(e.format()),0,4)}static getEventTopic(e){return Ua(e.format())}getFunction(e){if(zn(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Lo.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.functions).filter((e=>e.split("(")[0]===t));return 0===n.length?Lo.throwArgumentError("no matching function","name",t):n.length>1&&Lo.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[ni.fromString(e).format()];return t||Lo.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(zn(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Lo.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.events).filter((e=>e.split("(")[0]===t));return 0===n.length?Lo.throwArgumentError("no matching event","name",t):n.length>1&&Lo.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[Qr.fromString(e).format()];return t||Lo.throwArgumentError("no matching event","signature",e),t}getError(e){if(zn(e)){const t=kr(this.constructor,"getSighash");for(const n in this.errors){if(e===t(this.errors[n]))return this.errors[n]}Lo.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.errors).filter((e=>e.split("(")[0]===t));return 0===n.length?Lo.throwArgumentError("no matching error","name",t):n.length>1&&Lo.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[ni.fromString(e).format()];return t||Lo.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return kr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),kr(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const n=qn(t);return Vn(n.slice(0,4))!==this.getSighash(e)&&Lo.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Vn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Vn(jn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=qn(t);return Vn(n.slice(0,4))!==this.getSighash(e)&&Lo.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Vn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Vn(jn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=qn(t),r=null,i="",a=null,o=null,s=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch(e){}break;case 4:{const e=Vn(n.slice(0,4)),t=Ho[e];if(t)a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.signature,t.reason&&(r=a[0]),"Error"===o?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(a[0])}`:"Panic"===o&&(i=`; VM Exception while processing transaction: reverted with panic code ${a[0]}`);else try{const t=this.getError(e);a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.format()}catch(e){}break}}return Lo.throwError("call revert exception"+i,xn.errors.CALL_EXCEPTION,{method:e.format(),data:Vn(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Vn(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Lo.throwError("too many arguments for "+e.format(),xn.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?Ua(t):"bytes"===e.type?mi(Vn(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=ur.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),$n(Vn(t),32));for(t.forEach(((t,i)=>{let a=e.inputs[i];a.indexed?null==t?n.push(null):"array"===a.baseType||"tuple"===a.baseType?Lo.throwArgumentError("filtering with tuples or arrays not supported","contract."+a.name,t):Array.isArray(t)?n.push(t.map((e=>r(a,e)))):n.push(r(a,t)):null!=t&&Lo.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+a.name,t)}));n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&Lo.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach(((e,a)=>{const o=t[a];if(e.indexed)if("string"===e.type)n.push(Ua(o));else if("bytes"===e.type)n.push(mi(o));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[o]))}else r.push(e),i.push(o)})),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if("string"==typeof e&&(e=this.getEvent(e)),null!=n&&!e.anonymous){let t=this.getEventTopic(e);zn(n[0],32)&&n[0].toLowerCase()===t||Lo.throwError("fragment/topic mismatch",xn.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],a=[];e.inputs.forEach(((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(Xr.fromObject({type:"bytes32",name:e.name})),a.push(!0)):(r.push(e),a.push(!1)):(i.push(e),a.push(!1))}));let o=null!=n?this._abiCoder.decode(r,jn(n)):null,s=this._abiCoder.decode(i,t,!0),u=[],c=0,l=0;e.inputs.forEach(((e,t)=>{if(e.indexed)if(null==o)u[t]=new Go({_isIndexed:!0,hash:null});else if(a[t])u[t]=new Go({_isIndexed:!0,hash:o[l++]});else try{u[t]=o[l++]}catch(e){u[t]=e}else try{u[t]=s[c++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const n=u[t];n instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw zo(`property ${JSON.stringify(e.name)}`,n)}}):u[e.name]=n}}));for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw zo(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new qo({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:ur.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Uo({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Vn(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new jo({args:this._abiCoder.decode(n.inputs,"0x"+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!(!e||!e._isInterface)}};var Vo=Object.freeze({__proto__:null,AbiCoder:Fa,ConstructorFragment:ti,ErrorFragment:ii,EventFragment:Qr,FormatTypes:Vr,Fragment:Yr,FunctionFragment:ni,Indexed:Go,Interface:Wo,LogDescription:Uo,ParamType:Xr,TransactionDescription:qo,checkResultErrors:li,defaultAbiCoder:La});var Ko=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Xo=new xn("abstract-provider/5.7.0");class Jo extends Fr{static isForkEvent(e){return!(!e||!e._isForkEvent)}}let Yo=class e{constructor(){Xo.checkAbstract(new.target,e),Or(this,"_isProvider",!0)}getFeeData(){return Ko(this,void 0,void 0,(function*(){const{block:e,gasPrice:t}=yield Sr({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch((e=>null))});let n=null,r=null,i=null;return e&&e.baseFeePerGas&&(n=e.baseFeePerGas,i=ur.from("1500000000"),r=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:t}}))}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}};var Qo=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const $o=new xn("abstract-signer/5.7.0"),Zo=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],es=[xn.errors.INSUFFICIENT_FUNDS,xn.errors.NONCE_EXPIRED,xn.errors.REPLACEMENT_UNDERPRICED];let ts=class e{constructor(){$o.checkAbstract(new.target,e),Or(this,"_isSigner",!0)}getBalance(e){return Qo(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return Qo(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return Qo(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield Sr(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return Qo(this,void 0,void 0,(function*(){this._checkProvider("call");const n=yield Sr(this.checkTransaction(e));return yield this.provider.call(n,t)}))}sendTransaction(e){return Qo(this,void 0,void 0,(function*(){this._checkProvider("sendTransaction");const t=yield this.populateTransaction(e),n=yield this.signTransaction(t);return yield this.provider.sendTransaction(n)}))}getChainId(){return Qo(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return Qo(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return Qo(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return Qo(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===Zo.indexOf(t)&&$o.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=xr(e);return null==t.from?t.from=this.getAddress():t.from=Promise.all([Promise.resolve(t.from),this.getAddress()]).then((t=>(t[0].toLowerCase()!==t[1].toLowerCase()&&$o.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return Qo(this,void 0,void 0,(function*(){const t=yield Sr(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>Qo(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&$o.throwArgumentError("provided ENS name resolves to null","tx.to",e),t})))),t.to.catch((e=>{})));const n=null!=t.maxFeePerGas||null!=t.maxPriorityFeePerGas;if(null==t.gasPrice||2!==t.type&&!n?0!==t.type&&1!==t.type||!n||$o.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):$o.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",e),2!==t.type&&null!=t.type||null==t.maxFeePerGas||null==t.maxPriorityFeePerGas)if(0===t.type||1===t.type)null==t.gasPrice&&(t.gasPrice=this.getGasPrice());else{const e=yield this.getFeeData();if(null==t.type)if(null!=e.maxFeePerGas&&null!=e.maxPriorityFeePerGas)if(t.type=2,null!=t.gasPrice){const e=t.gasPrice;delete t.gasPrice,t.maxFeePerGas=e,t.maxPriorityFeePerGas=e}else null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas);else null!=e.gasPrice?(n&&$o.throwError("network does not support EIP-1559",xn.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):$o.throwError("failed to get consistent fee data",xn.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===t.type&&(null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas))}else t.type=2;return null==t.nonce&&(t.nonce=this.getTransactionCount("pending")),null==t.gasLimit&&(t.gasLimit=this.estimateGas(t).catch((e=>{if(es.indexOf(e.code)>=0)throw e;return $o.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",xn.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,tx:t})}))),null==t.chainId?t.chainId=this.getChainId():t.chainId=Promise.all([Promise.resolve(t.chainId),this.getChainId()]).then((t=>(0!==t[1]&&t[0]!==t[1]&&$o.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield Sr(t)}))}_checkProvider(e){this.provider||$o.throwError("missing provider",xn.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}},ns=class e extends ts{constructor(e,t){super(),Or(this,"address",e),Or(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{$o.throwError(e,xn.errors.UNSUPPORTED_OPERATION,{operation:t})}))}signMessage(e){return this._fail("VoidSigner cannot sign messages","signMessage")}signTransaction(e){return this._fail("VoidSigner cannot sign transactions","signTransaction")}_signTypedData(e,t,n){return this._fail("VoidSigner cannot sign typed data","signTypedData")}connect(t){return new e(this.address,t)}};var rs={},is={},as=os;function os(e,t){if(!e)throw new Error(t||"Assertion failed")}os.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var ss="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},us=as,cs=bt(Object.freeze({__proto__:null,default:ss}));function ls(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function ds(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function fs(e){return 1===e.length?"0"+e:e}function ps(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}is.inherits=cs,is.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)n.push(parseInt(e[i]+e[i+1],16))}else for(var r=0,i=0;i<e.length;i++){var a=e.charCodeAt(i);a<128?n[r++]=a:a<2048?(n[r++]=a>>6|192,n[r++]=63&a|128):ls(e,i)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++i)),n[r++]=a>>18|240,n[r++]=a>>12&63|128,n[r++]=a>>6&63|128,n[r++]=63&a|128):(n[r++]=a>>12|224,n[r++]=a>>6&63|128,n[r++]=63&a|128)}else for(i=0;i<e.length;i++)n[i]=0|e[i];return n},is.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=fs(e[n].toString(16));return t},is.htonl=ds,is.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=ds(i)),n+=ps(i.toString(16))}return n},is.zero2=fs,is.zero8=ps,is.join32=function(e,t,n,r){var i=n-t;us(i%4==0);for(var a=new Array(i/4),o=0,s=t;o<a.length;o++,s+=4){var u;u="big"===r?e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3]:e[s+3]<<24|e[s+2]<<16|e[s+1]<<8|e[s],a[o]=u>>>0}return a},is.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var a=e[r];"big"===t?(n[i]=a>>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=255&a):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=255&a)}return n},is.rotr32=function(e,t){return e>>>t|e<<32-t},is.rotl32=function(e,t){return e<<t|e>>>32-t},is.sum32=function(e,t){return e+t>>>0},is.sum32_3=function(e,t,n){return e+t+n>>>0},is.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},is.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},is.sum64=function(e,t,n,r){var i=e[t],a=r+e[t+1]>>>0,o=(a<r?1:0)+n+i;e[t]=o>>>0,e[t+1]=a},is.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},is.sum64_lo=function(e,t,n,r){return t+r>>>0},is.sum64_4_hi=function(e,t,n,r,i,a,o,s){var u=0,c=t;return u+=(c=c+r>>>0)<t?1:0,u+=(c=c+a>>>0)<a?1:0,e+n+i+o+(u+=(c=c+s>>>0)<s?1:0)>>>0},is.sum64_4_lo=function(e,t,n,r,i,a,o,s){return t+r+a+s>>>0},is.sum64_5_hi=function(e,t,n,r,i,a,o,s,u,c){var l=0,d=t;return l+=(d=d+r>>>0)<t?1:0,l+=(d=d+a>>>0)<a?1:0,l+=(d=d+s>>>0)<s?1:0,e+n+i+o+u+(l+=(d=d+c>>>0)<c?1:0)>>>0},is.sum64_5_lo=function(e,t,n,r,i,a,o,s,u,c){return t+r+a+s+c>>>0},is.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},is.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},is.shr64_hi=function(e,t,n){return e>>>n},is.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0};var hs={},ms=is,ys=as;function gs(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}hs.BlockHash=gs,gs.prototype.update=function(e,t){if(e=ms.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=ms.join32(e,0,e.length-n,this.endian);for(var r=0;r<e.length;r+=this._delta32)this._update(e,r,r+this._delta32)}return this},gs.prototype.digest=function(e){return this.update(this._pad()),ys(null===this.pending),this._digest(e)},gs.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;a<this.padLength;a++)r[i++]=0;return r};var bs={},vs={},Ts=is.rotr32;function ws(e,t,n){return e&t^~e&n}function As(e,t,n){return e&t^e&n^t&n}function Es(e,t,n){return e^t^n}vs.ft_1=function(e,t,n,r){return 0===e?ws(t,n,r):1===e||3===e?Es(t,n,r):2===e?As(t,n,r):void 0},vs.ch32=ws,vs.maj32=As,vs.p32=Es,vs.s0_256=function(e){return Ts(e,2)^Ts(e,13)^Ts(e,22)},vs.s1_256=function(e){return Ts(e,6)^Ts(e,11)^Ts(e,25)},vs.g0_256=function(e){return Ts(e,7)^Ts(e,18)^e>>>3},vs.g1_256=function(e){return Ts(e,17)^Ts(e,19)^e>>>10};var _s=is,Is=hs,Rs=vs,Cs=_s.rotl32,Os=_s.sum32,ks=_s.sum32_5,Ss=Rs.ft_1,Ns=Is.BlockHash,xs=[1518500249,1859775393,2400959708,3395469782];function Ps(){if(!(this instanceof Ps))return new Ps;Ns.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}_s.inherits(Ps,Ns);var Ms=Ps;Ps.blockSize=512,Ps.outSize=160,Ps.hmacStrength=80,Ps.padLength=64,Ps.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=Cs(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],a=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4];for(r=0;r<n.length;r++){var c=~~(r/20),l=ks(Cs(i,5),Ss(c,a,o,s),u,n[r],xs[c]);u=s,s=o,o=Cs(a,30),a=i,i=l}this.h[0]=Os(this.h[0],i),this.h[1]=Os(this.h[1],a),this.h[2]=Os(this.h[2],o),this.h[3]=Os(this.h[3],s),this.h[4]=Os(this.h[4],u)},Ps.prototype._digest=function(e){return"hex"===e?_s.toHex32(this.h,"big"):_s.split32(this.h,"big")};var Bs=is,Ds=hs,Fs=vs,Ls=as,Us=Bs.sum32,qs=Bs.sum32_4,js=Bs.sum32_5,Gs=Fs.ch32,Hs=Fs.maj32,zs=Fs.s0_256,Ws=Fs.s1_256,Vs=Fs.g0_256,Ks=Fs.g1_256,Xs=Ds.BlockHash,Js=[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];function Ys(){if(!(this instanceof Ys))return new Ys;Xs.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Js,this.W=new Array(64)}Bs.inherits(Ys,Xs);var Qs=Ys;Ys.blockSize=512,Ys.outSize=256,Ys.hmacStrength=192,Ys.padLength=64,Ys.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=qs(Ks(n[r-2]),n[r-7],Vs(n[r-15]),n[r-16]);var i=this.h[0],a=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4],c=this.h[5],l=this.h[6],d=this.h[7];for(Ls(this.k.length===n.length),r=0;r<n.length;r++){var f=js(d,Ws(u),Gs(u,c,l),this.k[r],n[r]),p=Us(zs(i),Hs(i,a,o));d=l,l=c,c=u,u=Us(s,f),s=o,o=a,a=i,i=Us(f,p)}this.h[0]=Us(this.h[0],i),this.h[1]=Us(this.h[1],a),this.h[2]=Us(this.h[2],o),this.h[3]=Us(this.h[3],s),this.h[4]=Us(this.h[4],u),this.h[5]=Us(this.h[5],c),this.h[6]=Us(this.h[6],l),this.h[7]=Us(this.h[7],d)},Ys.prototype._digest=function(e){return"hex"===e?Bs.toHex32(this.h,"big"):Bs.split32(this.h,"big")};var $s=is,Zs=Qs;function eu(){if(!(this instanceof eu))return new eu;Zs.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}$s.inherits(eu,Zs);var tu=eu;eu.blockSize=512,eu.outSize=224,eu.hmacStrength=192,eu.padLength=64,eu.prototype._digest=function(e){return"hex"===e?$s.toHex32(this.h.slice(0,7),"big"):$s.split32(this.h.slice(0,7),"big")};var nu=is,ru=hs,iu=as,au=nu.rotr64_hi,ou=nu.rotr64_lo,su=nu.shr64_hi,uu=nu.shr64_lo,cu=nu.sum64,lu=nu.sum64_hi,du=nu.sum64_lo,fu=nu.sum64_4_hi,pu=nu.sum64_4_lo,hu=nu.sum64_5_hi,mu=nu.sum64_5_lo,yu=ru.BlockHash,gu=[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];function bu(){if(!(this instanceof bu))return new bu;yu.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=gu,this.W=new Array(160)}nu.inherits(bu,yu);var vu=bu;function Tu(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function wu(e,t,n,r,i,a){var o=t&r^~t&a;return o<0&&(o+=4294967296),o}function Au(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function Eu(e,t,n,r,i,a){var o=t&r^t&a^r&a;return o<0&&(o+=4294967296),o}function _u(e,t){var n=au(e,t,28)^au(t,e,2)^au(t,e,7);return n<0&&(n+=4294967296),n}function Iu(e,t){var n=ou(e,t,28)^ou(t,e,2)^ou(t,e,7);return n<0&&(n+=4294967296),n}function Ru(e,t){var n=au(e,t,14)^au(e,t,18)^au(t,e,9);return n<0&&(n+=4294967296),n}function Cu(e,t){var n=ou(e,t,14)^ou(e,t,18)^ou(t,e,9);return n<0&&(n+=4294967296),n}function Ou(e,t){var n=au(e,t,1)^au(e,t,8)^su(e,t,7);return n<0&&(n+=4294967296),n}function ku(e,t){var n=ou(e,t,1)^ou(e,t,8)^uu(e,t,7);return n<0&&(n+=4294967296),n}function Su(e,t){var n=au(e,t,19)^au(t,e,29)^su(e,t,6);return n<0&&(n+=4294967296),n}function Nu(e,t){var n=ou(e,t,19)^ou(t,e,29)^uu(e,t,6);return n<0&&(n+=4294967296),n}bu.blockSize=1024,bu.outSize=512,bu.hmacStrength=192,bu.padLength=128,bu.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=Su(n[r-4],n[r-3]),a=Nu(n[r-4],n[r-3]),o=n[r-14],s=n[r-13],u=Ou(n[r-30],n[r-29]),c=ku(n[r-30],n[r-29]),l=n[r-32],d=n[r-31];n[r]=fu(i,a,o,s,u,c,l,d),n[r+1]=pu(i,a,o,s,u,c,l,d)}},bu.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],a=this.h[2],o=this.h[3],s=this.h[4],u=this.h[5],c=this.h[6],l=this.h[7],d=this.h[8],f=this.h[9],p=this.h[10],h=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];iu(this.k.length===n.length);for(var v=0;v<n.length;v+=2){var T=g,w=b,A=Ru(d,f),E=Cu(d,f),_=Tu(d,f,p,h,m),I=wu(d,f,p,h,m,y),R=this.k[v],C=this.k[v+1],O=n[v],k=n[v+1],S=hu(T,w,A,E,_,I,R,C,O,k),N=mu(T,w,A,E,_,I,R,C,O,k);T=_u(r,i),w=Iu(r,i),A=Au(r,i,a,o,s),E=Eu(r,i,a,o,s,u);var x=lu(T,w,A,E),P=du(T,w,A,E);g=m,b=y,m=p,y=h,p=d,h=f,d=lu(c,l,S,N),f=du(l,l,S,N),c=s,l=u,s=a,u=o,a=r,o=i,r=lu(S,N,x,P),i=du(S,N,x,P)}cu(this.h,0,r,i),cu(this.h,2,a,o),cu(this.h,4,s,u),cu(this.h,6,c,l),cu(this.h,8,d,f),cu(this.h,10,p,h),cu(this.h,12,m,y),cu(this.h,14,g,b)},bu.prototype._digest=function(e){return"hex"===e?nu.toHex32(this.h,"big"):nu.split32(this.h,"big")};var xu=is,Pu=vu;function Mu(){if(!(this instanceof Mu))return new Mu;Pu.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}xu.inherits(Mu,Pu);var Bu=Mu;Mu.blockSize=1024,Mu.outSize=384,Mu.hmacStrength=192,Mu.padLength=128,Mu.prototype._digest=function(e){return"hex"===e?xu.toHex32(this.h.slice(0,12),"big"):xu.split32(this.h.slice(0,12),"big")},bs.sha1=Ms,bs.sha224=tu,bs.sha256=Qs,bs.sha384=Bu,bs.sha512=vu;var Du={},Fu=is,Lu=hs,Uu=Fu.rotl32,qu=Fu.sum32,ju=Fu.sum32_3,Gu=Fu.sum32_4,Hu=Lu.BlockHash;function zu(){if(!(this instanceof zu))return new zu;Hu.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function Wu(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function Vu(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function Ku(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}Fu.inherits(zu,Hu),Du.ripemd160=zu,zu.blockSize=512,zu.outSize=160,zu.hmacStrength=192,zu.padLength=64,zu.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],a=this.h[3],o=this.h[4],s=n,u=r,c=i,l=a,d=o,f=0;f<80;f++){var p=qu(Uu(Gu(n,Wu(f,r,i,a),e[Xu[f]+t],Vu(f)),Yu[f]),o);n=o,o=a,a=Uu(i,10),i=r,r=p,p=qu(Uu(Gu(s,Wu(79-f,u,c,l),e[Ju[f]+t],Ku(f)),Qu[f]),d),s=d,d=l,l=Uu(c,10),c=u,u=p}p=ju(this.h[1],i,l),this.h[1]=ju(this.h[2],a,d),this.h[2]=ju(this.h[3],o,s),this.h[3]=ju(this.h[4],n,u),this.h[4]=ju(this.h[0],r,c),this.h[0]=p},zu.prototype._digest=function(e){return"hex"===e?Fu.toHex32(this.h,"little"):Fu.split32(this.h,"little")};var Xu=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Ju=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Yu=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Qu=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],$u=is,Zu=as;function ec(e,t,n){if(!(this instanceof ec))return new ec(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init($u.toArray(t,n))}var tc=ec;ec.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),Zu(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},ec.prototype.update=function(e,t){return this.inner.update(e,t),this},ec.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)},function(e){var t=e;t.utils=is,t.common=hs,t.sha=bs,t.ripemd=Du,t.hmac=tc,t.sha1=t.sha.sha1,t.sha256=t.sha.sha256,t.sha224=t.sha.sha224,t.sha384=t.sha.sha384,t.sha512=t.sha.sha512,t.ripemd160=t.ripemd.ripemd160}(rs);var nc=gt(rs);function rc(e,t,n){return n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&n.path)}},e(n,n.exports),n.exports}var ic=ac;function ac(e,t){if(!e)throw new Error(t||"Assertion failed")}ac.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var oc=rc((function(e,t){var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n<e.length;n++)t+=r(e[n].toString(16));return t}n.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t){(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);for(r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16))}else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),a=i>>8,o=255&i;a?n.push(a,o):n.push(o)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}})),sc=rc((function(e,t){var n=t;n.assert=ic,n.toArray=oc.toArray,n.zero2=oc.zero2,n.toHex=oc.toHex,n.encode=oc.encode,n.getNAF=function(e,t,n){var r=new Array(Math.max(e.bitLength(),n)+1);r.fill(0);for(var i=1<<t+1,a=e.clone(),o=0;o<r.length;o++){var s,u=a.andln(i-1);a.isOdd()?(s=u>(i>>1)-1?(i>>1)-u:u,a.isubn(s)):s=0,r[o]=s,a.iushrn(1)}return r},n.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,a=0;e.cmpn(-i)>0||t.cmpn(-a)>0;){var o,s,u=e.andln(3)+i&3,c=t.andln(3)+a&3;3===u&&(u=-1),3===c&&(c=-1),o=0==(1&u)?0:3!==(r=e.andln(7)+i&7)&&5!==r||2!==c?u:-u,n[0].push(o),s=0==(1&c)?0:3!==(r=t.andln(7)+a&7)&&5!==r||2!==u?c:-c,n[1].push(s),2*i===o+1&&(i=1-i),2*a===s+1&&(a=1-a),e.iushrn(1),t.iushrn(1)}return n},n.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new An(e,"hex","le")}})),uc=sc.getNAF,cc=sc.getJSF,lc=sc.assert;function dc(e,t){this.type=e,this.p=new An(t.p,16),this.red=t.prime?An.red(t.prime):An.mont(this.p),this.zero=new An(0).toRed(this.red),this.one=new An(1).toRed(this.red),this.two=new An(2).toRed(this.red),this.n=t.n&&new An(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var fc=dc;function pc(e,t){this.curve=e,this.type=t,this.precomputed=null}dc.prototype.point=function(){throw new Error("Not implemented")},dc.prototype.validate=function(){throw new Error("Not implemented")},dc.prototype._fixedNafMul=function(e,t){lc(e.precomputed);var n=e._getDoubles(),r=uc(t,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;var a,o,s=[];for(a=0;a<r.length;a+=n.step){o=0;for(var u=a+n.step-1;u>=a;u--)o=(o<<1)+r[u];s.push(o)}for(var c=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=i;d>0;d--){for(a=0;a<s.length;a++)(o=s[a])===d?l=l.mixedAdd(n.points[a]):o===-d&&(l=l.mixedAdd(n.points[a].neg()));c=c.add(l)}return c.toP()},dc.prototype._wnafMul=function(e,t){var n=4,r=e._getNAFPoints(n);n=r.wnd;for(var i=r.points,a=uc(t,n,this._bitLength),o=this.jpoint(null,null,null),s=a.length-1;s>=0;s--){for(var u=0;s>=0&&0===a[s];s--)u++;if(s>=0&&u++,o=o.dblp(u),s<0)break;var c=a[s];lc(0!==c),o="affine"===e.type?c>0?o.mixedAdd(i[c-1>>1]):o.mixedAdd(i[-c-1>>1].neg()):c>0?o.add(i[c-1>>1]):o.add(i[-c-1>>1].neg())}return"affine"===e.type?o.toP():o},dc.prototype._wnafMulAdd=function(e,t,n,r,i){var a,o,s,u=this._wnafT1,c=this._wnafT2,l=this._wnafT3,d=0;for(a=0;a<r;a++){var f=(s=t[a])._getNAFPoints(e);u[a]=f.wnd,c[a]=f.points}for(a=r-1;a>=1;a-=2){var p=a-1,h=a;if(1===u[p]&&1===u[h]){var m=[t[p],null,null,t[h]];0===t[p].y.cmp(t[h].y)?(m[1]=t[p].add(t[h]),m[2]=t[p].toJ().mixedAdd(t[h].neg())):0===t[p].y.cmp(t[h].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[h]),m[2]=t[p].add(t[h].neg())):(m[1]=t[p].toJ().mixedAdd(t[h]),m[2]=t[p].toJ().mixedAdd(t[h].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=cc(n[p],n[h]);for(d=Math.max(g[0].length,d),l[p]=new Array(d),l[h]=new Array(d),o=0;o<d;o++){var b=0|g[0][o],v=0|g[1][o];l[p][o]=y[3*(b+1)+(v+1)],l[h][o]=0,c[p]=m}}else l[p]=uc(n[p],u[p],this._bitLength),l[h]=uc(n[h],u[h],this._bitLength),d=Math.max(l[p].length,d),d=Math.max(l[h].length,d)}var T=this.jpoint(null,null,null),w=this._wnafT4;for(a=d;a>=0;a--){for(var A=0;a>=0;){var E=!0;for(o=0;o<r;o++)w[o]=0|l[o][a],0!==w[o]&&(E=!1);if(!E)break;A++,a--}if(a>=0&&A++,T=T.dblp(A),a<0)break;for(o=0;o<r;o++){var _=w[o];0!==_&&(_>0?s=c[o][_-1>>1]:_<0&&(s=c[o][-_-1>>1].neg()),T="affine"===s.type?T.mixedAdd(s):T.add(s))}}for(a=0;a<r;a++)c[a]=null;return i?T:T.toP()},dc.BasePoint=pc,pc.prototype.eq=function(){throw new Error("Not implemented")},pc.prototype.validate=function(){return this.curve.validate(this)},dc.prototype.decodePoint=function(e,t){e=sc.toArray(e,t);var n=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*n)return 6===e[0]?lc(e[e.length-1]%2==0):7===e[0]&&lc(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((2===e[0]||3===e[0])&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),3===e[0]);throw new Error("Unknown point format")},pc.prototype.encodeCompressed=function(e){return this.encode(e,!0)},pc.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",t))},pc.prototype.encode=function(e,t){return sc.encode(this._encode(t),e)},pc.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},pc.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},pc.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var a=0;a<e;a++)r=r.dbl();n.push(r)}return{step:e,points:n}},pc.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},pc.prototype._getBeta=function(){return null},pc.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t};var hc=rc((function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}})),mc=sc.assert;function yc(e){fc.call(this,"short",e),this.a=new An(e.a,16).toRed(this.red),this.b=new An(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}hc(yc,fc);var gc=yc;function bc(e,t,n,r){fc.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new An(t,16),this.y=new An(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function vc(e,t,n,r){fc.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new An(0)):(this.x=new An(t,16),this.y=new An(n,16),this.z=new An(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}yc.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new An(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new An(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?n=i[0]:(n=i[1],mc(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new An(e.a,16),b:new An(e.b,16)}})):this._getEndoBasis(n)}}},yc.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:An.mont(e),n=new An(2).toRed(t).redInvm(),r=n.redNeg(),i=new An(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},yc.prototype._getEndoBasis=function(e){for(var t,n,r,i,a,o,s,u,c,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,f=this.n.clone(),p=new An(1),h=new An(0),m=new An(0),y=new An(1),g=0;0!==d.cmpn(0);){var b=f.div(d);u=f.sub(b.mul(d)),c=m.sub(b.mul(p));var v=y.sub(b.mul(h));if(!r&&u.cmp(l)<0)t=s.neg(),n=p,r=u.neg(),i=c;else if(r&&2==++g)break;s=u,f=d,d=u,m=p,p=c,y=h,h=v}a=u.neg(),o=c;var T=r.sqr().add(i.sqr());return a.sqr().add(o.sqr()).cmp(T)>=0&&(a=t,o=n),r.negative&&(r=r.neg(),i=i.neg()),a.negative&&(a=a.neg(),o=o.neg()),[{a:r,b:i},{a:a,b:o}]},yc.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),a=n.b.neg().mul(e).divRound(this.n),o=i.mul(n.a),s=a.mul(r.a),u=i.mul(n.b),c=a.mul(r.b);return{k1:e.sub(o).sub(s),k2:u.add(c).neg()}},yc.prototype.pointFromX=function(e,t){(e=new An(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=r.fromRed().isOdd();return(t&&!i||!t&&i)&&(r=r.redNeg()),this.point(e,r)},yc.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},yc.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,a=0;a<e.length;a++){var o=this._endoSplit(t[a]),s=e[a],u=s._getBeta();o.k1.negative&&(o.k1.ineg(),s=s.neg(!0)),o.k2.negative&&(o.k2.ineg(),u=u.neg(!0)),r[2*a]=s,r[2*a+1]=u,i[2*a]=o.k1,i[2*a+1]=o.k2}for(var c=this._wnafMulAdd(1,r,i,2*a,n),l=0;l<2*a;l++)r[l]=null,i[l]=null;return c},hc(bc,fc.BasePoint),yc.prototype.point=function(e,t,n){return new bc(this,e,t,n)},yc.prototype.pointFromJSON=function(e,t){return bc.fromJSON(this,e,t)},bc.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},bc.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},bc.fromJSON=function(e,t,n){"string"==typeof t&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var a=t[2];return r.precomputed={beta:null,doubles:a.doubles&&{step:a.doubles.step,points:[r].concat(a.doubles.points.map(i))},naf:a.naf&&{wnd:a.naf.wnd,points:[r].concat(a.naf.points.map(i))}},r},bc.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},bc.prototype.isInfinity=function(){return this.inf},bc.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},bc.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),a=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,o)},bc.prototype.getX=function(){return this.x.fromRed()},bc.prototype.getY=function(){return this.y.fromRed()},bc.prototype.mul=function(e){return e=new An(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},bc.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},bc.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},bc.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},bc.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},bc.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},hc(vc,fc.BasePoint),yc.prototype.jpoint=function(e,t,n){return new vc(this,e,t,n)},vc.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},vc.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},vc.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),a=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(n.redMul(this.z)),s=r.redSub(i),u=a.redSub(o);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),l=c.redMul(s),d=r.redMul(c),f=u.redSqr().redIAdd(l).redISub(d).redISub(d),p=u.redMul(d.redISub(f)).redISub(a.redMul(l)),h=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,p,h)},vc.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,a=e.y.redMul(t).redMul(this.z),o=n.redSub(r),s=i.redSub(a);if(0===o.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=o.redSqr(),c=u.redMul(o),l=n.redMul(u),d=s.redSqr().redIAdd(c).redISub(l).redISub(l),f=s.redMul(l.redISub(d)).redISub(i.redMul(c)),p=this.z.redMul(o);return this.curve.jpoint(d,f,p)},vc.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t<e;t++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,a=this.x,o=this.y,s=this.z,u=s.redSqr().redSqr(),c=o.redAdd(o);for(t=0;t<e;t++){var l=a.redSqr(),d=c.redSqr(),f=d.redSqr(),p=l.redAdd(l).redIAdd(l).redIAdd(r.redMul(u)),h=a.redMul(d),m=p.redSqr().redISub(h.redAdd(h)),y=h.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(f);var b=c.redMul(s);t+1<e&&(u=u.redMul(f)),a=m,s=b,c=g}return this.curve.jpoint(a,c.redMul(i),s)},vc.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},vc.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r),u=s.redSqr().redISub(o).redISub(o),c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),e=u,t=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var l=this.x.redSqr(),d=this.y.redSqr(),f=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(l).redISub(f);p=p.redIAdd(p);var h=l.redAdd(l).redIAdd(l),m=h.redSqr(),y=f.redIAdd(f);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=h.redMul(p.redISub(e)).redISub(y),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(e,t,n)},vc.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),u=s.redSqr().redISub(o).redISub(o);e=u;var c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),t=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var l=this.z.redSqr(),d=this.y.redSqr(),f=this.x.redMul(d),p=this.x.redSub(l).redMul(this.x.redAdd(l));p=p.redAdd(p).redIAdd(p);var h=f.redIAdd(f),m=(h=h.redIAdd(h)).redAdd(h);e=p.redSqr().redISub(m),n=this.y.redAdd(this.z).redSqr().redISub(d).redISub(l);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(h.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,n)},vc.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),a=t.redSqr(),o=n.redSqr(),s=a.redAdd(a).redIAdd(a).redIAdd(e.redMul(i)),u=t.redAdd(t),c=(u=u.redIAdd(u)).redMul(o),l=s.redSqr().redISub(c.redAdd(c)),d=c.redISub(l),f=o.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var p=s.redMul(d).redISub(f),h=n.redAdd(n).redMul(r);return this.curve.jpoint(l,p,h)},vc.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),a=i.redSqr(),o=this.x.redAdd(t).redSqr().redISub(e).redISub(r),s=(o=(o=(o=o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(a)).redSqr(),u=r.redIAdd(r);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var c=i.redIAdd(o).redSqr().redISub(a).redISub(s).redISub(u),l=t.redMul(c);l=(l=l.redIAdd(l)).redIAdd(l);var d=this.x.redMul(s).redISub(l);d=(d=d.redIAdd(d)).redIAdd(d);var f=this.y.redMul(c.redMul(u.redISub(c)).redISub(o.redMul(s)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var p=this.z.redAdd(o).redSqr().redISub(n).redISub(s);return this.curve.jpoint(d,f,p)},vc.prototype.mul=function(e,t){return e=new An(e,t),this.curve._wnafMul(this,e)},vc.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(0!==this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0))return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)},vc.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(n))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},vc.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},vc.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var Tc=rc((function(e,t){var n=t;n.base=fc,n.short=gc,n.mont=null,n.edwards=null})),wc=rc((function(e,t){var n,r=t,i=sc.assert;function a(e){"short"===e.type?this.curve=new Tc.short(e):"edwards"===e.type?this.curve=new Tc.edwards(e):this.curve=new Tc.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function o(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new a(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=a,o("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:nc.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),o("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:nc.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),o("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:nc.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),o("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:nc.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),o("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:nc.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),o("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:nc.sha256,gRed:!1,g:["9"]}),o("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:nc.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=null.crash()}catch(e){n=void 0}o("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:nc.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})}));function Ac(e){if(!(this instanceof Ac))return new Ac(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=oc.toArray(e.entropy,e.entropyEnc||"hex"),n=oc.toArray(e.nonce,e.nonceEnc||"hex"),r=oc.toArray(e.pers,e.persEnc||"hex");ic(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}var Ec=Ac;Ac.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},Ac.prototype._hmac=function(){return new nc.hmac(this.hash,this.K)},Ac.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},Ac.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=oc.toArray(e,t),n=oc.toArray(n,r),ic(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},Ac.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=oc.toArray(n,r||"hex"),this._update(n));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var a=i.slice(0,e);return this._update(n),this._reseed++,oc.encode(a,t)};var _c=sc.assert;function Ic(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var Rc=Ic;Ic.fromPublic=function(e,t,n){return t instanceof Ic?t:new Ic(e,{pub:t,pubEnc:n})},Ic.fromPrivate=function(e,t,n){return t instanceof Ic?t:new Ic(e,{priv:t,privEnc:n})},Ic.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},Ic.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},Ic.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},Ic.prototype._importPrivate=function(e,t){this.priv=new An(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},Ic.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?_c(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||_c(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},Ic.prototype.derive=function(e){return e.validate()||_c(e.validate(),"public point not validated"),e.mul(this.priv).getX()},Ic.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},Ic.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},Ic.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Cc=sc.assert;function Oc(e,t){if(e instanceof Oc)return e;this._importDER(e,t)||(Cc(e.r&&e.s,"Signature without r or s"),this.r=new An(e.r,16),this.s=new An(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var kc=Oc;function Sc(){this.place=0}function Nc(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;for(var i=0,a=0,o=t.place;a<r;a++,o++)i<<=8,i|=e[o],i>>>=0;return!(i<=127)&&(t.place=o,i)}function xc(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t<n;)t++;return 0===t?e:e.slice(t)}function Pc(e,t){if(t<128)e.push(t);else{var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}Oc.prototype._importDER=function(e,t){e=sc.toArray(e,t);var n=new Sc;if(48!==e[n.place++])return!1;var r=Nc(e,n);if(!1===r)return!1;if(r+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var i=Nc(e,n);if(!1===i)return!1;var a=e.slice(n.place,i+n.place);if(n.place+=i,2!==e[n.place++])return!1;var o=Nc(e,n);if(!1===o)return!1;if(e.length!==o+n.place)return!1;var s=e.slice(n.place,o+n.place);if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new An(a),this.s=new An(s),this.recoveryParam=null,!0},Oc.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=xc(t),n=xc(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];Pc(r,t.length),(r=r.concat(t)).push(2),Pc(r,n.length);var i=r.concat(n),a=[48];return Pc(a,i.length),a=a.concat(i),sc.encode(a,e)};var Mc=function(){throw new Error("unsupported")},Bc=sc.assert;function Dc(e){if(!(this instanceof Dc))return new Dc(e);"string"==typeof e&&(Bc(Object.prototype.hasOwnProperty.call(wc,e),"Unknown curve "+e),e=wc[e]),e instanceof wc.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Fc=Dc;Dc.prototype.keyPair=function(e){return new Rc(this,e)},Dc.prototype.keyFromPrivate=function(e,t){return Rc.fromPrivate(this,e,t)},Dc.prototype.keyFromPublic=function(e,t){return Rc.fromPublic(this,e,t)},Dc.prototype.genKeyPair=function(e){e||(e={});for(var t=new Ec({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Mc(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new An(2));;){var i=new An(t.generate(n));if(!(i.cmp(r)>0))return i.iaddn(1),this.keyFromPrivate(i)}},Dc.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},Dc.prototype.sign=function(e,t,n,r){"object"==typeof n&&(r=n,n=null),r||(r={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new An(e,16));for(var i=this.n.byteLength(),a=t.getPrivate().toArray("be",i),o=e.toArray("be",i),s=new Ec({hash:this.hash,entropy:a,nonce:o,pers:r.pers,persEnc:r.persEnc||"utf8"}),u=this.n.sub(new An(1)),c=0;;c++){var l=r.k?r.k(c):new An(s.generate(this.n.byteLength()));if(!((l=this._truncateToN(l,!0)).cmpn(1)<=0||l.cmp(u)>=0)){var d=this.g.mul(l);if(!d.isInfinity()){var f=d.getX(),p=f.umod(this.n);if(0!==p.cmpn(0)){var h=l.invm(this.n).mul(p.mul(t.getPrivate()).iadd(e));if(0!==(h=h.umod(this.n)).cmpn(0)){var m=(d.getY().isOdd()?1:0)|(0!==f.cmp(p)?2:0);return r.canonical&&h.cmp(this.nh)>0&&(h=this.n.sub(h),m^=1),new kc({r:p,s:h,recoveryParam:m})}}}}}},Dc.prototype.verify=function(e,t,n,r){e=this._truncateToN(new An(e,16)),n=this.keyFromPublic(n,r);var i=(t=new kc(t,"hex")).r,a=t.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var o,s=a.invm(this.n),u=s.mul(e).umod(this.n),c=s.mul(i).umod(this.n);return this.curve._maxwellTrick?!(o=this.g.jmulAdd(u,n.getPublic(),c)).isInfinity()&&o.eqXToP(i):!(o=this.g.mulAdd(u,n.getPublic(),c)).isInfinity()&&0===o.getX().umod(this.n).cmp(i)},Dc.prototype.recoverPubKey=function(e,t,n,r){Bc((3&n)===n,"The recovery param is more than two bits"),t=new kc(t,r);var i=this.n,a=new An(e),o=t.r,s=t.s,u=1&n,c=n>>1;if(o.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error("Unable to find sencond key candinate");o=c?this.curve.pointFromX(o.add(this.curve.n),u):this.curve.pointFromX(o,u);var l=t.r.invm(i),d=i.sub(a).mul(l).umod(i),f=s.mul(l).umod(i);return this.g.mulAdd(d,o,f)},Dc.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new kc(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(e,t,i)}catch(e){continue}if(a.eq(n))return i}throw new Error("Unable to find valid recovery factor")};var Lc=rc((function(e,t){var n=t;n.version="6.5.4",n.utils=sc,n.rand=function(){throw new Error("unsupported")},n.curve=Tc,n.curves=wc,n.ec=Fc,n.eddsa=null})),Uc=Lc.ec;const qc=new xn("signing-key/5.7.0");let jc=null;function Gc(){return jc||(jc=new Uc("secp256k1")),jc}class Hc{constructor(e){Or(this,"curve","secp256k1"),Or(this,"privateKey",Vn(e)),32!==Kn(this.privateKey)&&qc.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Gc().keyFromPrivate(qn(this.privateKey));Or(this,"publicKey","0x"+t.getPublic(!1,"hex")),Or(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),Or(this,"_isSigningKey",!0)}_addPoint(e){const t=Gc().keyFromPublic(qn(this.publicKey)),n=Gc().keyFromPublic(qn(e));return"0x"+t.pub.add(n.pub).encodeCompressed("hex")}signDigest(e){const t=Gc().keyFromPrivate(qn(this.privateKey)),n=qn(e);32!==n.length&&qc.throwArgumentError("bad digest length","digest",e);const r=t.sign(n,{canonical:!0});return Zn({recoveryParam:r.recoveryParam,r:$n("0x"+r.r.toString(16),32),s:$n("0x"+r.s.toString(16),32)})}computeSharedSecret(e){const t=Gc().keyFromPrivate(qn(this.privateKey)),n=Gc().keyFromPublic(qn(Wc(e)));return $n("0x"+t.derive(n.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function zc(e,t){const n=Zn(t),r={r:qn(n.r),s:qn(n.s)};return"0x"+Gc().recoverPubKey(qn(e),r,n.recoveryParam).encode("hex",!1)}function Wc(e,t){const n=qn(e);if(32===n.length){const e=new Hc(n);return t?"0x"+Gc().keyFromPrivate(n).getPublic(!0,"hex"):e.publicKey}return 33===n.length?t?Vn(n):"0x"+Gc().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?t?"0x"+Gc().keyFromPublic(n).getPublic(!0,"hex"):Vn(n):qc.throwArgumentError("invalid public or private key","key","[REDACTED]")}var Vc=Object.freeze({__proto__:null,SigningKey:Hc,computePublicKey:Wc,recoverPublicKey:zc});const Kc=new xn("transactions/5.7.0");var Xc;function Jc(e){return"0x"===e?null:Ni(e)}function Yc(e){return"0x"===e?Yi:ur.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Xc||(Xc={}));const Qc=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],$c={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Zc(e){return Ni(Xn(mi(Xn(Wc(e),1)),12))}function el(e,t){return Zc(zc(qn(e),t))}function tl(e,t){const n=Gn(ur.from(e).toHexString());return n.length>32&&Kc.throwArgumentError("invalid length for "+t,"transaction:"+t,e),n}function nl(e,t){return{address:Ni(e),storageKeys:(t||[]).map(((t,n)=>(32!==Kn(t)&&Kc.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase())))}}function rl(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&Kc.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),nl(e[0],e[1])):nl(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const n=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return nl(t,Object.keys(n).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}function il(e){return rl(e).map((e=>[e.address,e.storageKeys]))}function al(e,t){if(null!=e.gasPrice){const t=ur.from(e.gasPrice),n=ur.from(e.maxFeePerGas||0);t.eq(n)||Kc.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:n})}const n=[tl(e.chainId||0,"chainId"),tl(e.nonce||0,"nonce"),tl(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),tl(e.maxFeePerGas||0,"maxFeePerGas"),tl(e.gasLimit||0,"gasLimit"),null!=e.to?Ni(e.to):"0x",tl(e.value||0,"value"),e.data||"0x",il(e.accessList||[])];if(t){const e=Zn(t);n.push(tl(e.recoveryParam,"recoveryParam")),n.push(Gn(e.r)),n.push(Gn(e.s))}return Jn(["0x02",wi(n)])}function ol(e,t){const n=[tl(e.chainId||0,"chainId"),tl(e.nonce||0,"nonce"),tl(e.gasPrice||0,"gasPrice"),tl(e.gasLimit||0,"gasLimit"),null!=e.to?Ni(e.to):"0x",tl(e.value||0,"value"),e.data||"0x",il(e.accessList||[])];if(t){const e=Zn(t);n.push(tl(e.recoveryParam,"recoveryParam")),n.push(Gn(e.r)),n.push(Gn(e.s))}return Jn(["0x01",wi(n)])}function sl(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&Kc.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){Nr(e,$c);const n=[];Qc.forEach((function(t){let r=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),r=qn(Vn(r,i)),t.length&&r.length!==t.length&&r.length>0&&Kc.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r),t.maxLength&&(r=Gn(r),r.length>t.maxLength&&Kc.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r)),n.push(Vn(r))}));let r=0;if(null!=e.chainId?(r=e.chainId,"number"!=typeof r&&Kc.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Fn(t)&&t.v>28&&(r=Math.floor((t.v-35)/2)),0!==r&&(n.push(Vn(r)),n.push("0x"),n.push("0x")),!t)return wi(n);const i=Zn(t);let a=27+i.recoveryParam;return 0!==r?(n.pop(),n.pop(),n.pop(),a+=2*r+8,i.v>28&&i.v!==a&&Kc.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==a&&Kc.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),n.push(Vn(a)),n.push(Gn(qn(i.r))),n.push(Gn(qn(i.s))),wi(n)}(e,t);switch(e.type){case 1:return ol(e,t);case 2:return al(e,t)}return Kc.throwError(`unsupported transaction type: ${e.type}`,xn.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function ul(e,t,n){try{const n=Yc(t[0]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");e.v=n}catch(e){Kc.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=$n(t[1],32),e.s=$n(t[2],32);try{const t=mi(n(e));e.from=el(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}function cl(e){const t=qn(e);if(t[0]>127)return function(e){const t=_i(e);9!==t.length&&6!==t.length&&Kc.throwArgumentError("invalid raw transaction","rawTransaction",e);const n={nonce:Yc(t[0]).toNumber(),gasPrice:Yc(t[1]),gasLimit:Yc(t[2]),to:Jc(t[3]),value:Yc(t[4]),data:t[5],chainId:0};if(6===t.length)return n;try{n.v=ur.from(t[6]).toNumber()}catch(e){return n}if(n.r=$n(t[7],32),n.s=$n(t[8],32),ur.from(n.r).isZero()&&ur.from(n.s).isZero())n.chainId=n.v,n.v=0;else{n.chainId=Math.floor((n.v-35)/2),n.chainId<0&&(n.chainId=0);let r=n.v-27;const i=t.slice(0,6);0!==n.chainId&&(i.push(Vn(n.chainId)),i.push("0x"),i.push("0x"),r-=2*n.chainId+8);const a=mi(wi(i));try{n.from=el(a,{r:Vn(n.r),s:Vn(n.s),recoveryParam:r})}catch(e){}n.hash=mi(e)}return n.type=null,n}(t);switch(t[0]){case 1:return function(e){const t=_i(e.slice(1));8!==t.length&&11!==t.length&&Kc.throwArgumentError("invalid component count for transaction type: 1","payload",Vn(e));const n={type:1,chainId:Yc(t[0]).toNumber(),nonce:Yc(t[1]).toNumber(),gasPrice:Yc(t[2]),gasLimit:Yc(t[3]),to:Jc(t[4]),value:Yc(t[5]),data:t[6],accessList:rl(t[7])};return 8===t.length||(n.hash=mi(e),ul(n,t.slice(8),ol)),n}(t);case 2:return function(e){const t=_i(e.slice(1));9!==t.length&&12!==t.length&&Kc.throwArgumentError("invalid component count for transaction type: 2","payload",Vn(e));const n=Yc(t[2]),r=Yc(t[3]),i={type:2,chainId:Yc(t[0]).toNumber(),nonce:Yc(t[1]).toNumber(),maxPriorityFeePerGas:n,maxFeePerGas:r,gasPrice:null,gasLimit:Yc(t[4]),to:Jc(t[5]),value:Yc(t[6]),data:t[7],accessList:rl(t[8])};return 9===t.length||(i.hash=mi(e),ul(i,t.slice(9),al)),i}(t)}return Kc.throwError(`unsupported transaction type: ${t[0]}`,xn.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}var ll=Object.freeze({__proto__:null,get TransactionTypes(){return Xc},accessListify:rl,computeAddress:Zc,parse:cl,recoverAddress:el,serialize:sl});var dl=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const fl=new xn("contracts/5.7.0"),pl={chainId:!0,data:!0,from:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0,customData:!0,ccipReadEnabled:!0};function hl(e,t){return dl(this,void 0,void 0,(function*(){const n=yield t;"string"!=typeof n&&fl.throwArgumentError("invalid address or ENS name","name",n);try{return Ni(n)}catch(e){}e||fl.throwError("a provider or signer is needed to resolve ENS names",xn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&fl.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r}))}function ml(e,t,n){return dl(this,void 0,void 0,(function*(){return Array.isArray(n)?yield Promise.all(n.map(((n,r)=>ml(e,Array.isArray(t)?t[r]:t[n.name],n)))):"address"===n.type?yield hl(e,t):"tuple"===n.type?yield ml(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>ml(e,t,n.arrayChildren)))):Promise.reject(fl.makeError("invalid value for array",xn.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function yl(e,t,n){return dl(this,void 0,void 0,(function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=xr(n.pop())),fl.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from?r.from=Sr({override:hl(e.signer,r.from),signer:e.signer.getAddress()}).then((e=>dl(this,void 0,void 0,(function*(){return Ni(e.signer)!==e.override&&fl.throwError("Contract with a Signer cannot override from",xn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):r.from=e.signer.getAddress():r.from&&(r.from=hl(e.provider,r.from));const i=yield Sr({args:ml(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:Sr(r)||{}}),a=e.interface.encodeFunctionData(t,i.args),o={data:a,to:i.address},s=i.overrides;if(null!=s.nonce&&(o.nonce=ur.from(s.nonce).toNumber()),null!=s.gasLimit&&(o.gasLimit=ur.from(s.gasLimit)),null!=s.gasPrice&&(o.gasPrice=ur.from(s.gasPrice)),null!=s.maxFeePerGas&&(o.maxFeePerGas=ur.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(o.maxPriorityFeePerGas=ur.from(s.maxPriorityFeePerGas)),null!=s.from&&(o.from=s.from),null!=s.type&&(o.type=s.type),null!=s.accessList&&(o.accessList=rl(s.accessList)),null==o.gasLimit&&null!=t.gas){let e=21e3;const n=qn(a);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);o.gasLimit=ur.from(t.gas).add(e)}if(s.value){const e=ur.from(s.value);e.isZero()||t.payable||fl.throwError("non-payable method cannot override value",xn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),o.value=e}s.customData&&(o.customData=xr(s.customData)),s.ccipReadEnabled&&(o.ccipReadEnabled=!!s.ccipReadEnabled),delete r.nonce,delete r.gasLimit,delete r.gasPrice,delete r.from,delete r.value,delete r.type,delete r.accessList,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.customData,delete r.ccipReadEnabled;const u=Object.keys(r).filter((e=>null!=r[e]));return u.length&&fl.throwError(`cannot override ${u.map((e=>JSON.stringify(e))).join(",")}`,xn.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),o}))}function gl(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then((t=>(t.events=t.logs.map((n=>{let r=Dr(n),i=null;try{i=e.interface.parseLog(n)}catch(e){}return i&&(r.args=i.args,r.decode=(t,n)=>e.interface.decodeEventLog(i.eventFragment,t,n),r.event=i.name,r.eventSignature=i.signature),r.removeListener=()=>e.provider,r.getBlock=()=>e.provider.getBlock(t.blockHash),r.getTransaction=()=>e.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>Promise.resolve(t),r})),t)))}function bl(e,t,n){const r=e.signer||e.provider;return function(...i){return dl(this,void 0,void 0,(function*(){let a;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=xr(i.pop());null!=e.blockTag&&(a=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(a));const o=yield yl(e,t,i),s=yield r.call(o,a);try{let r=e.interface.decodeFunctionResult(t,s);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===xn.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=o),t}}))}}function vl(e,t,n){return t.constant?bl(e,t,n):function(e,t){return function(...n){return dl(this,void 0,void 0,(function*(){e.signer||fl.throwError("sending a transaction requires a signer",xn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield yl(e,t,n),i=yield e.signer.sendTransaction(r);return gl(e,i),i}))}}(e,t)}function Tl(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map((e=>Array.isArray(e)?e.join("|"):e)).join(":"):""):"*"}let wl=class{constructor(e,t){Or(this,"tag",e),Or(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter((n=>!(!t&&n.listener===e)||(t=!0,!1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((e=>e.listener))}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter((t=>{const n=e.slice();return setTimeout((()=>{t.listener.apply(this,n)}),0),!t.once})),t}prepareEvent(e){}getEmit(e){return[e]}},Al=class extends wl{constructor(){super("error",null)}},El=class extends wl{constructor(e,t,n,r){const i={address:e};let a=t.getEventTopic(n);r?(a!==r[0]&&fl.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[a],super(Tl(i),i),Or(this,"address",e),Or(this,"interface",t),Or(this,"fragment",n)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=li(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}},_l=class extends wl{constructor(e,t){super("*",{address:e}),Or(this,"address",e),Or(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,n)=>this.interface.decodeEventLog(t.eventFragment,e,n),e.args=t.args}catch(e){}}},Il=class{constructor(e,t,n){Or(this,"interface",kr(new.target,"getInterface")(t)),null==n?(Or(this,"provider",null),Or(this,"signer",null)):ts.isSigner(n)?(Or(this,"provider",n.provider||null),Or(this,"signer",n)):Yo.isProvider(n)?(Or(this,"provider",n),Or(this,"signer",null)):fl.throwArgumentError("invalid signer or provider","signerOrProvider",n),Or(this,"callStatic",{}),Or(this,"estimateGas",{}),Or(this,"functions",{}),Or(this,"populateTransaction",{}),Or(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const n=this.interface.events[t];Or(this.filters,t,((...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(n,e)}))),e[n.name]||(e[n.name]=[]),e[n.name].push(t)})),Object.keys(e).forEach((t=>{const n=e[t];1===n.length?Or(this.filters,t,this.filters[n[0]]):fl.warn(`Duplicate definition of ${t} (${n.join(", ")})`)}))}if(Or(this,"_runningEvents",{}),Or(this,"_wrappedEmits",{}),null==e&&fl.throwArgumentError("invalid contract address or ENS name","addressOrName",e),Or(this,"address",e),this.provider)Or(this,"resolvedAddress",hl(this.provider,e));else try{Or(this,"resolvedAddress",Promise.resolve(Ni(e)))}catch(e){fl.throwError("provider is required to use ENS name as contract address",xn.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch((e=>{}));const r={},i={};Object.keys(this.interface.functions).forEach((e=>{const t=this.interface.functions[e];if(i[e])fl.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const n=t.name;r[`%${n}`]||(r[`%${n}`]=[]),r[`%${n}`].push(e)}null==this[e]&&Or(this,e,vl(this,t,!0)),null==this.functions[e]&&Or(this.functions,e,vl(this,t,!1)),null==this.callStatic[e]&&Or(this.callStatic,e,bl(this,t,!0)),null==this.populateTransaction[e]&&Or(this.populateTransaction,e,function(e,t){return function(...n){return yl(e,t,n)}}(this,t)),null==this.estimateGas[e]&&Or(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return dl(this,void 0,void 0,(function*(){n||fl.throwError("estimate require a provider or signer",xn.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield yl(e,t,r);return yield n.estimateGas(i)}))}}(this,t))}})),Object.keys(r).forEach((e=>{const t=r[e];if(t.length>1)return;e=e.substring(1);const n=t[0];try{null==this[e]&&Or(this,e,this[n])}catch(e){}null==this.functions[e]&&Or(this.functions,e,this.functions[n]),null==this.callStatic[e]&&Or(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&Or(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&Or(this.estimateGas,e,this.estimateGas[n])}))}static getContractAddress(e){return Mi(e)}static getInterface(e){return Wo.isInterface(e)?e:new Wo(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,e).then((e=>("0x"===e&&fl.throwError("contract not deployed",xn.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||fl.throwError("sending a transactions require a signer",xn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=xr(e||{});return["from","to"].forEach((function(e){null!=t[e]&&fl.throwError("cannot override "+e,xn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new ns(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&Or(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Go.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new Al);if("event"===e)return this._normalizeRunningEvent(new wl("event",null));if("*"===e)return this._normalizeRunningEvent(new _l(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new El(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const n=this.interface.getEvent(t);return this._normalizeRunningEvent(new El(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new wl(Tl(t),t))}return this._normalizeRunningEvent(new _l(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,n){const r=Dr(t);return r.removeListener=()=>{n&&(e.removeListener(n),this._checkRunningEvents(e))},r.getBlock=()=>this.provider.getBlock(t.blockHash),r.getTransaction=()=>this.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(r),r}_addEventListener(e,t,n){if(this.provider||fl.throwError("events require a provider or a signer with a provider",xn.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,n),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const n=n=>{let r=this._wrapEvent(e,n,t);if(null==r.decodeError)try{const t=e.getEmit(r);this.emit(e.filter,...t)}catch(e){r.decodeError=e.error}null!=e.filter&&this.emit("event",r),null!=r.decodeError&&this.emit("error",r.decodeError,r)};this._wrappedEmits[e.tag]=n,null!=e.filter&&this.provider.on(e.filter,n)}}queryFilter(e,t,n){const r=this._getRunningEvent(e),i=xr(r.filter);return"string"==typeof t&&zn(t,32)?(null!=n&&fl.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=n?n:"latest"),this.provider.getLogs(i).then((e=>e.map((e=>this._wrapEvent(r,e,null)))))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const n=this._getRunningEvent(e),r=n.run(t)>0;return this._checkRunningEvents(n),r}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce(((e,t)=>e+this._runningEvents[t].listenerCount()),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach((t=>{e.push(t)}));return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const n=this._getRunningEvent(e);return n.removeListener(t),this._checkRunningEvents(n),this}removeListener(e,t){return this.off(e,t)}},Rl=class extends Il{};class Cl{constructor(e,t,n){let r=null;r="string"==typeof t?t:Un(t)?Vn(t):t&&"string"==typeof t.object?t.object:"!","0x"!==r.substring(0,2)&&(r="0x"+r),(!zn(r)||r.length%2)&&fl.throwArgumentError("invalid bytecode","bytecode",t),n&&!ts.isSigner(n)&&fl.throwArgumentError("invalid signer","signer",n),Or(this,"bytecode",r),Or(this,"interface",kr(new.target,"getInterface")(e)),Or(this,"signer",n||null)}getDeployTransaction(...e){let t={};if(e.length===this.interface.deploy.inputs.length+1&&"object"==typeof e[e.length-1]){t=xr(e.pop());for(const e in t)if(!pl[e])throw new Error("unknown transaction override "+e)}if(["data","from","to"].forEach((e=>{null!=t[e]&&fl.throwError("cannot override "+e,xn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.value){ur.from(t.value).isZero()||this.interface.deploy.payable||fl.throwError("non-payable constructor cannot override value",xn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:t.value})}return fl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor"),t.data=Vn(jn([this.bytecode,this.interface.encodeDeploy(e)])),t}deploy(...e){return dl(this,void 0,void 0,(function*(){let t={};e.length===this.interface.deploy.inputs.length+1&&(t=e.pop()),fl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor");const n=yield ml(this.signer,e,this.interface.deploy.inputs);n.push(t);const r=this.getDeployTransaction(...n),i=yield this.signer.sendTransaction(r),a=kr(this.constructor,"getContractAddress")(i),o=kr(this.constructor,"getContract")(a,this.interface,this.signer);return gl(o,i),Or(o,"deployTransaction",i),o}))}attach(e){return this.constructor.getContract(e,this.interface,this.signer)}connect(e){return new this.constructor(this.interface,this.bytecode,e)}static fromSolidity(e,t){null==e&&fl.throwError("missing compiler output",xn.errors.MISSING_ARGUMENT,{argument:"compilerOutput"}),"string"==typeof e&&(e=JSON.parse(e));const n=e.abi;let r=null;return e.bytecode?r=e.bytecode:e.evm&&e.evm.bytecode&&(r=e.evm.bytecode),new this(n,r,t)}static getInterface(e){return Rl.getInterface(e)}static getContractAddress(e){return Mi(e)}static getContract(e,t,n){return new Rl(e,t,n)}}class Ol{constructor(e){Or(this,"alphabet",e),Or(this,"base",e.length),Or(this,"_alphabetMap",{}),Or(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=qn(e);if(0===t.length)return"";let n=[0];for(let e=0;e<t.length;++e){let r=t[e];for(let e=0;e<n.length;++e)r+=n[e]<<8,n[e]=r%this.base,r=r/this.base|0;for(;r>0;)n.push(r%this.base),r=r/this.base|0}let r="";for(let e=0;0===t[e]&&e<t.length-1;++e)r+=this._leader;for(let e=n.length-1;e>=0;--e)r+=this.alphabet[n[e]];return r}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let n=0;n<e.length;n++){let r=this._alphabetMap[e[n]];if(void 0===r)throw new Error("Non-base"+this.base+" character");let i=r;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let n=0;e[n]===this._leader&&n<e.length-1;++n)t.push(0);return qn(new Uint8Array(t.reverse()))}}const kl=new Ol("abcdefghijklmnopqrstuvwxyz234567"),Sl=new Ol("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");var Nl,xl=Object.freeze({__proto__:null,Base32:kl,Base58:Sl,BaseX:Ol});!function(e){e.sha256="sha256",e.sha512="sha512"}(Nl||(Nl={}));const Pl=new xn("sha2/5.7.0");function Ml(e){return"0x"+nc.ripemd160().update(qn(e)).digest("hex")}function Bl(e){return"0x"+nc.sha256().update(qn(e)).digest("hex")}function Dl(e){return"0x"+nc.sha512().update(qn(e)).digest("hex")}function Fl(e,t,n){return Nl[e]||Pl.throwError("unsupported algorithm "+e,xn.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+nc.hmac(nc[e],qn(t)).update(qn(n)).digest("hex")}var Ll=Object.freeze({__proto__:null,get SupportedAlgorithm(){return Nl},computeHmac:Fl,ripemd160:Ml,sha256:Bl,sha512:Dl});function Ul(e,t,n,r,i){let a;e=qn(e),t=qn(t);let o=1;const s=new Uint8Array(r),u=new Uint8Array(t.length+4);let c,l;u.set(t);for(let d=1;d<=o;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let f=qn(Fl(i,e,u));a||(a=f.length,l=new Uint8Array(a),o=Math.ceil(r/a),c=r-(o-1)*a),l.set(f);for(let t=1;t<n;t++){f=qn(Fl(i,e,f));for(let e=0;e<a;e++)l[e]^=f[e]}const p=(d-1)*a,h=d===o?c:a;s.set(qn(l).slice(0,h),p)}return Vn(s)}const ql=new xn("wordlists/5.7.0");class jl{constructor(e){ql.checkAbstract(new.target,jl),Or(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let n=0;n<2048;n++){const r=e.getWord(n);if(n!==e.getWordIndex(r))return"0x";t.push(r)}return Ua(t.join("\n")+"\n")}static register(e,t){t||(t=e.locale)}}let Gl=null;function Hl(e){if(null==Gl&&(Gl="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo".replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==jl.check(e)))throw Gl=null,new Error("BIP39 Wordlist for en (English) FAILED")}const zl=new class extends jl{constructor(){super("en")}getWord(e){return Hl(this),Gl[e]}getWordIndex(e){return Hl(this),Gl.indexOf(e)}};jl.register(zl);const Wl={en:zl},Vl=new xn("hdnode/5.7.0"),Kl=ur.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Xl=fa("Bitcoin seed"),Jl=2147483648;function Yl(e){return(1<<e)-1<<8-e}function Ql(e){return $n(Vn(e),32)}function $l(e){return Sl.encode(jn([e,Xn(Bl(Bl(e)),0,4)]))}function Zl(e){if(null==e)return Wl.en;if("string"==typeof e){const t=Wl[e];return null==t&&Vl.throwArgumentError("unknown locale","wordlist",e),t}return e}const ed={},td="m/44'/60'/0'/0/0";class nd{constructor(e,t,n,r,i,a,o,s){if(e!==ed)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new Hc(t);Or(this,"privateKey",e.privateKey),Or(this,"publicKey",e.compressedPublicKey)}else Or(this,"privateKey",null),Or(this,"publicKey",Vn(n));Or(this,"parentFingerprint",r),Or(this,"fingerprint",Xn(Ml(Bl(this.publicKey)),0,4)),Or(this,"address",Zc(this.publicKey)),Or(this,"chainCode",i),Or(this,"index",a),Or(this,"depth",o),null==s?(Or(this,"mnemonic",null),Or(this,"path",null)):"string"==typeof s?(Or(this,"mnemonic",null),Or(this,"path",s)):(Or(this,"mnemonic",s),Or(this,"path",s.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return $l(jn([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Vn(this.depth),this.parentFingerprint,$n(Vn(this.index),4),this.chainCode,null!=this.privateKey?jn(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new nd(ed,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const n=new Uint8Array(37);if(e&Jl){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(qn(this.privateKey),1),t&&(t+="'")}else n.set(qn(this.publicKey));for(let t=24;t>=0;t-=8)n[33+(t>>3)]=e>>24-t&255;const r=qn(Fl(Nl.sha512,this.chainCode,n)),i=r.slice(0,32),a=r.slice(32);let o=null,s=null;if(this.privateKey)o=Ql(ur.from(i).add(this.privateKey).mod(Kl));else{s=new Hc(Vn(i))._addPoint(this.publicKey)}let u=t;const c=this.mnemonic;return c&&(u=Object.freeze({phrase:c.phrase,path:t,locale:c.locale||"en"})),new nd(ed,o,s,this.fingerprint,Ql(a),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let n=this;for(let e=0;e<t.length;e++){const r=t[e];if(r.match(/^[0-9]+'$/)){const e=parseInt(r.substring(0,r.length-1));if(e>=Jl)throw new Error("invalid path index - "+r);n=n._derive(Jl+e)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const e=parseInt(r);if(e>=Jl)throw new Error("invalid path index - "+r);n=n._derive(e)}}}return n}static _fromSeed(e,t){const n=qn(e);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=qn(Fl(Nl.sha512,Xl,n));return new nd(ed,Ql(r.slice(0,32)),null,"0x00000000",Ql(r.slice(32)),0,0,t)}static fromMnemonic(e,t,n){return e=ad(id(e,n=Zl(n)),n),nd._fromSeed(rd(e,t),{phrase:e,path:"m",locale:n.locale})}static fromSeed(e){return nd._fromSeed(e,null)}static fromExtendedKey(e){const t=Sl.decode(e);82===t.length&&$l(t.slice(0,78))===e||Vl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=t[4],r=Vn(t.slice(5,9)),i=parseInt(Vn(t.slice(9,13)).substring(2),16),a=Vn(t.slice(13,45)),o=t.slice(45,78);switch(Vn(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new nd(ed,null,Vn(o),r,a,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==o[0])break;return new nd(ed,Vn(o.slice(1)),null,r,a,i,n,null)}return Vl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function rd(e,t){t||(t="");const n=fa("mnemonic"+t,sa.NFKD);return Ul(fa(e,sa.NFKD),n,2048,64,"sha512")}function id(e,t){t=Zl(t),Vl.checkNormalize();const n=t.split(e);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=qn(new Uint8Array(Math.ceil(11*n.length/8)));let i=0;for(let e=0;e<n.length;e++){let a=t.getWordIndex(n[e].normalize("NFKD"));if(-1===a)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)a&1<<10-e&&(r[i>>3]|=1<<7-i%8),i++}const a=32*n.length/3,o=Yl(n.length/3);if((qn(Bl(r.slice(0,a/8)))[0]&o)!==(r[r.length-1]&o))throw new Error("invalid checksum");return Vn(r.slice(0,a/8))}function ad(e,t){if(t=Zl(t),(e=qn(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const n=[0];let r=11;for(let t=0;t<e.length;t++)r>8?(n[n.length-1]<<=8,n[n.length-1]|=e[t],r-=8):(n[n.length-1]<<=r,n[n.length-1]|=e[t]>>8-r,n.push(e[t]&(1<<8-r)-1),r+=3);const i=e.length/4,a=qn(Bl(e))[0]&Yl(i);return n[n.length-1]<<=i,n[n.length-1]|=a>>8-i,t.join(n.map((e=>t.getWord(e))))}function od(e,t){try{return id(e,t),!0}catch(e){}return!1}function sd(e){return("number"!=typeof e||e<0||e>=Jl||e%1)&&Vl.throwArgumentError("invalid account index","index",e),`m/44'/60'/${e}'/0/0`}var ud=Object.freeze({__proto__:null,HDNode:nd,defaultPath:td,entropyToMnemonic:ad,getAccountPath:sd,isValidMnemonic:od,mnemonicToEntropy:id,mnemonicToSeed:rd});const cd=new xn("random/5.7.0");const ld=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let dd=ld.crypto||ld.msCrypto;function fd(e){(e<=0||e>1024||e%1||e!=e)&&cd.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return dd.getRandomValues(t),qn(t)}function pd(e){for(let t=(e=e.slice()).length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}dd&&dd.getRandomValues||(cd.warn("WARNING: Missing strong random number source"),dd={getRandomValues:function(e){return cd.throwError("no secure random source avaialble",xn.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});var hd=Object.freeze({__proto__:null,randomBytes:fd,shuffled:pd}),md={exports:{}};!function(e,t){!function(t){function n(e){return parseInt(e)===e}function r(e){if(!n(e.length))return!1;for(var t=0;t<e.length;t++)if(!n(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!r(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(n(e.length)&&r(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function a(e){return new Uint8Array(e)}function o(e,t,n,r,i){null==r&&null==i||(e=e.slice?e.slice(r,i):Array.prototype.slice.call(e,r,i)),t.set(e,n)}var s,u={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var r=e.charCodeAt(n++);37===r?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(r)}return i(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var r=e[n];r<128?(t.push(String.fromCharCode(r)),n++):r>191&&r<224?(t.push(String.fromCharCode((31&r)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&r)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}},c=(s="0123456789abcdef",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(s[(240&r)>>4]+s[15&r])}return t.join("")}}),l={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],f=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],h=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],T=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],w=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],A=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],_=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],I=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function R(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};C.prototype._prepare=function(){var e=l[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,r=4*(e+1),i=this.key.length/4,a=R(this.key);for(t=0;t<i;t++)n=t>>2,this._Ke[n][t%4]=a[t],this._Kd[e-n][t%4]=a[t];for(var o,s=0,u=i;u<r;){if(o=a[i-1],a[0]^=f[o>>16&255]<<24^f[o>>8&255]<<16^f[255&o]<<8^f[o>>24&255]^d[s]<<24,s+=1,8!=i)for(t=1;t<i;t++)a[t]^=a[t-1];else{for(t=1;t<i/2;t++)a[t]^=a[t-1];o=a[i/2-1],a[i/2]^=f[255&o]^f[o>>8&255]<<8^f[o>>16&255]<<16^f[o>>24&255]<<24;for(t=i/2+1;t<i;t++)a[t]^=a[t-1]}for(t=0;t<i&&u<r;)c=u>>2,p=u%4,this._Ke[c][p]=a[t],this._Kd[e-c][p]=a[t++],u++}for(var c=1;c<e;c++)for(var p=0;p<4;p++)o=this._Kd[c][p],this._Kd[c][p]=A[o>>24&255]^E[o>>16&255]^_[o>>8&255]^I[255&o]},C.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],r=R(e),i=0;i<4;i++)r[i]^=this._Ke[0][i];for(var o=1;o<t;o++){for(i=0;i<4;i++)n[i]=h[r[i]>>24&255]^m[r[(i+1)%4]>>16&255]^y[r[(i+2)%4]>>8&255]^g[255&r[(i+3)%4]]^this._Ke[o][i];r=n.slice()}var s,u=a(16);for(i=0;i<4;i++)s=this._Ke[t][i],u[4*i]=255&(f[r[i]>>24&255]^s>>24),u[4*i+1]=255&(f[r[(i+1)%4]>>16&255]^s>>16),u[4*i+2]=255&(f[r[(i+2)%4]>>8&255]^s>>8),u[4*i+3]=255&(f[255&r[(i+3)%4]]^s);return u},C.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],r=R(e),i=0;i<4;i++)r[i]^=this._Kd[0][i];for(var o=1;o<t;o++){for(i=0;i<4;i++)n[i]=b[r[i]>>24&255]^v[r[(i+3)%4]>>16&255]^T[r[(i+2)%4]>>8&255]^w[255&r[(i+1)%4]]^this._Kd[o][i];r=n.slice()}var s,u=a(16);for(i=0;i<4;i++)s=this._Kd[t][i],u[4*i]=255&(p[r[i]>>24&255]^s>>24),u[4*i+1]=255&(p[r[(i+3)%4]>>16&255]^s>>16),u[4*i+2]=255&(p[r[(i+2)%4]>>8&255]^s>>8),u[4*i+3]=255&(p[255&r[(i+1)%4]]^s);return u};var O=function(e){if(!(this instanceof O))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};O.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16)o(e,n,0,r,r+16),o(n=this._aes.encrypt(n),t,r);return t},O.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16)o(e,n,0,r,r+16),o(n=this._aes.decrypt(n),t,r);return t};var k=function(e,t){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=a(16);this._lastCipherblock=i(t,!0),this._aes=new C(e)};k.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16){o(e,n,0,r,r+16);for(var s=0;s<16;s++)n[s]^=this._lastCipherblock[s];this._lastCipherblock=this._aes.encrypt(n),o(this._lastCipherblock,t,r)}return t},k.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16){o(e,n,0,r,r+16),n=this._aes.decrypt(n);for(var s=0;s<16;s++)t[r+s]=n[s]^this._lastCipherblock[s];o(e,this._lastCipherblock,0,r,r+16)}return t};var S=function(e,t,n){if(!(this instanceof S))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=a(16);n||(n=1),this.segmentSize=n,this._shiftRegister=i(t,!0),this._aes=new C(e)};S.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(n,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n},S.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n};var N=function(e,t){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=a(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new C(e)};N.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},N.prototype.decrypt=N.prototype.encrypt;var x=function(e){if(!(this instanceof x))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=a(16),this.setValue(e)):this.setBytes(e)};x.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},x.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},x.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var P=function(e,t){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof x||(t=new x(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new C(e)};P.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},P.prototype.decrypt=P.prototype.encrypt;var M={AES:C,Counter:x,ModeOfOperation:{ecb:O,cbc:k,cfb:S,ofb:N,ctr:P},utils:{hex:c,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,n=a(e.length+t);o(e,n);for(var r=e.length;r<n.length;r++)n[r]=t;return n},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,r=0;r<t;r++)if(e[n+r]!==t)throw new Error("PKCS#7 invalid padding byte");var s=a(n);return o(e,s,0,0,n),s}}},_arrayTest:{coerceArray:i,createArray:a,copyArray:o}};e.exports=M}()}(md);var yd=gt(md.exports);const gd="json-wallets/5.7.0";function bd(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),qn(e)}function vd(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function Td(e){return"string"==typeof e?fa(e,sa.NFKC):qn(e)}function wd(e,t){let n=e;const r=t.toLowerCase().split("/");for(let e=0;e<r.length;e++){let t=null;for(const i in n)if(i.toLowerCase()===r[e]){t=n[i];break}if(null===t)return null;n=t}return n}function Ad(e){const t=qn(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=Vn(t);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const Ed=new xn(gd);class _d extends Fr{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function Id(e,t){const n=JSON.parse(e);t=Td(t);const r=Ni(wd(n,"ethaddr")),i=bd(wd(n,"encseed"));i&&i.length%16==0||Ed.throwArgumentError("invalid encseed","json",e);const a=qn(Ul(t,t,2e3,32,"sha256")).slice(0,16),o=i.slice(0,16),s=i.slice(16),u=new yd.ModeOfOperation.cbc(a,o),c=yd.padding.pkcs7.strip(qn(u.decrypt(s)));let l="";for(let e=0;e<c.length;e++)l+=String.fromCharCode(c[e]);const d=mi(fa(l));return new _d({_isCrowdsaleAccount:!0,address:r,privateKey:d})}function Rd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Cd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}function Od(e){if(Rd(e))try{return Ni(JSON.parse(e).ethaddr)}catch(e){return null}if(Cd(e))try{return Ni(JSON.parse(e).address)}catch(e){return null}return null}var kd={exports:{}};!function(e,t){!function(t){const n=2147483647;function r(e){const t=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]);let n=1779033703,r=3144134277,i=1013904242,a=2773480762,o=1359893119,s=2600822924,u=528734635,c=1541459225;const l=new Uint32Array(64);function d(e){let d=0,f=e.length;for(;f>=64;){let p,h,m,y,g,b=n,v=r,T=i,w=a,A=o,E=s,_=u,I=c;for(h=0;h<16;h++)m=d+4*h,l[h]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(h=16;h<64;h++)p=l[h-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=l[h-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,l[h]=(y+l[h-7]|0)+(g+l[h-16]|0)|0;for(h=0;h<64;h++)y=(((A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))+(A&E^~A&_)|0)+(I+(t[h]+l[h]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&T^v&T)|0,I=_,_=E,E=A,A=w+y|0,w=T,T=v,v=b,b=y+g|0;n=n+b|0,r=r+v|0,i=i+T|0,a=a+w|0,o=o+A|0,s=s+E|0,u=u+_|0,c=c+I|0,d+=64,f-=64}}d(e);let f,p=e.length%64,h=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),f=p+1;f<y;f++)g.push(0);return g.push(h>>>24&255),g.push(h>>>16&255),g.push(h>>>8&255),g.push(h>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255]}function i(e,t,n){e=e.length<=64?e:r(e);const i=64+t.length+4,a=new Array(i),o=new Array(64);let s,u=[];for(s=0;s<64;s++)a[s]=54;for(s=0;s<e.length;s++)a[s]^=e[s];for(s=0;s<t.length;s++)a[64+s]=t[s];for(s=i-4;s<i;s++)a[s]=0;for(s=0;s<64;s++)o[s]=92;for(s=0;s<e.length;s++)o[s]^=e[s];function c(){for(let e=i-1;e>=i-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;n>=32;)c(),u=u.concat(r(o.concat(r(a)))),n-=32;return n>0&&(c(),u=u.concat(r(o.concat(r(a))).slice(0,n))),u}function a(e,t,n,r,i){let a;for(c(e,16*(2*n-1),i,0,16),a=0;a<2*n;a++)u(e,16*a,i,16),s(i,r),c(i,0,e,t+16*a,16);for(a=0;a<n;a++)c(e,t+2*a*16,e,16*a,16);for(a=0;a<n;a++)c(e,t+16*(2*a+1),e,16*(a+n),16)}function o(e,t){return e<<t|e>>>32-t}function s(e,t){c(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=o(t[0]+t[12],7),t[8]^=o(t[4]+t[0],9),t[12]^=o(t[8]+t[4],13),t[0]^=o(t[12]+t[8],18),t[9]^=o(t[5]+t[1],7),t[13]^=o(t[9]+t[5],9),t[1]^=o(t[13]+t[9],13),t[5]^=o(t[1]+t[13],18),t[14]^=o(t[10]+t[6],7),t[2]^=o(t[14]+t[10],9),t[6]^=o(t[2]+t[14],13),t[10]^=o(t[6]+t[2],18),t[3]^=o(t[15]+t[11],7),t[7]^=o(t[3]+t[15],9),t[11]^=o(t[7]+t[3],13),t[15]^=o(t[11]+t[7],18),t[1]^=o(t[0]+t[3],7),t[2]^=o(t[1]+t[0],9),t[3]^=o(t[2]+t[1],13),t[0]^=o(t[3]+t[2],18),t[6]^=o(t[5]+t[4],7),t[7]^=o(t[6]+t[5],9),t[4]^=o(t[7]+t[6],13),t[5]^=o(t[4]+t[7],18),t[11]^=o(t[10]+t[9],7),t[8]^=o(t[11]+t[10],9),t[9]^=o(t[8]+t[11],13),t[10]^=o(t[9]+t[8],18),t[12]^=o(t[15]+t[14],7),t[13]^=o(t[12]+t[15],9),t[14]^=o(t[13]+t[12],13),t[15]^=o(t[14]+t[13],18);for(let n=0;n<16;++n)e[n]+=t[n]}function u(e,t,n,r){for(let i=0;i<r;i++)n[i]^=e[t+i]}function c(e,t,n,r,i){for(;i--;)n[r++]=e[t++]}function l(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const n=e[t];if("number"!=typeof n||n%1||n<0||n>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function f(e,t,r,o,s,f,p){if(r=d(r,"N"),o=d(o,"r"),s=d(s,"p"),f=d(f,"dkLen"),0===r||0!=(r&r-1))throw new Error("N must be power of 2");if(r>n/128/o)throw new Error("N too large");if(o>n/128/s)throw new Error("r too large");if(!l(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!l(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let h=i(e,t,128*s*o);const m=new Uint32Array(32*s*o);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&h[t+3])<<24|(255&h[t+2])<<16|(255&h[t+1])<<8|(255&h[t+0])<<0}const y=new Uint32Array(64*o),g=new Uint32Array(32*o*r),b=32*o,v=new Uint32Array(16),T=new Uint32Array(16),w=s*r*2;let A,E,_=0,I=null,R=!1,C=0,O=0;const k=p?parseInt(1e3/o):4294967295,S="undefined"!=typeof setImmediate?setImmediate:setTimeout,N=function(){if(R)return p(new Error("cancelled"),_/w);let t;switch(C){case 0:E=32*O*o,c(m,E,y,0,b),C=1,A=0;case 1:t=r-A,t>k&&(t=k);for(let e=0;e<t;e++)c(y,0,g,(A+e)*b,b),a(y,b,o,v,T);if(A+=t,_+=t,p){const e=parseInt(1e3*_/w);if(e!==I){if(R=p(null,_/w),R)break;I=e}}if(A<r)break;A=0,C=2;case 2:t=r-A,t>k&&(t=k);for(let e=0;e<t;e++){const e=y[16*(2*o-1)]&r-1;u(g,e*b,y,b),a(y,b,o,v,T)}if(A+=t,_+=t,p){const e=parseInt(1e3*_/w);if(e!==I){if(R=p(null,_/w),R)break;I=e}}if(A<r)break;if(c(y,0,m,E,b),O++,O<s){C=0;break}h=[];for(let e=0;e<m.length;e++)h.push(m[e]>>0&255),h.push(m[e]>>8&255),h.push(m[e]>>16&255),h.push(m[e]>>24&255);const n=i(e,h,f);return p&&p(null,1,n),n}p&&S(N)};if(!p)for(;;){const e=N();if(null!=e)return e}N()}const p={scrypt:function(e,t,n,r,i,a,o){return new Promise((function(s,u){let c=0;o&&o(0),f(e,t,n,r,i,a,(function(e,t,n){if(e)u(e);else if(n)o&&1!==c&&o(1),s(new Uint8Array(n));else if(o&&t!==c)return c=t,o(t)}))}))},syncScrypt:function(e,t,n,r,i,a){return new Uint8Array(f(e,t,n,r,i,a))}};e.exports=p}()}(kd);var Sd=gt(kd.exports),Nd=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const xd=new xn(gd);function Pd(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Md extends Fr{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Bd(e,t){const n=bd(wd(e,"crypto/ciphertext"));if(Vn(mi(jn([t.slice(16,32),n]))).substring(2)!==wd(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(e,t,n){if("aes-128-ctr"===wd(e,"crypto/cipher")){const r=bd(wd(e,"crypto/cipherparams/iv")),i=new yd.Counter(r);return qn(new yd.ModeOfOperation.ctr(t,i).decrypt(n))}return null}(e,t.slice(0,16),n);r||xd.throwError("unsupported cipher",xn.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),a=Zc(r);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),Ni(t)!==a)throw new Error("address mismatch")}const o={_isKeystoreAccount:!0,address:a,privateKey:Vn(r)};if("0.1"===wd(e,"x-ethers/version")){const t=bd(wd(e,"x-ethers/mnemonicCiphertext")),n=bd(wd(e,"x-ethers/mnemonicCounter")),r=new yd.Counter(n),a=new yd.ModeOfOperation.ctr(i,r),s=wd(e,"x-ethers/path")||td,u=wd(e,"x-ethers/locale")||"en",c=qn(a.decrypt(t));try{const e=ad(c,u),t=nd.fromMnemonic(e,null,u).derivePath(s);if(t.privateKey!=o.privateKey)throw new Error("mnemonic mismatch");o.mnemonic=t.mnemonic}catch(e){if(e.code!==xn.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Md(o)}function Dd(e,t,n,r,i){return qn(Ul(e,t,n,r,i))}function Fd(e,t,n,r,i){return Promise.resolve(Dd(e,t,n,r,i))}function Ld(e,t,n,r,i){const a=Td(t),o=wd(e,"crypto/kdf");if(o&&"string"==typeof o){const t=function(e,t){return xd.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===o.toLowerCase()){const n=bd(wd(e,"crypto/kdfparams/salt")),s=parseInt(wd(e,"crypto/kdfparams/n")),u=parseInt(wd(e,"crypto/kdfparams/r")),c=parseInt(wd(e,"crypto/kdfparams/p"));s&&u&&c||t("kdf",o),0!=(s&s-1)&&t("N",s);const l=parseInt(wd(e,"crypto/kdfparams/dklen"));return 32!==l&&t("dklen",l),r(a,n,s,u,c,64,i)}if("pbkdf2"===o.toLowerCase()){const r=bd(wd(e,"crypto/kdfparams/salt"));let i=null;const o=wd(e,"crypto/kdfparams/prf");"hmac-sha256"===o?i="sha256":"hmac-sha512"===o?i="sha512":t("prf",o);const s=parseInt(wd(e,"crypto/kdfparams/c")),u=parseInt(wd(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),n(a,r,s,u,i)}}return xd.throwArgumentError("unsupported key-derivation function","kdf",o)}function Ud(e,t){const n=JSON.parse(e);return Bd(n,Ld(n,t,Dd,Sd.syncScrypt))}function qd(e,t,n){return Nd(this,void 0,void 0,(function*(){const r=JSON.parse(e);return Bd(r,yield Ld(r,t,Fd,Sd.scrypt,n))}))}function jd(e,t,n,r){try{if(Ni(e.address)!==Zc(e.privateKey))throw new Error("address/privateKey mismatch");if(Pd(e)){const t=e.mnemonic;if(nd.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||td).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof n||r||(r=n,n={}),n||(n={});const i=qn(e.privateKey),a=Td(t);let o=null,s=null,u=null;if(Pd(e)){const t=e.mnemonic;o=qn(id(t.phrase,t.locale||"en")),s=t.path||td,u=t.locale||"en"}let c=n.client;c||(c="ethers.js");let l=null;l=n.salt?qn(n.salt):fd(32);let d=null;if(n.iv){if(d=qn(n.iv),16!==d.length)throw new Error("invalid iv")}else d=fd(16);let f=null;if(n.uuid){if(f=qn(n.uuid),16!==f.length)throw new Error("invalid uuid")}else f=fd(16);let p=1<<17,h=8,m=1;return n.scrypt&&(n.scrypt.N&&(p=n.scrypt.N),n.scrypt.r&&(h=n.scrypt.r),n.scrypt.p&&(m=n.scrypt.p)),Sd.scrypt(a,l,p,h,m,64,r).then((t=>{const n=(t=qn(t)).slice(0,16),r=t.slice(16,32),a=t.slice(32,64),y=new yd.Counter(d),g=qn(new yd.ModeOfOperation.ctr(n,y).encrypt(i)),b=mi(jn([r,g])),v={address:e.address.substring(2).toLowerCase(),id:Ad(f),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Vn(d).substring(2)},ciphertext:Vn(g).substring(2),kdf:"scrypt",kdfparams:{salt:Vn(l).substring(2),n:p,dklen:32,p:m,r:h},mac:b.substring(2)}};if(o){const e=fd(16),t=new yd.Counter(e),n=qn(new yd.ModeOfOperation.ctr(a,t).encrypt(o)),r=new Date,i=r.getUTCFullYear()+"-"+vd(r.getUTCMonth()+1,2)+"-"+vd(r.getUTCDate(),2)+"T"+vd(r.getUTCHours(),2)+"-"+vd(r.getUTCMinutes(),2)+"-"+vd(r.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:c,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Vn(e).substring(2),mnemonicCiphertext:Vn(n).substring(2),path:s,locale:u,version:"0.1"}}return JSON.stringify(v)}))}function Gd(e,t,n){if(Rd(e)){n&&n(0);const r=Id(e,t);return n&&n(1),Promise.resolve(r)}return Cd(e)?qd(e,t,n):Promise.reject(new Error("invalid JSON wallet"))}function Hd(e,t){if(Rd(e))return Id(e,t);if(Cd(e))return Ud(e,t);throw new Error("invalid JSON wallet")}var zd=Object.freeze({__proto__:null,decryptCrowdsale:Id,decryptJsonWallet:Gd,decryptJsonWalletSync:Hd,decryptKeystore:qd,decryptKeystoreSync:Ud,encryptKeystore:jd,getJsonWalletAddress:Od,isCrowdsaleWallet:Rd,isKeystoreWallet:Cd});var Wd=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Vd=new xn("wallet/5.7.0");class Kd extends ts{constructor(e,t){if(super(),null!=(n=e)&&zn(n.privateKey,32)&&null!=n.address){const t=new Hc(e.privateKey);if(Or(this,"_signingKey",(()=>t)),Or(this,"address",Zc(this.publicKey)),this.address!==Ni(e.address)&&Vd.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;Or(this,"_mnemonic",(()=>({phrase:t.phrase,path:t.path||td,locale:t.locale||"en"})));const n=this.mnemonic;Zc(nd.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&Vd.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else Or(this,"_mnemonic",(()=>null))}else{if(Hc.isSigningKey(e))"secp256k1"!==e.curve&&Vd.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),Or(this,"_signingKey",(()=>e));else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new Hc(e);Or(this,"_signingKey",(()=>t))}Or(this,"_mnemonic",(()=>null)),Or(this,"address",Zc(this.publicKey))}var n;t&&!Yo.isProvider(t)&&Vd.throwArgumentError("invalid provider","provider",t),Or(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new Kd(this,e)}signTransaction(e){return Sr(e).then((t=>{null!=t.from&&(Ni(t.from)!==this.address&&Vd.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const n=this._signingKey().signDigest(mi(sl(t)));return sl(t,n)}))}signMessage(e){return Wd(this,void 0,void 0,(function*(){return er(this._signingKey().signDigest(To(e)))}))}_signTypedData(e,t,n){return Wd(this,void 0,void 0,(function*(){const r=yield Do.resolveNames(e,t,n,(e=>(null==this.provider&&Vd.throwError("cannot resolve ENS names without a provider",xn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e))));return er(this._signingKey().signDigest(Do.hash(r.domain,t,r.value)))}))}encrypt(e,t,n){if("function"!=typeof t||n||(n=t,t={}),n&&"function"!=typeof n)throw new Error("invalid callback");return t||(t={}),jd(this,e,t,n)}static createRandom(e){let t=fd(16);e||(e={}),e.extraEntropy&&(t=qn(Xn(mi(jn([t,e.extraEntropy])),0,16)));const n=ad(t,e.locale);return Kd.fromMnemonic(n,e.path,e.locale)}static fromEncryptedJson(e,t,n){return Gd(e,t,n).then((e=>new Kd(e)))}static fromEncryptedJsonSync(e,t){return new Kd(Hd(e,t))}static fromMnemonic(e,t,n){return t||(t=td),new Kd(nd.fromMnemonic(e,null,n).derivePath(t))}}function Xd(e,t){return el(To(e),t)}function Jd(e,t,n,r){return el(Do.hash(e,t,n),r)}var Yd=Object.freeze({__proto__:null,Wallet:Kd,verifyMessage:Xd,verifyTypedData:Jd});const Qd=new xn("networks/5.7.1");function $d(e){const t=function(t,n){null==n&&(n={});const r=[];if(t.InfuraProvider&&"-"!==n.infura)try{r.push(new t.InfuraProvider(e,n.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==n.etherscan)try{r.push(new t.EtherscanProvider(e,n.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==n.alchemy)try{r.push(new t.AlchemyProvider(e,n.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==n.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const a=new t.PocketProvider(e,n.pocket);a.network&&-1===i.indexOf(a.network.name)&&r.push(a)}catch(e){}}if(t.CloudflareProvider&&"-"!==n.cloudflare)try{r.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==n.ankr)try{const i=["ropsten"],a=new t.AnkrProvider(e,n.ankr);a.network&&-1===i.indexOf(a.network.name)&&r.push(a)}catch(e){}if(0===r.length)return null;if(t.FallbackProvider){let i=1;return null!=n.quorum?i=n.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(r,i)}return r[0]};return t.renetwork=function(e){return $d(e)},t}function Zd(e,t){const n=function(n,r){return n.JsonRpcProvider?new n.JsonRpcProvider(e,t):null};return n.renetwork=function(t){return Zd(e,t)},n}const ef={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:$d("homestead")},tf={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:$d("ropsten")},nf={chainId:63,name:"classicMordor",_defaultProvider:Zd("https://www.ethercluster.com/mordor","classicMordor")},rf={unspecified:{chainId:0,name:"unspecified"},homestead:ef,mainnet:ef,morden:{chainId:2,name:"morden"},ropsten:tf,testnet:tf,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:$d("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:$d("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:$d("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:$d("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:Zd("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:nf,classicTestnet:nf,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Zd("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:$d("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:$d("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function af(e){if(null==e)return null;if("number"==typeof e){for(const t in rf){const n=rf[t];if(n.chainId===e)return{name:n.name,chainId:n.chainId,ensAddress:n.ensAddress||null,_defaultProvider:n._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=rf[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=rf[e.name];if(!t)return"number"!=typeof e.chainId&&Qd.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&Qd.throwArgumentError("network chainId mismatch","network",e);let n=e._defaultProvider||null;var r;return null==n&&t._defaultProvider&&(n=(r=t._defaultProvider)&&"function"==typeof r.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:n}}var of=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};function sf(e,t){return of(this,void 0,void 0,(function*(){null==t&&(t={});const n={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(n.mode="cors",n.cache="no-cache",n.credentials="same-origin",n.redirect="follow",n.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(n.mode=e.mode),e.cache&&(n.cache=e.cache),e.credentials&&(n.credentials=e.credentials),e.redirect&&(n.redirect=e.redirect),e.referrer&&(n.referrer=e.referrer)}const r=yield fetch(e,n),i=yield r.arrayBuffer(),a={};return r.headers.forEach?r.headers.forEach(((e,t)=>{a[t.toLowerCase()]=e})):r.headers.keys().forEach((e=>{a[e.toLowerCase()]=r.headers.get(e)})),{headers:a,statusCode:r.status,statusMessage:r.statusText,body:qn(new Uint8Array(i))}}))}var uf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const cf=new xn("web/5.7.1");function lf(e){return new Promise((t=>{setTimeout(t,e)}))}function df(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Fn(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return ya(e)}catch(e){}return Vn(e)}return e}function ff(e,t,n){const r="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;cf.assertArgument(r>0&&r%1==0,"invalid connection throttle limit","connection.throttleLimit",r);const i="object"==typeof e?e.throttleCallback:null,a="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;cf.assertArgument(a>0&&a%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",a);const o="object"==typeof e&&!!e.errorPassThrough,s={};let u=null;const c={method:"GET"};let l=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||cf.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)s[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(l=!0);if(c.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password){"https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&cf.throwError("basic authentication requires a secure https url",xn.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"});const t=e.user+":"+e.password;s.authorization={key:"Authorization",value:"Basic "+Ga(fa(t))}}null!=e.skipFetchSetup&&(c.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(c.fetchOptions=xr(e.fetchOptions))}const f=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(f):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?ja(p[3]):(h=p[3],fa(h.replace(/%([0-9a-f][0-9a-f])/gi,((e,t)=>String.fromCharCode(parseInt(t,16))))))};let t=e.body;return n&&(t=n(e.body,e)),Promise.resolve(t)}catch(e){cf.throwError("processing response error",xn.errors.SERVER_ERROR,{body:df(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var h;t&&(c.method="POST",c.body=t,null==s["content-type"]&&(s["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==s["content-length"]&&(s["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(s).forEach((e=>{const t=s[e];m[t.key]=t.value})),c.headers=m;const y=function(){let e=null;return{promise:new Promise((function(t,n){d&&(e=setTimeout((()=>{null!=e&&(e=null,n(cf.makeError("timeout",xn.errors.TIMEOUT,{requestBody:df(c.body,m["content-type"]),requestMethod:c.method,timeout:d,url:u})))}),d))})),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return uf(this,void 0,void 0,(function*(){for(let e=0;e<r;e++){let t=null;try{if(t=yield sf(u,c),e<r)if(301===t.statusCode||302===t.statusCode){const e=t.headers.location||"";if("GET"===c.method&&e.match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let n=!0;if(i&&(n=yield i(e,u)),n){let n=0;const r=t.headers["retry-after"];n="string"==typeof r&&r.match(/^[1-9][0-9]*$/)?1e3*parseInt(r):a*parseInt(String(Math.random()*Math.pow(2,e))),yield lf(n);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),cf.throwError("missing response",xn.errors.SERVER_ERROR,{requestBody:df(c.body,m["content-type"]),requestMethod:c.method,serverError:e,url:u}))}let s=t.body;if(l&&304===t.statusCode?s=null:!o&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),cf.throwError("bad response",xn.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:df(s,t.headers?t.headers["content-type"]:null),requestBody:df(c.body,m["content-type"]),requestMethod:c.method,url:u})),n)try{const e=yield n(s,t);return y.cancel(),e}catch(n){if(n.throttleRetry&&e<r){let t=!0;if(i&&(t=yield i(e,u)),t){const t=a*parseInt(String(Math.random()*Math.pow(2,e)));yield lf(t);continue}}y.cancel(),cf.throwError("processing response error",xn.errors.SERVER_ERROR,{body:df(s,t.headers?t.headers["content-type"]:null),error:n,requestBody:df(c.body,m["content-type"]),requestMethod:c.method,url:u})}return y.cancel(),s}return cf.throwError("failed response",xn.errors.SERVER_ERROR,{requestBody:df(c.body,m["content-type"]),requestMethod:c.method,url:u})}))}();return Promise.race([y.promise,g])}function pf(e,t,n){let r=null;if(null!=t){r=fa(t);const n="string"==typeof e?{url:e}:xr(e);if(n.headers){0!==Object.keys(n.headers).filter((e=>"content-type"===e.toLowerCase())).length||(n.headers=xr(n.headers),n.headers["content-type"]="application/json")}else n.headers={"content-type":"application/json"};e=n}return ff(e,r,((e,t)=>{let r=null;if(null!=e)try{r=JSON.parse(ya(e))}catch(t){cf.throwError("invalid JSON",xn.errors.SERVER_ERROR,{body:e,error:t})}return n&&(r=n(r,t)),r}))}function hf(e,t){return t||(t={}),null==(t=xr(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise((function(n,r){let i=null,a=!1;const o=()=>!a&&(a=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout((()=>{o()&&r(new Error("timeout"))}),t.timeout));const s=t.retryLimit;let u=0;!function i(){return e().then((function(e){if(void 0!==e)o()&&n(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!a){if(u++,u>s)return void(o()&&r(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null}),(function(e){o()&&r(e)}))}()}))}for(var mf=Object.freeze({__proto__:null,_fetchData:ff,fetchJson:pf,poll:hf}),yf="qpzry9x8gf2tvdw0s3jn54khce6mua7l",gf={},bf=0;bf<32;bf++){var vf=yf.charAt(bf);if(void 0!==gf[vf])throw new TypeError(vf+" is ambiguous");gf[vf]=bf}function Tf(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function wf(e){for(var t=1,n=0;n<e.length;++n){var r=e.charCodeAt(n);if(r<33||r>126)return"Invalid prefix ("+e+")";t=Tf(t)^r>>5}for(t=Tf(t),n=0;n<e.length;++n){var i=e.charCodeAt(n);t=Tf(t)^31&i}return t}function Af(e,t){if(t=t||90,e.length<8)return e+" too short";if(e.length>t)return"Exceeds length limit";var n=e.toLowerCase(),r=e.toUpperCase();if(e!==n&&e!==r)return"Mixed-case string "+e;var i=(e=n).lastIndexOf("1");if(-1===i)return"No separator character for "+e;if(0===i)return"Missing prefix for "+e;var a=e.slice(0,i),o=e.slice(i+1);if(o.length<6)return"Data too short";var s=wf(a);if("string"==typeof s)return s;for(var u=[],c=0;c<o.length;++c){var l=o.charAt(c),d=gf[l];if(void 0===d)return"Unknown character "+l;s=Tf(s)^d,c+6>=o.length||u.push(d)}return 1!==s?"Invalid checksum for "+e:{prefix:a,words:u}}function Ef(e,t,n,r){for(var i=0,a=0,o=(1<<n)-1,s=[],u=0;u<e.length;++u)for(i=i<<t|e[u],a+=t;a>=n;)a-=n,s.push(i>>a&o);if(r)a>0&&s.push(i<<n-a&o);else{if(a>=t)return"Excess padding";if(i<<n-a&o)return"Non-zero padding"}return s}var _f={decodeUnsafe:function(){var e=Af.apply(null,arguments);if("object"==typeof e)return e},decode:function(e){var t=Af.apply(null,arguments);if("object"==typeof t)return t;throw new Error(t)},encode:function(e,t,n){if(n=n||90,e.length+7+t.length>n)throw new TypeError("Exceeds length limit");var r=wf(e=e.toLowerCase());if("string"==typeof r)throw new Error(r);for(var i=e+"1",a=0;a<t.length;++a){var o=t[a];if(o>>5!=0)throw new Error("Non 5-bit word");r=Tf(r)^o,i+=yf.charAt(o)}for(a=0;a<6;++a)r=Tf(r);for(r^=1,a=0;a<6;++a){i+=yf.charAt(r>>5*(5-a)&31)}return i},toWordsUnsafe:function(e){var t=Ef(e,8,5,!0);if(Array.isArray(t))return t},toWords:function(e){var t=Ef(e,8,5,!0);if(Array.isArray(t))return t;throw new Error(t)},fromWordsUnsafe:function(e){var t=Ef(e,5,8,!1);if(Array.isArray(t))return t},fromWords:function(e){var t=Ef(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}},If=gt(_f);const Rf="providers/5.7.2",Cf=new xn(Rf);class Of{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),n=this.bigNumber.bind(this),r=this.blockTag.bind(this),i=this.data.bind(this),a=this.hash.bind(this),o=this.hex.bind(this),s=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:a,type:u,accessList:Of.allowNull(this.accessList.bind(this),null),blockHash:Of.allowNull(a,null),blockNumber:Of.allowNull(s,null),transactionIndex:Of.allowNull(s,null),confirmations:Of.allowNull(s,null),from:t,gasPrice:Of.allowNull(n),maxPriorityFeePerGas:Of.allowNull(n),maxFeePerGas:Of.allowNull(n),gasLimit:n,to:Of.allowNull(t,null),value:n,nonce:s,data:i,r:Of.allowNull(this.uint256),s:Of.allowNull(this.uint256),v:Of.allowNull(s),creates:Of.allowNull(t,null),raw:Of.allowNull(i)},e.transactionRequest={from:Of.allowNull(t),nonce:Of.allowNull(s),gasLimit:Of.allowNull(n),gasPrice:Of.allowNull(n),maxPriorityFeePerGas:Of.allowNull(n),maxFeePerGas:Of.allowNull(n),to:Of.allowNull(t),value:Of.allowNull(n),data:Of.allowNull((e=>this.data(e,!0))),type:Of.allowNull(s),accessList:Of.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:s,blockNumber:s,transactionHash:a,address:t,topics:Of.arrayOf(a),data:i,logIndex:s,blockHash:a},e.receipt={to:Of.allowNull(this.address,null),from:Of.allowNull(this.address,null),contractAddress:Of.allowNull(t,null),transactionIndex:s,root:Of.allowNull(o),gasUsed:n,logsBloom:Of.allowNull(i),blockHash:a,transactionHash:a,logs:Of.arrayOf(this.receiptLog.bind(this)),blockNumber:s,confirmations:Of.allowNull(s,null),cumulativeGasUsed:n,effectiveGasPrice:Of.allowNull(n),status:Of.allowNull(s),type:u},e.block={hash:Of.allowNull(a),parentHash:a,number:s,timestamp:s,nonce:Of.allowNull(o),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:Of.allowNull(t),extraData:i,transactions:Of.allowNull(Of.arrayOf(a)),baseFeePerGas:Of.allowNull(n)},e.blockWithTransactions=xr(e.block),e.blockWithTransactions.transactions=Of.allowNull(Of.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:Of.allowNull(r,void 0),toBlock:Of.allowNull(r,void 0),blockHash:Of.allowNull(a,void 0),address:Of.allowNull(t,void 0),topics:Of.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:Of.allowNull(s),blockHash:Of.allowNull(a),transactionIndex:s,removed:Of.allowNull(this.boolean.bind(this)),address:t,data:Of.allowFalsish(i,"0x"),topics:Of.arrayOf(a),transactionHash:a,logIndex:s},e}accessList(e){return rl(e||[])}number(e){return"0x"===e?0:ur.from(e).toNumber()}type(e){return"0x"===e||null==e?0:ur.from(e).toNumber()}bigNumber(e){return ur.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),zn(e))?e.toLowerCase():Cf.throwArgumentError("invalid hash","value",e)}data(e,t){const n=this.hex(e,t);if(n.length%2!=0)throw new Error("invalid data; odd-length - "+e);return n}address(e){return Ni(e)}callAddress(e){if(!zn(e,32))return null;const t=Ni(Xn(e,12));return t===Xi?null:t}contractAddress(e){return Mi(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||zn(e))return Yn(e);throw new Error("invalid blockTag")}hash(e,t){const n=this.hex(e,t);return 32!==Kn(n)?Cf.throwArgumentError("invalid hash","value",e):n}difficulty(e){if(null==e)return null;const t=ur.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!zn(e))throw new Error("invalid uint256");return $n(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const n=null!=e._difficulty?e._difficulty:e.difficulty,r=Of.check(t,e);return r._difficulty=null==n?null:ur.from(n),r}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return Of.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&ur.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=Of.check(this.formats.transaction,e);if(null!=e.chainId){let n=e.chainId;zn(n)&&(n=ur.from(n).toNumber()),t.chainId=n}else{let n=e.networkId;null==n&&null==t.v&&(n=e.chainId),zn(n)&&(n=ur.from(n).toNumber()),"number"!=typeof n&&null!=t.v&&(n=(t.v-35)/2,n<0&&(n=0),n=parseInt(n)),"number"!=typeof n&&(n=0),t.chainId=n}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return cl(e)}receiptLog(e){return Of.check(this.formats.receiptLog,e)}receipt(e){const t=Of.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=ur.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&Cf.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):Cf.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&Cf.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map((e=>this.topics(e))):null!=e?this.hash(e,!0):null}filter(e){return Of.check(this.formats.filter,e)}filterLog(e){return Of.check(this.formats.filterLog,e)}static check(e,t){const n={};for(const r in e)try{const i=e[r](t[r]);void 0!==i&&(n[r]=i)}catch(e){throw e.checkKey=r,e.checkValue=t[r],e}return n}static allowNull(e,t){return function(n){return null==n?t:e(n)}}static allowFalsish(e,t){return function(n){return n?e(n):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const n=[];return t.forEach((function(t){n.push(e(t))})),n}}}function kf(e){return e&&"function"==typeof e.isCommunityResource}function Sf(e){return kf(e)&&e.isCommunityResource()}let Nf=!1;function xf(){Nf||(Nf=!0,console.log("========= NOTICE ========="),console.log("Request-Rate Exceeded (this message will not be repeated)"),console.log(""),console.log("The default API keys for each service are provided as a highly-throttled,"),console.log("community resource for low-traffic projects and early prototyping."),console.log(""),console.log("While your application will continue to function, we highly recommended"),console.log("signing up for your own API keys to improve performance, increase your"),console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."),console.log(""),console.log("For more details: https://docs.ethers.io/api-keys/"),console.log("=========================="))}var Pf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Mf=new xn(Rf);function Bf(e){return null==e?"null":(32!==Kn(e)&&Mf.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function Df(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map((e=>{if(Array.isArray(e)){const t={};e.forEach((e=>{t[Bf(e)]=!0}));const n=Object.keys(t);return n.sort(),n.join("|")}return Bf(e)})).join("&")}function Ff(e){if("string"==typeof e){if(32===Kn(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+Df(e);if(Jo.isForkEvent(e))throw Mf.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+Df(e.topics||[])}throw new Error("invalid event - "+e)}function Lf(){return(new Date).getTime()}function Uf(e){return new Promise((t=>{setTimeout(t,e)}))}const qf=["block","network","pending","poll"];class jf{constructor(e,t,n){Or(this,"tag",e),Or(this,"listener",t),Or(this,"once",n),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],n=""===(r=e[2])?[]:r.split(/&/g).map((e=>{if(""===e)return[];const t=e.split("|").map((e=>"null"===e?null:e));return 1===t.length?t[0]:t}));var r;const i={};return n.length>0&&(i.topics=n),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||qf.indexOf(this.tag)>=0}}const Gf={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function Hf(e){return $n(ur.from(e).toHexString(),32)}function zf(e){return Sl.encode(jn([e,Xn(Bl(Bl(e)),0,4)]))}const Wf=new RegExp("^(ipfs)://(.*)$","i"),Vf=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Wf,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Kf(e,t){try{return ya(Xf(e,t))}catch(e){}return null}function Xf(e,t){if("0x"===e)return null;const n=ur.from(Xn(e,t,t+32)).toNumber(),r=ur.from(Xn(e,n,n+32)).toNumber();return Xn(e,n+32,n+32+r)}function Jf(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):Mf.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function Yf(e){const t=qn(e);if(t.length>32)throw new Error("internal; should not happen");const n=new Uint8Array(32);return n.set(t,32-t.length),n}function Qf(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function $f(e){const t=[];let n=0;for(let r=0;r<e.length;r++)t.push(null),n+=32;for(let r=0;r<e.length;r++){const i=qn(e[r]);t[r]=Yf(n),t.push(Yf(i.length)),t.push(Qf(i)),n+=32+32*Math.ceil(i.length/32)}return Jn(t)}class Zf{constructor(e,t,n,r){Or(this,"provider",e),Or(this,"name",n),Or(this,"address",e.formatter.address(t)),Or(this,"_resolvedAddress",r)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then((e=>ur.from(e).eq(1))).catch((e=>{if(e.code===xn.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e}))),this._supportsEip2544}_fetch(e,t){return Pf(this,void 0,void 0,(function*(){const n={to:this.address,ccipReadEnabled:!0,data:Jn([e,go(this.name),t||"0x"])};let r=!1;(yield this.supportsWildcard())&&(r=!0,n.data=Jn(["0x9061b923",$f([bo(this.name),n.data])]));try{let e=yield this.provider.call(n);return qn(e).length%32==4&&Mf.throwError("resolver threw error",xn.errors.CALL_EXCEPTION,{transaction:n,data:e}),r&&(e=Xf(e,0)),e}catch(e){if(e.code===xn.errors.CALL_EXCEPTION)return null;throw e}}))}_fetchBytes(e,t){return Pf(this,void 0,void 0,(function*(){const n=yield this._fetch(e,t);return null!=n?Xf(n,0):null}))}_getAddress(e,t){const n=Gf[String(e)];if(null==n&&Mf.throwError(`unsupported coin type: ${e}`,xn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===n.ilk)return this.provider.formatter.address(t);const r=qn(t);if(null!=n.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return zf(jn([[n.p2pkh],"0x"+e[2]]))}}if(null!=n.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return zf(jn([[n.p2sh],"0x"+e[2]]))}}if(null!=n.prefix){const e=r[1];let t=r[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&r.length===2+e&&e>=1&&e<=75){const e=If.toWords(r.slice(2));return e.unshift(t),If.encode(n.prefix,e)}}return null}getAddress(e){return Pf(this,void 0,void 0,(function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||e===ra?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===xn.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",Hf(e));if(null==t||"0x"===t)return null;const n=this._getAddress(e,t);return null==n&&Mf.throwError("invalid or unsupported coin data",xn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),n}))}getAvatar(){return Pf(this,void 0,void 0,(function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let n=0;n<Vf.length;n++){const r=t.match(Vf[n]);if(null==r)continue;const i=r[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:Jf(t)};case"erc721":case"erc1155":{const n="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const a=this._resolvedAddress||(yield this.getAddress()),o=(r[2]||"").split("/");if(2!==o.length)return null;const s=yield this.provider.formatter.address(o[0]),u=$n(ur.from(o[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:s,data:Jn(["0x6352211e",u])}));if(a!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=ur.from(yield this.provider.call({to:s,data:Jn(["0x00fdd58e",$n(a,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const c={to:this.provider.formatter.address(o[0]),data:Jn([n,u])};let l=Kf(yield this.provider.call(c),0);if(null==l)return null;e.push({type:"metadata-url-base",content:l}),"erc1155"===i&&(l=l.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:l})),l.match(/^ipfs:/i)&&(l=Jf(l)),e.push({type:"metadata-url",content:l});const d=yield pf(l);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let f=d.image;if("string"!=typeof f)return null;if(f.match(/^(https:\/\/|data:)/i));else{if(null==f.match(Wf))return null;e.push({type:"url-ipfs",content:f}),f=Jf(f)}return e.push({type:"url",content:f}),{linkage:e,url:f}}}}}catch(e){}return null}))}getContentHash(){return Pf(this,void 0,void 0,(function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+Sl.encode("0x"+t[1])}const n=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(n){const e=parseInt(n[3],16);if(n[4].length===2*e)return"ipns://"+Sl.encode("0x"+n[1])}const r=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(r&&64===r[1].length)return"bzz://"+r[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+Ga("0x"+i[1]).replace(/[=+\/]/g,(t=>e[t]))}return Mf.throwError("invalid or unsupported content hash data",xn.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})}))}getText(e){return Pf(this,void 0,void 0,(function*(){let t=fa(e);t=jn([Hf(64),Hf(t.length),t]),t.length%32!=0&&(t=jn([t,$n("0x",32-e.length%32)]));const n=yield this._fetchBytes("0x59d1d43c",Vn(t));return null==n||"0x"===n?null:ya(n)}))}}let ep=null,tp=1;class np extends Yo{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),Or(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch((e=>{})),this._ready().catch((e=>{}));else{const t=kr(new.target,"getNetwork")(e);t?(Or(this,"_network",t),this.emit("network",t,null)):Mf.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return Pf(this,void 0,void 0,(function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||Mf.throwError("no network detected",xn.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:Or(this,"_network",e),this.emit("network",e,null))}return this._network}))}get ready(){return hf((()=>this._ready().then((e=>e),(e=>{if(e.code!==xn.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))))}static getFormatter(){return null==ep&&(ep=new Of),ep}static getNetwork(e){return af(null==e?"homestead":e)}ccipReadFetch(e,t,n){return Pf(this,void 0,void 0,(function*(){if(this.disableCcipRead||0===n.length)return null;const r=e.to.toLowerCase(),i=t.toLowerCase(),a=[];for(let e=0;e<n.length;e++){const t=n[e],o=t.replace("{sender}",r).replace("{data}",i),s=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:r}),u=yield pf({url:o,errorPassThrough:!0},s,((e,t)=>(e.status=t.statusCode,e)));if(u.data)return u.data;const c=u.message||"unknown error";if(u.status>=400&&u.status<500)return Mf.throwError(`response not found during CCIP fetch: ${c}`,xn.errors.SERVER_ERROR,{url:t,errorMessage:c});a.push(c)}return Mf.throwError(`error encountered during CCIP fetch: ${a.map((e=>JSON.stringify(e))).join(", ")}`,xn.errors.SERVER_ERROR,{urls:n,errorMessages:a})}))}_getInternalBlockNumber(e){return Pf(this,void 0,void 0,(function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const n=yield t;if(Lf()-n.respTime<=e)return n.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=Lf(),n=Sr({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then((e=>null),(e=>e))}).then((({blockNumber:e,networkError:r})=>{if(r)throw this._internalBlockNumber===n&&(this._internalBlockNumber=null),r;const i=Lf();return(e=ur.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}}));return this._internalBlockNumber=n,n.catch((e=>{this._internalBlockNumber===n&&(this._internalBlockNumber=null)})),(yield n).blockNumber}))}poll(){return Pf(this,void 0,void 0,(function*(){const e=tp++,t=[];let n=null;try{n=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(n),this.emit("poll",e,n),n!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=n-1),Math.abs(this._emitted.block-n)>1e3)Mf.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${n})`),this.emit("error",Mf.makeError("network block skew detected",xn.errors.NETWORK_ERROR,{blockNumber:n,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",n);else for(let e=this._emitted.block+1;e<=n;e++)this.emit("block",e);this._emitted.block!==n&&(this._emitted.block=n,Object.keys(this._emitted).forEach((e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&n-t>12&&delete this._emitted[e]}))),-2===this._lastBlockNumber&&(this._lastBlockNumber=n-1),this._events.forEach((e=>{switch(e.type){case"tx":{const n=e.hash;let r=this.getTransactionReceipt(n).then((e=>e&&null!=e.blockNumber?(this._emitted["t:"+n]=e.blockNumber,this.emit(n,e),null):null)).catch((e=>{this.emit("error",e)}));t.push(r);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=n-1);const r=e.filter;r.fromBlock=e._lastBlockNumber+1,r.toBlock=n;const i=r.toBlock-this._maxFilterBlockRange;i>r.fromBlock&&(r.fromBlock=i),r.fromBlock<0&&(r.fromBlock=0);const a=this.getLogs(r).then((t=>{e._inflight=!1,0!==t.length&&t.forEach((t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(r,t)}))})).catch((t=>{this.emit("error",t),e._inflight=!1}));t.push(a)}}})),this._lastBlockNumber=n,Promise.all(t).then((()=>{this.emit("didPoll",e)})).catch((e=>{this.emit("error",e)}))}else this.emit("didPoll",e)}))}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return Pf(this,void 0,void 0,(function*(){return Mf.throwError("provider does not support network detection",xn.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})}))}getNetwork(){return Pf(this,void 0,void 0,(function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield Uf(0),this._network;const n=Mf.makeError("underlying network changed",xn.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",n),n}return e}))}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then((e=>{this._setFastBlockNumber(e)}),(e=>{})),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval((()=>{this.poll()}),this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout((()=>{this.poll(),this._bootstrapPoll=setTimeout((()=>{this._poller||this.poll(),this._bootstrapPoll=null}),this.pollingInterval)}),0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval((()=>{this.poll()}),this._pollingInterval))}_getFastBlockNumber(){const e=Lf();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then((e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber)))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=Lf(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,n){return Pf(this,void 0,void 0,(function*(){return this._waitForTransaction(e,null==t?1:t,n||0,null)}))}_waitForTransaction(e,t,n,r){return Pf(this,void 0,void 0,(function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise(((i,a)=>{const o=[];let s=!1;const u=function(){return!!s||(s=!0,o.forEach((e=>{e()})),!1)},c=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,c),o.push((()=>{this.removeListener(e,c)})),r){let n=r.startBlock,i=null;const c=o=>Pf(this,void 0,void 0,(function*(){s||(yield Uf(1e3),this.getTransactionCount(r.from).then((l=>Pf(this,void 0,void 0,(function*(){if(!s){if(l<=r.nonce)n=o;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=n-3,i<r.startBlock&&(i=r.startBlock));i<=o;){if(s)return;const n=yield this.getBlockWithTransactions(i);for(let i=0;i<n.transactions.length;i++){const o=n.transactions[i];if(o.hash===e)return;if(o.from===r.from&&o.nonce===r.nonce){if(s)return;const n=yield this.waitForTransaction(o.hash,t);if(u())return;let i="replaced";return o.data===r.data&&o.to===r.to&&o.value.eq(r.value)?i="repriced":"0x"===o.data&&o.from===o.to&&o.value.isZero()&&(i="cancelled"),void a(Mf.makeError("transaction was replaced",xn.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(o),hash:e,receipt:n}))}}i++}}s||this.once("block",c)}}))),(e=>{s||this.once("block",c)})))}));if(s)return;this.once("block",c),o.push((()=>{this.removeListener("block",c)}))}if("number"==typeof n&&n>0){const e=setTimeout((()=>{u()||a(Mf.makeError("timeout exceeded",xn.errors.TIMEOUT,{timeout:n}))}),n);e.unref&&e.unref(),o.push((()=>{clearTimeout(e)}))}}))}))}getBlockNumber(){return Pf(this,void 0,void 0,(function*(){return this._getInternalBlockNumber(0)}))}getGasPrice(){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return ur.from(e)}catch(t){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}}))}getBalance(e,t){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Sr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getBalance",n);try{return ur.from(r)}catch(e){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"getBalance",params:n,result:r,error:e})}}))}getTransactionCount(e,t){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Sr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getTransactionCount",n);try{return ur.from(r).toNumber()}catch(e){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:r,error:e})}}))}getCode(e,t){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Sr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getCode",n);try{return Vn(r)}catch(e){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"getCode",params:n,result:r,error:e})}}))}getStorageAt(e,t,n){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield Sr({address:this._getAddress(e),blockTag:this._getBlockTag(n),position:Promise.resolve(t).then((e=>Yn(e)))}),i=yield this.perform("getStorageAt",r);try{return Vn(i)}catch(e){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"getStorageAt",params:r,result:i,error:e})}}))}_wrapTransaction(e,t,n){if(null!=t&&32!==Kn(t))throw new Error("invalid response - sendTransaction");const r=e;return null!=t&&e.hash!==t&&Mf.throwError("Transaction hash mismatch from Provider.sendTransaction.",xn.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),r.wait=(t,r)=>Pf(this,void 0,void 0,(function*(){let i;null==t&&(t=1),null==r&&(r=0),0!==t&&null!=n&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:n});const a=yield this._waitForTransaction(e.hash,t,r,i);return null==a&&0===t?null:(this._emitted["t:"+e.hash]=a.blockNumber,0===a.status&&Mf.throwError("transaction failed",xn.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:a}),a)})),r}sendTransaction(e){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then((e=>Vn(e))),n=this.formatter.transaction(e);null==n.confirmations&&(n.confirmations=0);const r=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(n,e,r)}catch(e){throw e.transaction=n,e.transactionHash=n.hash,e}}))}_getTransactionRequest(e){return Pf(this,void 0,void 0,(function*(){const t=yield e,n={};return["from","to"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?this._getAddress(e):null)))})),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?ur.from(e):null)))})),["type"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>null!=e?e:null)))})),t.accessList&&(n.accessList=this.formatter.accessList(t.accessList)),["data"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?Vn(e):null)))})),this.formatter.transactionRequest(yield Sr(n))}))}_getFilter(e){return Pf(this,void 0,void 0,(function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach((n=>{null!=e[n]&&(t[n]=e[n])})),["fromBlock","toBlock"].forEach((n=>{null!=e[n]&&(t[n]=this._getBlockTag(e[n]))})),this.formatter.filter(yield Sr(t))}))}_call(e,t,n){return Pf(this,void 0,void 0,(function*(){n>=10&&Mf.throwError("CCIP read exceeded maximum redirections",xn.errors.SERVER_ERROR,{redirects:n,transaction:e});const r=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(n>=0&&"latest"===t&&null!=r&&"0x556f1830"===i.substring(0,10)&&Kn(i)%32==4)try{const a=Xn(i,4),o=Xn(a,0,32);ur.from(o).eq(r)||Mf.throwError("CCIP Read sender did not match",xn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const s=[],u=ur.from(Xn(a,32,64)).toNumber(),c=ur.from(Xn(a,u,u+32)).toNumber(),l=Xn(a,u+32);for(let t=0;t<c;t++){const n=Kf(l,32*t);null==n&&Mf.throwError("CCIP Read contained corrupt URL string",xn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),s.push(n)}const d=Xf(a,64);ur.from(Xn(a,100,128)).isZero()||Mf.throwError("CCIP Read callback selector included junk",xn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const f=Xn(a,96,100),p=Xf(a,128),h=yield this.ccipReadFetch(e,d,s);null==h&&Mf.throwError("CCIP Read disabled or provided no URLs",xn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:r,data:Jn([f,$f([h,p])])};return this._call(m,t,n+1)}catch(e){if(e.code===xn.errors.SERVER_ERROR)throw e}try{return Vn(i)}catch(n){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:n})}}))}call(e,t){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Sr({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(n.transaction,n.blockTag,n.ccipReadEnabled?0:-1)}))}estimateGas(e){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Sr({transaction:this._getTransactionRequest(e)}),n=yield this.perform("estimateGas",t);try{return ur.from(n)}catch(e){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:n,error:e})}}))}_getAddress(e){return Pf(this,void 0,void 0,(function*(){"string"!=typeof(e=yield e)&&Mf.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&Mf.throwError("ENS name not configured",xn.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t}))}_getBlock(e,t){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;let n=-128;const r={includeTransactions:!!t};if(zn(e,32))r.blockHash=e;else try{r.blockTag=yield this._getBlockTag(e),zn(r.blockTag)&&(n=parseInt(r.blockTag.substring(2),16))}catch(t){Mf.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return hf((()=>Pf(this,void 0,void 0,(function*(){const e=yield this.perform("getBlock",r);if(null==e)return null!=r.blockHash&&null==this._emitted["b:"+r.blockHash]||null!=r.blockTag&&n>this._emitted.block?null:void 0;if(t){let t=null;for(let n=0;n<e.transactions.length;n++){const r=e.transactions[n];if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}}const n=this.formatter.blockWithTransactions(e);return n.transactions=n.transactions.map((e=>this._wrapTransaction(e))),n}return this.formatter.block(e)}))),{oncePoll:this})}))}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return hf((()=>Pf(this,void 0,void 0,(function*(){const n=yield this.perform("getTransaction",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;const r=this.formatter.transactionResponse(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return this._wrapTransaction(r)}))),{oncePoll:this})}))}getTransactionReceipt(e){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return hf((()=>Pf(this,void 0,void 0,(function*(){const n=yield this.perform("getTransactionReceipt",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;if(null==n.blockHash)return;const r=this.formatter.receipt(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return r}))),{oncePoll:this})}))}getLogs(e){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Sr({filter:this._getFilter(e)}),n=yield this.perform("getLogs",t);return n.forEach((e=>{null==e.removed&&(e.removed=!1)})),Of.arrayOf(this.formatter.filterLog.bind(this.formatter))(n)}))}getEtherPrice(){return Pf(this,void 0,void 0,(function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})}))}_getBlockTag(e){return Pf(this,void 0,void 0,(function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&Mf.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)}))}getResolver(e){return Pf(this,void 0,void 0,(function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const n=yield this._getResolver(t,"getResolver");if(null!=n){const r=new Zf(this,n,e);return t===e||(yield r.supportsWildcard())?r:null}t=t.split(".").slice(1).join(".")}}))}_getResolver(e,t){return Pf(this,void 0,void 0,(function*(){null==t&&(t="ENS");const n=yield this.getNetwork();n.ensAddress||Mf.throwError("network does not support ENS",xn.errors.UNSUPPORTED_OPERATION,{operation:t,network:n.name});try{const t=yield this.call({to:n.ensAddress,data:"0x0178b8bf"+go(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null}))}resolveName(e){return Pf(this,void 0,void 0,(function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(zn(e))throw t}"string"!=typeof e&&Mf.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null}))}lookupAddress(e){return Pf(this,void 0,void 0,(function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(t,"lookupAddress");if(null==n)return null;const r=Kf(yield this.call({to:n,data:"0x691f3431"+go(t).substring(2)}),0);return(yield this.resolveName(r))!=e?null:r}))}getAvatar(e){return Pf(this,void 0,void 0,(function*(){let t=null;if(zn(e)){const n=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(n,"getAvatar");if(!r)return null;t=new Zf(this,r,n);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==xn.errors.CALL_EXCEPTION)throw e}try{const e=Kf(yield this.call({to:r,data:"0x691f3431"+go(n).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==xn.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const n=yield t.getAvatar();return null==n?null:n.url}))}perform(e,t){return Mf.throwError(e+" not implemented",xn.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_stopEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_addEventListener(e,t,n){const r=new jf(Ff(e),t,n);return this._events.push(r),this._startEvent(r),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let n=!1,r=[],i=Ff(e);return this._events=this._events.filter((e=>e.tag!==i||(setTimeout((()=>{e.listener.apply(this,t)}),0),n=!0,!e.once||(r.push(e),!1)))),r.forEach((e=>{this._stopEvent(e)})),n}listenerCount(e){if(!e)return this._events.length;let t=Ff(e);return this._events.filter((e=>e.tag===t)).length}listeners(e){if(null==e)return this._events.map((e=>e.listener));let t=Ff(e);return this._events.filter((e=>e.tag===t)).map((e=>e.listener))}off(e,t){if(null==t)return this.removeAllListeners(e);const n=[];let r=!1,i=Ff(e);return this._events=this._events.filter((e=>e.tag!==i||e.listener!=t||(!!r||(r=!0,n.push(e),!1)))),n.forEach((e=>{this._stopEvent(e)})),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const n=Ff(e);this._events=this._events.filter((e=>e.tag!==n||(t.push(e),!1)))}return t.forEach((e=>{this._stopEvent(e)})),this}}var rp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const ip=new xn(Rf),ap=["call","estimateGas"];function op(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const n=zn(e.data)?e.data:null;if(!t||n)return{message:e.message,data:n}}if("object"==typeof e){for(const n in e){const r=op(e[n],t);if(r)return r}return null}if("string"==typeof e)try{return op(JSON.parse(e),t)}catch(e){}return null}function sp(e,t,n){const r=n.transaction||n.signedTransaction;if("call"===e){const e=op(t,!0);if(e)return e.data;ip.throwError("missing revert data in call exception; Transaction reverted without a reason string",xn.errors.CALL_EXCEPTION,{data:"0x",transaction:r,error:t})}if("estimateGas"===e){let n=op(t.body,!1);null==n&&(n=op(t,!1)),n&&ip.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",xn.errors.UNPREDICTABLE_GAS_LIMIT,{reason:n.message,method:e,transaction:r,error:t})}let i=t.message;throw t.code===xn.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&ip.throwError("insufficient funds for intrinsic transaction cost",xn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),i.match(/nonce (is )?too low/i)&&ip.throwError("nonce has already been used",xn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&ip.throwError("replacement fee too low",xn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),i.match(/only replay-protected/i)&&ip.throwError("legacy pre-eip-155 transactions not supported",xn.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:r}),ap.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&ip.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",xn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}function up(e){return new Promise((function(t){setTimeout(t,e)}))}function cp(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function lp(e){return e?e.toLowerCase():e}const dp={};class fp extends ts{constructor(e,t,n){if(super(),e!==dp)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");Or(this,"provider",t),null==n&&(n=0),"string"==typeof n?(Or(this,"_address",this.provider.formatter.address(n)),Or(this,"_index",null)):"number"==typeof n?(Or(this,"_index",n),Or(this,"_address",null)):ip.throwArgumentError("invalid address or index","addressOrIndex",n)}connect(e){return ip.throwError("cannot alter JSON-RPC Signer connection",xn.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new pp(dp,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then((e=>(e.length<=this._index&&ip.throwError("unknown account #"+this._index,xn.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index]))))}sendUncheckedTransaction(e){e=xr(e);const t=this.getAddress().then((e=>(e&&(e=e.toLowerCase()),e)));if(null==e.gasLimit){const n=xr(e);n.from=t,e.gasLimit=this.provider.estimateGas(n)}return null!=e.to&&(e.to=Promise.resolve(e.to).then((e=>rp(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&ip.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))))),Sr({tx:Sr(e),sender:t}).then((({tx:t,sender:n})=>{null!=t.from?t.from.toLowerCase()!==n&&ip.throwArgumentError("from address mismatch","transaction",e):t.from=n;const r=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[r]).then((e=>e),(e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&ip.throwError("user rejected transaction",xn.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),sp("sendTransaction",e,r))))}))}signTransaction(e){return ip.throwError("signing transactions is unsupported",xn.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return rp(this,void 0,void 0,(function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),n=yield this.sendUncheckedTransaction(e);try{return yield hf((()=>rp(this,void 0,void 0,(function*(){const e=yield this.provider.getTransaction(n);if(null!==e)return this.provider._wrapTransaction(e,n,t)}))),{oncePoll:this.provider})}catch(e){throw e.transactionHash=n,e}}))}signMessage(e){return rp(this,void 0,void 0,(function*(){const t="string"==typeof e?fa(e):e,n=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Vn(t),n.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&ip.throwError("user rejected signing",xn.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:e}),t}}))}_legacySignMessage(e){return rp(this,void 0,void 0,(function*(){const t="string"==typeof e?fa(e):e,n=yield this.getAddress();try{return yield this.provider.send("eth_sign",[n.toLowerCase(),Vn(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&ip.throwError("user rejected signing",xn.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:e}),t}}))}_signTypedData(e,t,n){return rp(this,void 0,void 0,(function*(){const r=yield Do.resolveNames(e,t,n,(e=>this.provider.resolveName(e))),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(Do.getPayload(r.domain,t,r.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&ip.throwError("user rejected signing",xn.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:r.domain,types:t,value:r.value}}),e}}))}unlock(e){return rp(this,void 0,void 0,(function*(){const t=this.provider,n=yield this.getAddress();return t.send("personal_unlockAccount",[n.toLowerCase(),e,null])}))}}class pp extends fp{sendTransaction(e){return this.sendUncheckedTransaction(e).then((e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)})))}}const hp={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};let mp=class extends np{constructor(e,t){let n=t;null==n&&(n=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then((t=>{e(t)}),(e=>{t(e)}))}),0)}))),super(n),e||(e=kr(this.constructor,"defaultUrl")()),Or(this,"connection","string"==typeof e?Object.freeze({url:e}):Object.freeze(xr(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout((()=>{this._cache.detectNetwork=null}),0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return rp(this,void 0,void 0,(function*(){yield up(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=kr(this.constructor,"getNetwork");try{return t(ur.from(e).toNumber())}catch(t){return ip.throwError("could not detect network",xn.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return ip.throwError("could not detect network",xn.errors.NETWORK_ERROR,{event:"noNetwork"})}))}getSigner(e){return new fp(dp,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then((e=>e.map((e=>this.formatter.address(e)))))}send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:Dr(n),provider:this});const r=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(r&&this._cache[e])return this._cache[e];const i=pf(this.connection,JSON.stringify(n),cp).then((e=>(this.emit("debug",{action:"response",request:n,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",error:e,request:n,provider:this}),e}));return r&&(this._cache[e]=i,setTimeout((()=>{this._cache[e]=null}),0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[lp(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[lp(t.address),t.blockTag]];case"getCode":return["eth_getCode",[lp(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[lp(t.address),$n(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[kr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[kr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=lp(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return rp(this,void 0,void 0,(function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&ur.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=yield this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&((t=xr(t)).transaction=xr(e),delete t.transaction.type)}}const n=this.prepareRequest(e,t);null==n&&ip.throwError(e+" not implemented",xn.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(n[0],n[1])}catch(n){return sp(e,n,t)}}))}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then((function(n){return function r(){e.send("eth_getFilterChanges",[n]).then((function(n){if(e._pendingFilter!=t)return null;let r=Promise.resolve();return n.forEach((function(t){e._emitted["t:"+t.toLowerCase()]="pending",r=r.then((function(){return e.getTransaction(t).then((function(t){return e.emit("pending",t),null}))}))})),r.then((function(){return up(1e3)}))})).then((function(){if(e._pendingFilter==t)return setTimeout((function(){r()}),0),null;e.send("eth_uninstallFilter",[n])})).catch((e=>{}))}(),n})).catch((e=>{}))}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const n=xr(hp);if(t)for(const e in t)t[e]&&(n[e]=!0);Nr(e,n);const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((function(t){if(null==e[t])return;const n=Yn(ur.from(e[t]));"gasLimit"===t&&(t="gas"),r[t]=n})),["from","to","data"].forEach((function(t){null!=e[t]&&(r[t]=Vn(e[t]))})),e.accessList&&(r.accessList=rl(e.accessList)),r}},yp=null;try{if(yp=WebSocket,null==yp)throw new Error("inject please")}catch(e){const t=new xn(Rf);yp=function(){t.throwError("WebSockets not supported in this environment",xn.errors.UNSUPPORTED_OPERATION,{operation:"new WebSocket()"})}}var gp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const bp=new xn(Rf);let vp=1;class Tp extends mp{constructor(e,t){"any"===t&&bp.throwError("WebSocketProvider does not support 'any' network yet",xn.errors.UNSUPPORTED_OPERATION,{operation:"network:any"}),super("string"==typeof e?e:"_websocket",t),this._pollingInterval=-1,this._wsReady=!1,Or(this,"_websocket","string"==typeof e?new yp(this.connection.url):e),Or(this,"_requests",{}),Or(this,"_subs",{}),Or(this,"_subIds",{}),Or(this,"_detectNetwork",super.detectNetwork()),this.websocket.onopen=()=>{this._wsReady=!0,Object.keys(this._requests).forEach((e=>{this.websocket.send(this._requests[e].payload)}))},this.websocket.onmessage=e=>{const t=e.data,n=JSON.parse(t);if(null!=n.id){const e=String(n.id),r=this._requests[e];if(delete this._requests[e],void 0!==n.result)r.callback(null,n.result),this.emit("debug",{action:"response",request:JSON.parse(r.payload),response:n.result,provider:this});else{let e=null;n.error?(e=new Error(n.error.message||"unknown error"),Or(e,"code",n.error.code||null),Or(e,"response",t)):e=new Error("unknown error"),r.callback(e,void 0),this.emit("debug",{action:"response",error:e,request:JSON.parse(r.payload),provider:this})}}else if("eth_subscription"===n.method){const e=this._subs[n.params.subscription];e&&e.processFunc(n.params.result)}else console.warn("this should not happen")};const n=setInterval((()=>{this.emit("poll")}),1e3);n.unref&&n.unref()}get websocket(){return this._websocket}detectNetwork(){return this._detectNetwork}get pollingInterval(){return 0}resetEventsBlock(e){bp.throwError("cannot reset events block on WebSocketProvider",xn.errors.UNSUPPORTED_OPERATION,{operation:"resetEventBlock"})}set pollingInterval(e){bp.throwError("cannot set polling interval on WebSocketProvider",xn.errors.UNSUPPORTED_OPERATION,{operation:"setPollingInterval"})}poll(){return gp(this,void 0,void 0,(function*(){return null}))}set polling(e){e&&bp.throwError("cannot set polling on WebSocketProvider",xn.errors.UNSUPPORTED_OPERATION,{operation:"setPolling"})}send(e,t){const n=vp++;return new Promise(((r,i)=>{const a=JSON.stringify({method:e,params:t,id:n,jsonrpc:"2.0"});this.emit("debug",{action:"request",request:JSON.parse(a),provider:this}),this._requests[String(n)]={callback:function(e,t){return e?i(e):r(t)},payload:a},this._wsReady&&this.websocket.send(a)}))}static defaultUrl(){return"ws://localhost:8546"}_subscribe(e,t,n){return gp(this,void 0,void 0,(function*(){let r=this._subIds[e];null==r&&(r=Promise.all(t).then((e=>this.send("eth_subscribe",e))),this._subIds[e]=r);const i=yield r;this._subs[i]={tag:e,processFunc:n}}))}_startEvent(e){switch(e.type){case"block":this._subscribe("block",["newHeads"],(e=>{const t=ur.from(e.number).toNumber();this._emitted.block=t,this.emit("block",t)}));break;case"pending":this._subscribe("pending",["newPendingTransactions"],(e=>{this.emit("pending",e)}));break;case"filter":this._subscribe(e.tag,["logs",this._getFilter(e.filter)],(t=>{null==t.removed&&(t.removed=!1),this.emit(e.filter,this.formatter.filterLog(t))}));break;case"tx":{const t=e=>{const t=e.hash;this.getTransactionReceipt(t).then((e=>{e&&this.emit(t,e)}))};t(e),this._subscribe("tx",["newHeads"],(e=>{this._events.filter((e=>"tx"===e.type)).forEach(t)}));break}case"debug":case"poll":case"willPoll":case"didPoll":case"error":break;default:console.log("unhandled:",e)}}_stopEvent(e){let t=e.tag;if("tx"===e.type){if(this._events.filter((e=>"tx"===e.type)).length)return;t="tx"}else if(this.listenerCount(e.event))return;const n=this._subIds[t];n&&(delete this._subIds[t],n.then((e=>{this._subs[e]&&(delete this._subs[e],this.send("eth_unsubscribe",[e]))})))}destroy(){return gp(this,void 0,void 0,(function*(){this.websocket.readyState===yp.CONNECTING&&(yield new Promise((e=>{this.websocket.onopen=function(){e(!0)},this.websocket.onerror=function(){e(!1)}}))),this.websocket.close(1e3)}))}}var wp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Ap=new xn(Rf);class Ep extends mp{detectNetwork(){const e=Object.create(null,{detectNetwork:{get:()=>super.detectNetwork}});return wp(this,void 0,void 0,(function*(){let t=this.network;return null==t&&(t=yield e.detectNetwork.call(this),t||Ap.throwError("no network detected",xn.errors.UNKNOWN_ERROR,{}),null==this._network&&(Or(this,"_network",t),this.emit("network",t,null))),t}))}}class _p extends Ep{constructor(e,t){Ap.checkAbstract(new.target,_p),e=kr(new.target,"getNetwork")(e),t=kr(new.target,"getApiKey")(t);super(kr(new.target,"getUrl")(e,t),e),"string"==typeof t?Or(this,"apiKey",t):null!=t&&Object.keys(t).forEach((e=>{Or(this,e,t[e])}))}_startPending(){Ap.warn("WARNING: API provider does not support pending filters")}isCommunityResource(){return!1}getSigner(e){return Ap.throwError("API provider does not support signing",xn.errors.UNSUPPORTED_OPERATION,{operation:"getSigner"})}listAccounts(){return Promise.resolve([])}static getApiKey(e){return e}static getUrl(e,t){return Ap.throwError("not implemented; sub-classes must override getUrl",xn.errors.NOT_IMPLEMENTED,{operation:"getUrl"})}}const Ip=new xn(Rf),Rp="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";class Cp extends Tp{constructor(e,t){const n=new Op(e,t);super(n.connection.url.replace(/^http/i,"ws").replace(".alchemyapi.",".ws.alchemyapi."),n.network),Or(this,"apiKey",n.apiKey)}isCommunityResource(){return this.apiKey===Rp}}class Op extends _p{static getWebSocketProvider(e,t){return new Cp(e,t)}static getApiKey(e){return null==e?Rp:(e&&"string"!=typeof e&&Ip.throwArgumentError("invalid apiKey","apiKey",e),e)}static getUrl(e,t){let n=null;switch(e.name){case"homestead":n="eth-mainnet.alchemyapi.io/v2/";break;case"goerli":n="eth-goerli.g.alchemy.com/v2/";break;case"matic":n="polygon-mainnet.g.alchemy.com/v2/";break;case"maticmum":n="polygon-mumbai.g.alchemy.com/v2/";break;case"arbitrum":n="arb-mainnet.g.alchemy.com/v2/";break;case"arbitrum-goerli":n="arb-goerli.g.alchemy.com/v2/";break;case"optimism":n="opt-mainnet.g.alchemy.com/v2/";break;case"optimism-goerli":n="opt-goerli.g.alchemy.com/v2/";break;default:Ip.throwArgumentError("unsupported network","network",arguments[0])}return{allowGzip:!0,url:"https://"+n+t,throttleCallback:(e,n)=>(t===Rp&&xf(),Promise.resolve(!0))}}isCommunityResource(){return this.apiKey===Rp}}const kp=new xn(Rf),Sp="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function Np(e){switch(e){case"homestead":return"rpc.ankr.com/eth/";case"ropsten":return"rpc.ankr.com/eth_ropsten/";case"rinkeby":return"rpc.ankr.com/eth_rinkeby/";case"goerli":return"rpc.ankr.com/eth_goerli/";case"matic":return"rpc.ankr.com/polygon/";case"arbitrum":return"rpc.ankr.com/arbitrum/"}return kp.throwArgumentError("unsupported network","name",e)}class xp extends _p{isCommunityResource(){return this.apiKey===Sp}static getApiKey(e){return null==e?Sp:e}static getUrl(e,t){null==t&&(t=Sp);const n={allowGzip:!0,url:"https://"+Np(e.name)+t,throttleCallback:(e,n)=>(t.apiKey===Sp&&xf(),Promise.resolve(!0))};return null!=t.projectSecret&&(n.user="",n.password=t.projectSecret),n}}var Pp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Mp=new xn(Rf);class Bp extends _p{static getApiKey(e){return null!=e&&Mp.throwArgumentError("apiKey not supported for cloudflare","apiKey",e),null}static getUrl(e,t){let n=null;if("homestead"===e.name)n="https://cloudflare-eth.com/";else Mp.throwArgumentError("unsupported network","network",arguments[0]);return n}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return Pp(this,void 0,void 0,(function*(){if("getBlockNumber"===e){return(yield n.perform.call(this,"getBlock",{blockTag:"latest"})).number}return n.perform.call(this,e,t)}))}}var Dp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Fp=new xn(Rf);function Lp(e){const t={};for(let n in e){if(null==e[n])continue;let r=e[n];"type"===n&&0===r||(r={type:!0,gasLimit:!0,gasPrice:!0,maxFeePerGs:!0,maxPriorityFeePerGas:!0,nonce:!0,value:!0}[n]?Yn(Vn(r)):"accessList"===n?"["+rl(r).map((e=>`{address:"${e.address}",storageKeys:["${e.storageKeys.join('","')}"]}`)).join(",")+"]":Vn(r),t[n]=r)}return t}function Up(e){if(0==e.status&&("No records found"===e.message||"No transactions found"===e.message))return e.result;if(1!=e.status||"string"!=typeof e.message||!e.message.match(/^OK/)){const t=new Error("invalid response");throw t.result=JSON.stringify(e),(e.result||"").toLowerCase().indexOf("rate limit")>=0&&(t.throttleRetry=!0),t}return e.result}function qp(e){if(e&&0==e.status&&"NOTOK"==e.message&&(e.result||"").toLowerCase().indexOf("rate limit")>=0){const t=new Error("throttled response");throw t.result=JSON.stringify(e),t.throttleRetry=!0,t}if("2.0"!=e.jsonrpc){const t=new Error("invalid response");throw t.result=JSON.stringify(e),t}if(e.error){const t=new Error(e.error.message||"unknown error");throw e.error.code&&(t.code=e.error.code),e.error.data&&(t.data=e.error.data),t}return e.result}function jp(e){if("pending"===e)throw new Error("pending not supported");return"latest"===e?e:parseInt(e.substring(2),16)}function Gp(e,t,n){if("call"===e&&t.code===xn.errors.SERVER_ERROR){const e=t.error;if(e&&(e.message.match(/reverted/i)||e.message.match(/VM execution error/i))){let n=e.data;if(n&&(n="0x"+n.replace(/^.*0x/i,"")),zn(n))return n;Fp.throwError("missing revert data in call exception",xn.errors.CALL_EXCEPTION,{error:t,data:"0x"})}}let r=t.message;throw t.code===xn.errors.SERVER_ERROR&&(t.error&&"string"==typeof t.error.message?r=t.error.message:"string"==typeof t.body?r=t.body:"string"==typeof t.responseText&&(r=t.responseText)),r=(r||"").toLowerCase(),r.match(/insufficient funds/)&&Fp.throwError("insufficient funds for intrinsic transaction cost",xn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),r.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&Fp.throwError("nonce has already been used",xn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),r.match(/another transaction with same nonce/)&&Fp.throwError("replacement fee too low",xn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),r.match(/execution failed due to an exception|execution reverted/)&&Fp.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",xn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}class Hp extends np{constructor(e,t){super(e),Or(this,"baseUrl",this.getBaseUrl()),Or(this,"apiKey",t||null)}getBaseUrl(){switch(this.network?this.network.name:"invalid"){case"homestead":return"https://api.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"sepolia":return"https://api-sepolia.etherscan.io";case"matic":return"https://api.polygonscan.com";case"maticmum":return"https://api-testnet.polygonscan.com";case"arbitrum":return"https://api.arbiscan.io";case"arbitrum-goerli":return"https://api-goerli.arbiscan.io";case"optimism":return"https://api-optimistic.etherscan.io";case"optimism-goerli":return"https://api-goerli-optimistic.etherscan.io"}return Fp.throwArgumentError("unsupported network","network",this.network.name)}getUrl(e,t){const n=Object.keys(t).reduce(((e,n)=>{const r=t[n];return null!=r&&(e+=`&${n}=${r}`),e}),""),r=this.apiKey?`&apikey=${this.apiKey}`:"";return`${this.baseUrl}/api?module=${e}${n}${r}`}getPostUrl(){return`${this.baseUrl}/api`}getPostData(e,t){return t.module=e,t.apikey=this.apiKey,t}fetch(e,t,n){return Dp(this,void 0,void 0,(function*(){const r=n?this.getPostUrl():this.getUrl(e,t),i=n?this.getPostData(e,t):null,a="proxy"===e?qp:Up;this.emit("debug",{action:"request",request:r,provider:this});const o={url:r,throttleSlotInterval:1e3,throttleCallback:(e,t)=>(this.isCommunityResource()&&xf(),Promise.resolve(!0))};let s=null;i&&(o.headers={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"},s=Object.keys(i).map((e=>`${e}=${i[e]}`)).join("&"));const u=yield pf(o,s,a||qp);return this.emit("debug",{action:"response",request:r,response:Dr(u),provider:this}),u}))}detectNetwork(){return Dp(this,void 0,void 0,(function*(){return this.network}))}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return Dp(this,void 0,void 0,(function*(){switch(e){case"getBlockNumber":return this.fetch("proxy",{action:"eth_blockNumber"});case"getGasPrice":return this.fetch("proxy",{action:"eth_gasPrice"});case"getBalance":return this.fetch("account",{action:"balance",address:t.address,tag:t.blockTag});case"getTransactionCount":return this.fetch("proxy",{action:"eth_getTransactionCount",address:t.address,tag:t.blockTag});case"getCode":return this.fetch("proxy",{action:"eth_getCode",address:t.address,tag:t.blockTag});case"getStorageAt":return this.fetch("proxy",{action:"eth_getStorageAt",address:t.address,position:t.position,tag:t.blockTag});case"sendTransaction":return this.fetch("proxy",{action:"eth_sendRawTransaction",hex:t.signedTransaction},!0).catch((e=>Gp("sendTransaction",e,t.signedTransaction)));case"getBlock":if(t.blockTag)return this.fetch("proxy",{action:"eth_getBlockByNumber",tag:t.blockTag,boolean:t.includeTransactions?"true":"false"});throw new Error("getBlock by blockHash not implemented");case"getTransaction":return this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:t.transactionHash});case"getTransactionReceipt":return this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:t.transactionHash});case"call":{if("latest"!==t.blockTag)throw new Error("EtherscanProvider does not support blockTag for call");const e=Lp(t.transaction);e.module="proxy",e.action="eth_call";try{return yield this.fetch("proxy",e,!0)}catch(e){return Gp("call",e,t.transaction)}}case"estimateGas":{const e=Lp(t.transaction);e.module="proxy",e.action="eth_estimateGas";try{return yield this.fetch("proxy",e,!0)}catch(e){return Gp("estimateGas",e,t.transaction)}}case"getLogs":{const e={action:"getLogs"};if(t.filter.fromBlock&&(e.fromBlock=jp(t.filter.fromBlock)),t.filter.toBlock&&(e.toBlock=jp(t.filter.toBlock)),t.filter.address&&(e.address=t.filter.address),t.filter.topics&&t.filter.topics.length>0&&(t.filter.topics.length>1&&Fp.throwError("unsupported topic count",xn.errors.UNSUPPORTED_OPERATION,{topics:t.filter.topics}),1===t.filter.topics.length)){const n=t.filter.topics[0];"string"==typeof n&&66===n.length||Fp.throwError("unsupported topic format",xn.errors.UNSUPPORTED_OPERATION,{topic0:n}),e.topic0=n}const n=yield this.fetch("logs",e);let r={};for(let e=0;e<n.length;e++){const t=n[e];if(null==t.blockHash){if(null==r[t.blockNumber]){const e=yield this.getBlock(t.blockNumber);e&&(r[t.blockNumber]=e.hash)}t.blockHash=r[t.blockNumber]}}return n}case"getEtherPrice":return"homestead"!==this.network.name?0:parseFloat((yield this.fetch("stats",{action:"ethprice"})).ethusd)}return n.perform.call(this,e,t)}))}getHistory(e,t,n){return Dp(this,void 0,void 0,(function*(){const r={action:"txlist",address:yield this.resolveName(e),startblock:null==t?0:t,endblock:null==n?99999999:n,sort:"asc"};return(yield this.fetch("account",r)).map((e=>{["contractAddress","to"].forEach((function(t){""==e[t]&&delete e[t]})),null==e.creates&&null!=e.contractAddress&&(e.creates=e.contractAddress);const t=this.formatter.transactionResponse(e);return e.timeStamp&&(t.timestamp=parseInt(e.timeStamp)),t}))}))}isCommunityResource(){return null==this.apiKey}}var zp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Wp=new xn(Rf);function Vp(){return(new Date).getTime()}function Kp(e){let t=null;for(let n=0;n<e.length;n++){const r=e[n];if(null==r)return null;t?t.name===r.name&&t.chainId===r.chainId&&(t.ensAddress===r.ensAddress||null==t.ensAddress&&null==r.ensAddress)||Wp.throwArgumentError("provider mismatch","networks",e):t=r}return t}function Xp(e,t){e=e.slice().sort();const n=Math.floor(e.length/2);if(e.length%2)return e[n];const r=e[n-1],i=e[n];return null!=t&&Math.abs(r-i)>t?null:(r+i)/2}function Jp(e){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return JSON.stringify(e);if("string"==typeof e)return e;if(ur.isBigNumber(e))return e.toString();if(Array.isArray(e))return JSON.stringify(e.map((e=>Jp(e))));if("object"==typeof e){const t=Object.keys(e);return t.sort(),"{"+t.map((t=>{let n=e[t];return n="function"==typeof n?"[function]":Jp(n),JSON.stringify(t)+":"+n})).join(",")+"}"}throw new Error("unknown value type: "+typeof e)}let Yp=1;function Qp(e){let t=null,n=null,r=new Promise((r=>{t=function(){n&&(clearTimeout(n),n=null),r()},n=setTimeout(t,e)}));return{cancel:t,getPromise:function(){return r},wait:e=>(r=r.then(e),r)}}const $p=[xn.errors.CALL_EXCEPTION,xn.errors.INSUFFICIENT_FUNDS,xn.errors.NONCE_EXPIRED,xn.errors.REPLACEMENT_UNDERPRICED,xn.errors.UNPREDICTABLE_GAS_LIMIT],Zp=["address","args","errorArgs","errorSignature","method","transaction"];function eh(e,t){const n={weight:e.weight};return Object.defineProperty(n,"provider",{get:()=>e.provider}),e.start&&(n.start=e.start),t&&(n.duration=t-e.start),e.done&&(e.error?n.error=e.error:n.result=e.result||null),n}function th(e,t,n){let r=Jp;switch(t){case"getBlockNumber":return function(t){const n=t.map((e=>e.result));let r=Xp(t.map((e=>e.result)),2);if(null!=r)return r=Math.ceil(r),n.indexOf(r+1)>=0&&r++,r>=e._highestBlockNumber&&(e._highestBlockNumber=r),e._highestBlockNumber};case"getGasPrice":return function(e){const t=e.map((e=>e.result));return t.sort(),t[Math.floor(t.length/2)]};case"getEtherPrice":return function(e){return Xp(e.map((e=>e.result)))};case"getBalance":case"getTransactionCount":case"getCode":case"getStorageAt":case"call":case"estimateGas":case"getLogs":break;case"getTransaction":case"getTransactionReceipt":r=function(e){return null==e?null:((e=xr(e)).confirmations=-1,Jp(e))};break;case"getBlock":r=n.includeTransactions?function(e){return null==e?null:((e=xr(e)).transactions=e.transactions.map((e=>((e=xr(e)).confirmations=-1,e))),Jp(e))}:function(e){return null==e?null:Jp(e)};break;default:throw new Error("unknown method: "+t)}return function(e,t){return function(n){const r={};n.forEach((t=>{const n=e(t.result);r[n]||(r[n]={count:0,result:t.result}),r[n].count++}));const i=Object.keys(r);for(let e=0;e<i.length;e++){const n=r[i[e]];if(n.count>=t)return n.result}}}(r,e.quorum)}function nh(e,t){return zp(this,void 0,void 0,(function*(){const n=e.provider;return null!=n.blockNumber&&n.blockNumber>=t||-1===t?n:hf((()=>new Promise(((r,i)=>{setTimeout((function(){return n.blockNumber>=t?r(n):e.cancelled?r(null):r(void 0)}),0)}))),{oncePoll:n})}))}function rh(e,t,n,r){return zp(this,void 0,void 0,(function*(){let i=e.provider;switch(n){case"getBlockNumber":case"getGasPrice":return i[n]();case"getEtherPrice":if(i.getEtherPrice)return i.getEtherPrice();break;case"getBalance":case"getTransactionCount":case"getCode":return r.blockTag&&zn(r.blockTag)&&(i=yield nh(e,t)),i[n](r.address,r.blockTag||"latest");case"getStorageAt":return r.blockTag&&zn(r.blockTag)&&(i=yield nh(e,t)),i.getStorageAt(r.address,r.position,r.blockTag||"latest");case"getBlock":return r.blockTag&&zn(r.blockTag)&&(i=yield nh(e,t)),i[r.includeTransactions?"getBlockWithTransactions":"getBlock"](r.blockTag||r.blockHash);case"call":case"estimateGas":return r.blockTag&&zn(r.blockTag)&&(i=yield nh(e,t)),"call"===n&&r.blockTag?i[n](r.transaction,r.blockTag):i[n](r.transaction);case"getTransaction":case"getTransactionReceipt":return i[n](r.transactionHash);case"getLogs":{let n=r.filter;return(n.fromBlock&&zn(n.fromBlock)||n.toBlock&&zn(n.toBlock))&&(i=yield nh(e,t)),i.getLogs(n)}}return Wp.throwError("unknown method error",xn.errors.UNKNOWN_ERROR,{method:n,params:r})}))}class ih extends np{constructor(e,t){0===e.length&&Wp.throwArgumentError("missing providers","providers",e);const n=e.map(((e,t)=>{if(Yo.isProvider(e)){const t=Sf(e)?2e3:750,n=1;return Object.freeze({provider:e,weight:1,stallTimeout:t,priority:n})}const n=xr(e);null==n.priority&&(n.priority=1),null==n.stallTimeout&&(n.stallTimeout=Sf(e)?2e3:750),null==n.weight&&(n.weight=1);const r=n.weight;return(r%1||r>512||r<1)&&Wp.throwArgumentError("invalid weight; must be integer in [1, 512]",`providers[${t}].weight`,r),Object.freeze(n)})),r=n.reduce(((e,t)=>e+t.weight),0);null==t?t=r/2:t>r&&Wp.throwArgumentError("quorum will always fail; larger than total weight","quorum",t);let i=Kp(n.map((e=>e.provider.network)));null==i&&(i=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then(e,t)}),0)}))),super(i),Or(this,"providerConfigs",Object.freeze(n)),Or(this,"quorum",t),this._highestBlockNumber=-1}detectNetwork(){return zp(this,void 0,void 0,(function*(){return Kp(yield Promise.all(this.providerConfigs.map((e=>e.provider.getNetwork()))))}))}perform(e,t){return zp(this,void 0,void 0,(function*(){if("sendTransaction"===e){const e=yield Promise.all(this.providerConfigs.map((e=>e.provider.sendTransaction(t.signedTransaction).then((e=>e.hash),(e=>e)))));for(let t=0;t<e.length;t++){const n=e[t];if("string"==typeof n)return n}throw e[0]}-1===this._highestBlockNumber&&"getBlockNumber"!==e&&(yield this.getBlockNumber());const n=th(this,e,t),r=pd(this.providerConfigs.map(xr));r.sort(((e,t)=>e.priority-t.priority));const i=this._highestBlockNumber;let a=0,o=!0;for(;;){const s=Vp();let u=r.filter((e=>e.runner&&s-e.start<e.stallTimeout)).reduce(((e,t)=>e+t.weight),0);for(;u<this.quorum&&a<r.length;){const n=r[a++],o=Yp++;n.start=Vp(),n.staller=Qp(n.stallTimeout),n.staller.wait((()=>{n.staller=null})),n.runner=rh(n,i,e,t).then((r=>{n.done=!0,n.result=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:eh(n,Vp()),request:{method:e,params:Dr(t)},provider:this})}),(r=>{n.done=!0,n.error=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:eh(n,Vp()),request:{method:e,params:Dr(t)},provider:this})})),this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:eh(n,null),request:{method:e,params:Dr(t)},provider:this}),u+=n.weight}const c=[];r.forEach((e=>{!e.done&&e.runner&&(c.push(e.runner),e.staller&&c.push(e.staller.getPromise()))})),c.length&&(yield Promise.race(c));const l=r.filter((e=>e.done&&null==e.error));if(l.length>=this.quorum){const e=n(l);if(void 0!==e)return r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),e;o||(yield Qp(100).getPromise()),o=!1}const d=r.reduce(((e,t)=>{if(!t.done||null==t.error)return e;const n=t.error.code;return $p.indexOf(n)>=0&&(e[n]||(e[n]={error:t.error,weight:0}),e[n].weight+=t.weight),e}),{});if(Object.keys(d).forEach((e=>{const t=d[e];if(t.weight<this.quorum)return;r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0}));const n=t.error,i={};Zp.forEach((e=>{null!=n[e]&&(i[e]=n[e])})),Wp.throwError(n.reason||n.message,e,i)})),0===r.filter((e=>!e.done)).length)break}return r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),Wp.throwError("failed to meet quorum",xn.errors.SERVER_ERROR,{method:e,params:t,results:r.map((e=>eh(e))),provider:this})}))}}const ah=new xn(Rf),oh="84842078b09946638c03157f83405213";class sh extends Tp{constructor(e,t){const n=new uh(e,t),r=n.connection;r.password&&ah.throwError("INFURA WebSocket project secrets unsupported",xn.errors.UNSUPPORTED_OPERATION,{operation:"InfuraProvider.getWebSocketProvider()"});super(r.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/"),e),Or(this,"apiKey",n.projectId),Or(this,"projectId",n.projectId),Or(this,"projectSecret",n.projectSecret)}isCommunityResource(){return this.projectId===oh}}class uh extends _p{static getWebSocketProvider(e,t){return new sh(e,t)}static getApiKey(e){const t={apiKey:oh,projectId:oh,projectSecret:null};return null==e||("string"==typeof e?t.projectId=e:null!=e.projectSecret?(ah.assertArgument("string"==typeof e.projectId,"projectSecret requires a projectId","projectId",e.projectId),ah.assertArgument("string"==typeof e.projectSecret,"invalid projectSecret","projectSecret","[REDACTED]"),t.projectId=e.projectId,t.projectSecret=e.projectSecret):e.projectId&&(t.projectId=e.projectId),t.apiKey=t.projectId),t}static getUrl(e,t){let n=null;switch(e?e.name:"unknown"){case"homestead":n="mainnet.infura.io";break;case"goerli":n="goerli.infura.io";break;case"sepolia":n="sepolia.infura.io";break;case"matic":n="polygon-mainnet.infura.io";break;case"maticmum":n="polygon-mumbai.infura.io";break;case"optimism":n="optimism-mainnet.infura.io";break;case"optimism-goerli":n="optimism-goerli.infura.io";break;case"arbitrum":n="arbitrum-mainnet.infura.io";break;case"arbitrum-goerli":n="arbitrum-goerli.infura.io";break;default:ah.throwError("unsupported network",xn.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={allowGzip:!0,url:"https://"+n+"/v3/"+t.projectId,throttleCallback:(e,n)=>(t.projectId===oh&&xf(),Promise.resolve(!0))};return null!=t.projectSecret&&(r.user="",r.password=t.projectSecret),r}isCommunityResource(){return this.projectId===oh}}class ch extends mp{send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};null==this._pendingBatch&&(this._pendingBatch=[]);const r={request:n,resolve:null,reject:null},i=new Promise(((e,t)=>{r.resolve=e,r.reject=t}));return this._pendingBatch.push(r),this._pendingBatchAggregator||(this._pendingBatchAggregator=setTimeout((()=>{const e=this._pendingBatch;this._pendingBatch=null,this._pendingBatchAggregator=null;const t=e.map((e=>e.request));return this.emit("debug",{action:"requestBatch",request:Dr(t),provider:this}),pf(this.connection,JSON.stringify(t)).then((n=>{this.emit("debug",{action:"response",request:t,response:n,provider:this}),e.forEach(((e,t)=>{const r=n[t];if(r.error){const t=new Error(r.error.message);t.code=r.error.code,t.data=r.error.data,e.reject(t)}else e.resolve(r.result)}))}),(n=>{this.emit("debug",{action:"response",error:n,request:t,provider:this}),e.forEach((e=>{e.reject(n)}))}))}),10)),i}}const lh=new xn(Rf);class dh extends _p{static getApiKey(e){return e&&"string"!=typeof e&&lh.throwArgumentError("invalid apiKey","apiKey",e),e||"ETHERS_JS_SHARED"}static getUrl(e,t){lh.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.");let n=null;switch(e.name){case"homestead":n="https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc";break;case"ropsten":n="https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc";break;case"rinkeby":n="https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc";break;case"goerli":n="https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc";break;case"kovan":n="https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc";break;default:lh.throwArgumentError("unsupported network","network",arguments[0])}return n+"?apiKey="+t}}const fh=new xn(Rf),ph="62e1ad51b37b8e00394bda3b";class hh extends _p{static getApiKey(e){const t={applicationId:null,loadBalancer:!0,applicationSecretKey:null};return null==e?t.applicationId=ph:"string"==typeof e?t.applicationId=e:null!=e.applicationSecretKey?(t.applicationId=e.applicationId,t.applicationSecretKey=e.applicationSecretKey):e.applicationId?t.applicationId=e.applicationId:fh.throwArgumentError("unsupported PocketProvider apiKey","apiKey",e),t}static getUrl(e,t){let n=null;switch(e?e.name:"unknown"){case"goerli":n="eth-goerli.gateway.pokt.network";break;case"homestead":n="eth-mainnet.gateway.pokt.network";break;case"kovan":n="poa-kovan.gateway.pokt.network";break;case"matic":n="poly-mainnet.gateway.pokt.network";break;case"maticmum":n="polygon-mumbai-rpc.gateway.pokt.network";break;case"rinkeby":n="eth-rinkeby.gateway.pokt.network";break;case"ropsten":n="eth-ropsten.gateway.pokt.network";break;default:fh.throwError("unsupported network",xn.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={headers:{},url:`https://${n}/v1/lb/${t.applicationId}`};return null!=t.applicationSecretKey&&(r.user="",r.password=t.applicationSecretKey),r}isCommunityResource(){return this.applicationId===ph}}const mh=new xn(Rf);let yh=1;function gh(e,t){const n="Web3LegacyFetcher";return function(e,r){const i={method:e,params:r,id:yh++,jsonrpc:"2.0"};return new Promise(((e,r)=>{this.emit("debug",{action:"request",fetcher:n,request:Dr(i),provider:this}),t(i,((t,a)=>{if(t)return this.emit("debug",{action:"response",fetcher:n,error:t,request:i,provider:this}),r(t);if(this.emit("debug",{action:"response",fetcher:n,request:i,response:a,provider:this}),a.error){const e=new Error(a.error.message);return e.code=a.error.code,e.data=a.error.data,r(e)}e(a.result)}))}))}}class bh extends mp{constructor(e,t){null==e&&mh.throwArgumentError("missing provider","provider",e);let n=null,r=null,i=null;"function"==typeof e?(n="unknown:",r=e):(n=e.host||e.path||"",!n&&e.isMetaMask&&(n="metamask"),i=e,e.request?(""===n&&(n="eip-1193:"),r=function(e){return function(t,n){null==n&&(n=[]);const r={method:t,params:n};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:Dr(r),provider:this}),e.request(r).then((e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,error:e,provider:this}),e}))}}(e)):e.sendAsync?r=gh(0,e.sendAsync.bind(e)):e.send?r=gh(0,e.send.bind(e)):mh.throwArgumentError("unsupported provider","provider",e),n||(n="unknown:")),super(n,t),Or(this,"jsonRpcFetchFunc",r),Or(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}const vh=new xn(Rf);function Th(e,t){if(null==e&&(e="homestead"),"string"==typeof e){const t=e.match(/^(ws|http)s?:/i);if(t)switch(t[1].toLowerCase()){case"http":case"https":return new mp(e);case"ws":case"wss":return new Tp(e);default:vh.throwArgumentError("unsupported URL scheme","network",e)}}const n=af(e);return n&&n._defaultProvider||vh.throwError("unsupported getDefaultProvider network",xn.errors.NETWORK_ERROR,{operation:"getDefaultProvider",network:e}),n._defaultProvider({FallbackProvider:ih,AlchemyProvider:Op,AnkrProvider:xp,CloudflareProvider:Bp,EtherscanProvider:Hp,InfuraProvider:uh,JsonRpcProvider:mp,NodesmithProvider:dh,PocketProvider:hh,Web3Provider:bh,IpcProvider:null},t)}var wh=Object.freeze({__proto__:null,AlchemyProvider:Op,AlchemyWebSocketProvider:Cp,AnkrProvider:xp,BaseProvider:np,CloudflareProvider:Bp,EtherscanProvider:Hp,FallbackProvider:ih,Formatter:Of,InfuraProvider:uh,InfuraWebSocketProvider:sh,IpcProvider:null,JsonRpcBatchProvider:ch,JsonRpcProvider:mp,JsonRpcSigner:fp,NodesmithProvider:dh,PocketProvider:hh,Provider:Yo,Resolver:Zf,StaticJsonRpcProvider:Ep,UrlJsonRpcProvider:_p,Web3Provider:bh,WebSocketProvider:Tp,getDefaultProvider:Th,getNetwork:af,isCommunityResourcable:kf,isCommunityResource:Sf,showThrottleMessage:xf});const Ah=new RegExp("^bytes([0-9]+)$"),Eh=new RegExp("^(u?int)([0-9]*)$"),_h=new RegExp("^(.*)\\[([0-9]*)\\]$"),Ih="0000000000000000000000000000000000000000000000000000000000000000",Rh=new xn("solidity/5.7.0");function Ch(e,t,n){switch(e){case"address":return n?Hn(t,32):qn(t);case"string":return fa(t);case"bytes":return qn(t);case"bool":return t=t?"0x01":"0x00",n?Hn(t,32):qn(t)}let r=e.match(Eh);if(r){let i=parseInt(r[2]||"256");return(r[2]&&String(i)!==r[2]||i%8!=0||0===i||i>256)&&Rh.throwArgumentError("invalid number type","type",e),n&&(i=256),Hn(t=ur.from(t).toTwos(i),i/8)}if(r=e.match(Ah),r){const i=parseInt(r[1]);return(String(i)!==r[1]||0===i||i>32)&&Rh.throwArgumentError("invalid bytes type","type",e),qn(t).byteLength!==i&&Rh.throwArgumentError(`invalid value for ${e}`,"value",t),n?qn((t+Ih).substring(0,66)):t}if(r=e.match(_h),r&&Array.isArray(t)){const n=r[1];parseInt(r[2]||String(t.length))!=t.length&&Rh.throwArgumentError(`invalid array length for ${e}`,"value",t);const i=[];return t.forEach((function(e){i.push(Ch(n,e,!0))})),jn(i)}return Rh.throwArgumentError("invalid type","type",e)}function Oh(e,t){e.length!=t.length&&Rh.throwArgumentError("wrong number of values; expected ${ types.length }","values",t);const n=[];return e.forEach((function(e,r){n.push(Ch(e,t[r]))})),Vn(jn(n))}function kh(e,t){return mi(Oh(e,t))}function Sh(e,t){return Bl(Oh(e,t))}var Nh=Object.freeze({__proto__:null,keccak256:kh,pack:Oh,sha256:Sh});const xh=new xn("units/5.7.0"),Ph=["wei","kwei","mwei","gwei","szabo","finney","ether"];function Mh(e){const t=String(e).split(".");(t.length>2||!t[0].match(/^-?[0-9]*$/)||t[1]&&!t[1].match(/^[0-9]*$/)||"."===e||"-."===e)&&xh.throwArgumentError("invalid value","value",e);let n=t[0],r="";for("-"===n.substring(0,1)&&(r="-",n=n.substring(1));"0"===n.substring(0,1);)n=n.substring(1);""===n&&(n="0");let i="";for(2===t.length&&(i="."+(t[1]||"0"));i.length>2&&"0"===i[i.length-1];)i=i.substring(0,i.length-1);const a=[];for(;n.length;){if(n.length<=3){a.unshift(n);break}{const e=n.length-3;a.unshift(n.substring(e)),n=n.substring(0,e)}}return r+a.join(",")+i}function Bh(e,t){if("string"==typeof t){const e=Ph.indexOf(t);-1!==e&&(t=3*e)}return Tr(e,null!=t?t:18)}function Dh(e,t){if("string"!=typeof e&&xh.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Ph.indexOf(t);-1!==e&&(t=3*e)}return wr(e,null!=t?t:18)}function Fh(e){return Bh(e,18)}function Lh(e){return Dh(e,18)}var Uh=Object.freeze({__proto__:null,commify:Mh,formatEther:Fh,formatUnits:Bh,parseEther:Lh,parseUnits:Dh}),qh=Object.freeze({__proto__:null,AbiCoder:Fa,ConstructorFragment:ti,ErrorFragment:ii,EventFragment:Qr,FormatTypes:Vr,Fragment:Yr,FunctionFragment:ni,HDNode:nd,Indexed:Go,Interface:Wo,LogDescription:Uo,Logger:xn,ParamType:Xr,RLP:Ii,SigningKey:Hc,get SupportedAlgorithm(){return Nl},TransactionDescription:qo,get TransactionTypes(){return Xc},get UnicodeNormalizationForm(){return sa},Utf8ErrorFuncs:la,get Utf8ErrorReason(){return ua},_TypedDataEncoder:Do,_fetchData:ff,_toEscapedUtf8String:ha,accessListify:rl,arrayify:qn,base58:Sl,base64:Ha,checkProperties:Nr,checkResultErrors:li,commify:Mh,computeAddress:Zc,computeHmac:Fl,computePublicKey:Wc,concat:jn,deepCopy:Dr,defaultAbiCoder:La,defaultPath:td,defineReadOnly:Or,dnsEncode:bo,entropyToMnemonic:ad,fetchJson:pf,formatBytes32String:ba,formatEther:Fh,formatUnits:Bh,getAccountPath:sd,getAddress:Ni,getContractAddress:Mi,getCreate2Address:Bi,getIcapAddress:Pi,getJsonWalletAddress:Od,getStatic:kr,hashMessage:To,hexConcat:Jn,hexDataLength:Kn,hexDataSlice:Xn,hexStripZeros:Qn,hexValue:Yn,hexZeroPad:$n,hexlify:Vn,id:Ua,isAddress:xi,isBytes:Un,isBytesLike:Fn,isHexString:zn,isValidMnemonic:od,isValidName:yo,joinSignature:er,keccak256:mi,mnemonicToEntropy:id,mnemonicToSeed:rd,namehash:go,nameprep:Sa,parseBytes32String:va,parseEther:Lh,parseTransaction:cl,parseUnits:Dh,poll:hf,randomBytes:fd,recoverAddress:el,recoverPublicKey:zc,resolveProperties:Sr,ripemd160:Ml,serializeTransaction:sl,sha256:Bl,sha512:Dl,shallowCopy:xr,shuffled:pd,solidityKeccak256:kh,solidityPack:Oh,soliditySha256:Sh,splitSignature:Zn,stripZeros:Gn,toUtf8Bytes:fa,toUtf8CodePoints:ga,toUtf8String:ya,verifyMessage:Xd,verifyTypedData:Jd,zeroPad:Hn});const jh="ethers/5.7.2",Gh=new xn(jh);var Hh=Object.freeze({__proto__:null,BaseContract:Il,BigNumber:ur,Contract:Rl,ContractFactory:Cl,FixedNumber:Er,Signer:ts,VoidSigner:ns,Wallet:Kd,Wordlist:jl,constants:ia,get errors(){return Sn},getDefaultProvider:Th,logger:Gh,providers:wh,utils:qh,version:jh,wordlists:Wl});try{const e=window;null==e._ethers&&(e._ethers=Hh)}catch(e){}var zh,Wh,Vh,Kh,Xh,Jh,Yh,Qh=Object.freeze({__proto__:null,BaseContract:Il,BigNumber:ur,Contract:Rl,ContractFactory:Cl,FixedNumber:Er,Signer:ts,VoidSigner:ns,Wallet:Kd,Wordlist:jl,constants:ia,get errors(){return Sn},ethers:Hh,getDefaultProvider:Th,logger:Gh,providers:wh,utils:qh,version:jh,wordlists:Wl});e.ChainId=void 0,function(e){e[e.IMTBL_ZKEVM_MAINNET=13371]="IMTBL_ZKEVM_MAINNET",e[e.IMTBL_ZKEVM_TESTNET=13473]="IMTBL_ZKEVM_TESTNET",e[e.IMTBL_ZKEVM_DEVNET=13433]="IMTBL_ZKEVM_DEVNET",e[e.ETHEREUM=1]="ETHEREUM",e[e.SEPOLIA=11155111]="SEPOLIA"}(e.ChainId||(e.ChainId={})),e.ChainName=void 0,(zh=e.ChainName||(e.ChainName={})).ETHEREUM="Ethereum",zh.SEPOLIA="Sepolia",zh.IMTBL_ZKEVM_TESTNET="Immutable zkEVM Test",zh.IMTBL_ZKEVM_DEVNET="Immutable zkEVM Dev",zh.IMTBL_ZKEVM_MAINNET="Immutable zkEVM",e.ChainSlug=void 0,(Wh=e.ChainSlug||(e.ChainSlug={})).ETHEREUM="ethereum",Wh.SEPOLIA="sepolia",Wh.IMTBL_ZKEVM_MAINNET="imtbl-zkevm-mainnet",Wh.IMTBL_ZKEVM_TESTNET="imtbl-zkevm-testnet",Wh.IMTBL_ZKEVM_DEVNET="imtbl-zkevm-devnet",function(e){e.TRANSAK="201811419111"}(Vh||(Vh={})),e.GasEstimateType=void 0,(Kh=e.GasEstimateType||(e.GasEstimateType={})).BRIDGE_TO_L2="BRIDGE_TO_L2",Kh.SWAP="SWAP",e.NetworkFilterTypes=void 0,(e.NetworkFilterTypes||(e.NetworkFilterTypes={})).ALL="all",e.TokenFilterTypes=void 0,(Xh=e.TokenFilterTypes||(e.TokenFilterTypes={})).ALL="all",Xh.SWAP="swap",Xh.BRIDGE="bridge",Xh.ONRAMP="onramp",function(e){e.CHECK_CONNECTION="eth_accounts",e.CONNECT="eth_requestAccounts",e.ADD_NETWORK="wallet_addEthereumChain",e.SWITCH_NETWORK="wallet_switchEthereumChain",e.GET_CHAINID="eth_chainId"}(Jh||(Jh={})),e.WalletFilterTypes=void 0,(e.WalletFilterTypes||(e.WalletFilterTypes={})).ALL="all",e.WalletProviderName=void 0,(Yh=e.WalletProviderName||(e.WalletProviderName={})).PASSPORT="passport",Yh.METAMASK="metamask";const $h={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1};var Zh,em,tm,nm,rm,im,am;e.CheckoutStatus=void 0,(Zh=e.CheckoutStatus||(e.CheckoutStatus={})).SUCCESS="SUCCESS",Zh.FAILED="FAILED",Zh.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.ItemType=void 0,function(e){e.NATIVE="NATIVE",e.ERC20="ERC20",e.ERC721="ERC721"}(e.ItemType||(e.ItemType={})),e.TransactionOrGasType=void 0,(em=e.TransactionOrGasType||(e.TransactionOrGasType={})).TRANSACTION="TRANSACTION",em.GAS="GAS",e.GasTokenType=void 0,(tm=e.GasTokenType||(e.GasTokenType={})).NATIVE="NATIVE",tm.ERC20="ERC20",e.RoutingOutcomeType=void 0,(nm=e.RoutingOutcomeType||(e.RoutingOutcomeType={})).ROUTES_FOUND="ROUTES_FOUND",nm.NO_ROUTES_FOUND="NO_ROUTES_FOUND",nm.NO_ROUTE_OPTIONS="NO_ROUTE_OPTIONS",e.FeeType=void 0,function(e){e.GAS="GAS",e.BRIDGE_FEE="BRIDGE_FEE",e.SWAP_FEE="SWAP_FEE",e.IMMUTABLE_FEE="IMMUTABLE_FEE"}(e.FeeType||(e.FeeType={})),e.FundingStepType=void 0,(rm=e.FundingStepType||(e.FundingStepType={})).BRIDGE="BRIDGE",rm.SWAP="SWAP",rm.ONRAMP="ONRAMP",e.ExchangeType=void 0,(e.ExchangeType||(e.ExchangeType={})).ONRAMP="onramp",e.CheckoutErrorType=void 0,(im=e.CheckoutErrorType||(e.CheckoutErrorType={})).MISSING_PARAMS="MISSING_PARAMS",im.WEB3_PROVIDER_ERROR="WEB3_PROVIDER_ERROR",im.PROVIDER_ERROR="PROVIDER_ERROR",im.DEFAULT_PROVIDER_ERROR="DEFAULT_PROVIDER_ERROR",im.CONNECT_PROVIDER_ERROR="CONNECT_PROVIDER_ERROR",im.GET_BALANCE_ERROR="GET_BALANCE_ERROR",im.GET_INDEXER_BALANCE_ERROR="GET_INDEXER_BALANCE_ERROR",im.GET_ERC20_INFO_ERROR="GET_ERC20_INFO_ERROR",im.GET_ERC20_BALANCE_ERROR="GET_ERC20_BALANCE_ERROR",im.GET_ERC721_BALANCE_ERROR="GET_ERC721_BALANCE_ERROR",im.GET_NETWORK_INFO_ERROR="GET_NETWORK_INFO_ERROR",im.METAMASK_PROVIDER_ERROR="METAMASK_PROVIDER_ERROR",im.CHAIN_NOT_SUPPORTED_ERROR="CHAIN_NOT_SUPPORTED_ERROR",im.PROVIDER_REQUEST_MISSING_ERROR="PROVIDER_REQUEST_MISSING_ERROR",im.PROVIDER_REQUEST_FAILED_ERROR="PROVIDER_REQUEST_FAILED_ERROR",im.USER_REJECTED_REQUEST_ERROR="USER_REJECTED_REQUEST_ERROR",im.TRANSACTION_FAILED="TRANSACTION_FAILED",im.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",im.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",im.INVALID_GAS_ESTIMATE_TYPE="INVALID_GAS_ESTIMATE_TYPE",im.UNSUPPORTED_TOKEN_TYPE_ERROR="UNSUPPORTED_TOKEN_TYPE_ERROR",im.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR="UNSUPPORTED_BALANCE_REQUIREMENT_ERROR",im.GET_ORDER_LISTING_ERROR="GET_ORDER_LISTING_ERROR",im.CANCEL_ORDER_LISTING_ERROR="CANCEL_ORDER_LISTING_ERROR",im.PREPARE_ORDER_LISTING_ERROR="PREPARE_ORDER_LISTING_ERROR",im.CREATE_ORDER_LISTING_ERROR="CREATE_ORDER_LISTING_ERROR",im.FULFILL_ORDER_LISTING_ERROR="FULFILL_ORDER_LISTING_ERROR",im.SWITCH_NETWORK_UNSUPPORTED="SWITCH_NETWORK_UNSUPPORTED",im.GET_ERC20_ALLOWANCE_ERROR="GET_ERC20_ALLOWANCE_ERROR",im.GET_ERC721_ALLOWANCE_ERROR="GET_ERC721_ALLOWANCE_ERROR",im.EXECUTE_APPROVAL_TRANSACTION_ERROR="EXECUTE_APPROVAL_TRANSACTION_ERROR",im.EXECUTE_FULFILLMENT_TRANSACTION_ERROR="EXECUTE_FULFILLMENT_TRANSACTION_ERROR",im.SIGN_MESSAGE_ERROR="SIGN_MESSAGE_ERROR",im.BRIDGE_GAS_ESTIMATE_ERROR="BRIDGE_GAS_ESTIMATE_ERROR",im.ORDER_FEE_ERROR="ORDER_FEE_ERROR",im.ITEM_REQUIREMENTS_ERROR="ITEM_REQUIREMENTS_ERROR",im.API_ERROR="API_ERROR",im.ORDER_EXPIRED_ERROR="ORDER_EXPIRED_ERROR",im.WIDGETS_SCRIPT_LOAD_ERROR="WIDGETS_SCRIPT_LOAD_ERROR";class om extends Error{message;type;data;constructor(e,t,n){super(e),this.message=e,this.type=t,this.data=n}}!function(e){e.REJECTED_SWITCH_AFTER_ADDING_NETWORK="REJECTED_SWITCH_AFTER_ADDING_NETWORK"}(am||(am={}));const sm=async(e,t)=>{try{return await e()}catch(e){const n=`${e.message}`||"UnknownError",r=t.message?`[${t.type}]:${t.message}. Cause:${n}`:`[${t.type}] Cause:${n}`;if(e instanceof om)throw new om(r,t.type,{...t.data,innerErrorType:e.type,...e.data});throw new om(r,t.type,{...t.data})}};async function um(t){if(!t.provider?.request)throw new om("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const n=await t.provider.request({method:Jh.GET_CHAINID,params:[]});return parseInt(n,16)}async function cm(t,{type:n=e.NetworkFilterTypes.ALL,exclude:r}){const{networkMap:i}=t,a=await t.remote.getConfig("allowedNetworks");a||console.warn("No allowed networks configured");const o=(a||[]).filter((t=>{const i=n===e.NetworkFilterTypes.ALL,a=!(r||[]).map((e=>e.chainId)).includes(t.chainId);return i&&a})),s=[];return o.forEach((e=>{const t=i.get(e.chainId);t&&s.push({name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0})})),{networks:s}}async function lm(t,n){const{networkMap:r}=t;return sm((async()=>{try{const e=await n.getNetwork();if(Array.from(r.keys()).includes(e.chainId)){const t=r.get(e.chainId);return{name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0}}return{chainId:e.chainId,name:e.name,isSupported:!1}}catch(e){const t=await um(n);return{chainId:t,isSupported:Array.from(r.keys()).includes(t)}}}),{type:e.CheckoutErrorType.GET_NETWORK_INFO_ERROR})}async function dm(t,n,r){const{networkMap:i}=t;if(!(await cm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===r)))throw new om(`Chain:${r} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(n.provider?.isPassport)throw new om("Switching networks with Passport provider is not supported",e.CheckoutErrorType.SWITCH_NETWORK_UNSUPPORTED);try{await async function(e,t,n){if(t.provider?.request)return await t.provider.request({method:Jh.SWITCH_NETWORK,params:[{chainId:e.get(n)?.chainIdHex}]})}(i,n,r)}catch(t){if(4902!==t.code)throw new om("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);try{await async function(e,t,n){if(t.provider?.request){const r=e.get(n),i={chainId:r?.chainIdHex,chainName:r?.chainName,rpcUrls:r?.rpcUrls,nativeCurrency:r?.nativeCurrency,blockExplorerUrls:r?.blockExplorerUrls};return await t.provider.request({method:Jh.ADD_NETWORK,params:[i]})}}(i,n,r)}catch(t){throw new om("User cancelled add network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR)}}const a=new bh(n.provider);if((await a.getNetwork()).chainId!==r)throw new om("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);return{network:await lm(t,a),provider:a}}const fm="development",pm=18,hm="native",mm={name:"IMX",symbol:"IMX",decimals:pm,address:hm},ym={[fm]:"https://api.dev.immutable.com",[ht.SANDBOX]:"https://api.sandbox.immutable.com",[ht.PRODUCTION]:"https://api.immutable.com"},gm={[fm]:"https://checkout-api.dev.immutable.com",[ht.SANDBOX]:"https://checkout-api.sandbox.immutable.com",[ht.PRODUCTION]:"https://checkout-api.immutable.com"},bm={[ht.SANDBOX]:"https://global-stg.transak.com",[ht.PRODUCTION]:"https://global.transak.com/"},vm=new Map([[e.ChainId.ETHEREUM,{chainIdHex:`0x${e.ChainId.ETHEREUM.toString(16)}`,chainName:e.ChainName.ETHEREUM,rpcUrls:["https://checkout-api.immutable.com/v1/rpc/eth-mainnet"],nativeCurrency:{name:e.ChainName.ETHEREUM,symbol:"ETH",decimals:18},blockExplorerUrls:["https://etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_MAINNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_MAINNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_MAINNET,rpcUrls:["https://rpc.immutable.com"],nativeCurrency:mm}]]),Tm=new Map([[e.ChainId.SEPOLIA,{chainIdHex:`0x${e.ChainId.SEPOLIA.toString(16)}`,chainName:e.ChainName.SEPOLIA,rpcUrls:["https://checkout-api.sandbox.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_TESTNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_TESTNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_TESTNET,rpcUrls:["https://rpc.testnet.immutable.com"],nativeCurrency:mm}]]),wm=new Map([[e.ChainId.SEPOLIA,{chainIdHex:`0x${e.ChainId.SEPOLIA.toString(16)}`,chainName:e.ChainName.SEPOLIA,rpcUrls:["https://checkout-api.dev.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_DEVNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_DEVNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_DEVNET,rpcUrls:["https://rpc.dev.immutable.com"],nativeCurrency:mm}]]),Am={[e.ChainId.IMTBL_ZKEVM_TESTNET]:{url:"https://explorer.testnet.immutable.com",nativeToken:Tm.get(e.ChainId.IMTBL_ZKEVM_TESTNET).nativeCurrency},[e.ChainId.IMTBL_ZKEVM_MAINNET]:{url:"https://explorer.immutable.com",nativeToken:vm.get(e.ChainId.IMTBL_ZKEVM_MAINNET).nativeCurrency},[e.ChainId.SEPOLIA]:{url:"https://eth-sepolia.blockscout.com",nativeToken:Tm.get(e.ChainId.SEPOLIA).nativeCurrency},[e.ChainId.ETHEREUM]:{url:"https://eth.blockscout.com/",nativeToken:vm.get(e.ChainId.ETHEREUM).nativeCurrency}},Em=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],_m=[{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],Im={maxFeePerGas:ur.from(102e9),maxPriorityFeePerGas:ur.from(101e9)},Rm=()=>"0.41.1";class Cm{httpClient;isDevelopment;isProduction;configCache;tokensCache;version="v1";constructor(e,t){this.isDevelopment=t.isDevelopment,this.isProduction=t.isProduction,this.httpClient=e}getEndpoint=()=>this.isDevelopment?gm[fm]:this.isProduction?gm[ht.PRODUCTION]:gm[ht.SANDBOX];parseResponse(t){let n=t.data;if(t.data&&"object"!=typeof t.data)try{n=JSON.parse(t.data)}catch(t){throw new om("Invalid configuration",e.CheckoutErrorType.API_ERROR)}return n}async loadConfig(){if(this.configCache)return this.configCache;let t;try{t=await this.httpClient.get(`${this.getEndpoint()}/${this.version}/config`)}catch(t){throw new om(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR)}return this.configCache=this.parseResponse(t),this.configCache}async loadConfigTokens(){if(this.tokensCache)return this.tokensCache;let t;try{t=await this.httpClient.get(`${this.getEndpoint()}/${this.version}/config/tokens`)}catch(t){throw new om(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR)}return this.tokensCache=this.parseResponse(t),this.tokensCache}async getConfig(e){const t=await this.loadConfig();if(t)return e?t[e]:t}async getTokensConfig(e){const t=await this.loadConfigTokens();return t&&t[e]?t[e]??[]:{}}getHttpClient=()=>this.httpClient}class Om extends Error{message;constructor(e){super(e),this.message=e}}const km=t=>t.isProduction?e.ChainId.ETHEREUM:e.ChainId.SEPOLIA,Sm=t=>t.isDevelopment?e.ChainId.IMTBL_ZKEVM_DEVNET:t.isProduction?e.ChainId.IMTBL_ZKEVM_MAINNET:e.ChainId.IMTBL_ZKEVM_TESTNET;class Nm{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;environment;networkMap;constructor(e,t){if(!Object.values(ht).includes(e.baseConfig.environment))throw new Om("Invalid checkout configuration of environment");var n;this.environment=e.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===ht.PRODUCTION,this.isOnRampEnabled=e.onRamp?.enable??true,this.isSwapEnabled=e.swap?.enable??true,this.isBridgeEnabled=e.bridge?.enable??true,this.networkMap=(n=this.isProduction,this.isDevelopment?wm:n?vm:Tm),this.remote=new Cm(t,{isDevelopment:this.isDevelopment,isProduction:this.isProduction})}}const xm=(e="",t="")=>e.toLowerCase()===t.toLowerCase(),Pm=async(t,{type:n=e.TokenFilterTypes.ALL,chainId:r,exclude:i})=>{let a,o,s=[];const u=r??km(t);switch(n){case e.TokenFilterTypes.SWAP:s=(await t.remote.getConfig("dex")).tokens||[];break;case e.TokenFilterTypes.ONRAMP:a=await t.remote.getConfig("onramp"),a||(s=[]),s=a[Vh.TRANSAK]?.tokens||[];break;case e.TokenFilterTypes.BRIDGE:o=await t.remote.getConfig("bridge"),o||(s=[]),s=o[u]?.tokens||[];break;case e.TokenFilterTypes.ALL:default:s=(await t.remote.getTokensConfig(u)).allowed}return i&&0!==i?.length?{tokens:s.filter((e=>!i.map((e=>e.address)).includes(e.address||"")))}:{tokens:s}},Mm=e=>!e||xm(e,hm);async function Bm(t,n){return await sm((async()=>{const e=new Rl(n,JSON.stringify(Em),t),[r,i,a]=await Promise.all([e.name(),e.symbol(),e.decimals()]);return{name:r,symbol:i,decimals:a,address:n}}),{type:e.CheckoutErrorType.GET_ERC20_INFO_ERROR})}class Dm{url;nativeToken;ttl;chainId;cacheMap;httpClient;setCache(e,t){this.cacheMap[e]={data:t,ttl:(new Date).getTime()+1e3*this.ttl}}getCache(e){const t=this.cacheMap[e];return!t||t.ttl<=(new Date).getTime()?null:t.data}constructor(e,t,n){this.httpClient=e,this.chainId=t,this.url=Am[this.chainId].url;const r=Am[this.chainId].nativeToken;this.nativeToken={address:r.address??"",decimals:r.decimals.toString(),name:r.name,symbol:r.symbol},this.cacheMap={},this.ttl=void 0!==n?n:60}static isChainSupported=e=>Boolean(Am[e]);static isBlockscoutError=e=>"code"in e;async getTokensByWalletAddress(e){try{let t=`${this.url}/api/v2/addresses/${e.walletAddress}/tokens?type=${e.tokenType}`;e.nextPage&&(t+=`&${new URLSearchParams(e.nextPage)}`);const n=this.getCache(t);if(n)return Promise.resolve(n);const r=await this.httpClient.get(t),i={items:r.data?.items?.filter((e=>e.token.address&&e.token.address!==this.nativeToken.address)),next_page_params:r.data?.next_page_params};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=lt.InternalServerError,n="InternalServerError";return Qe.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}async getNativeTokenByWalletAddress(e){try{const t=`${this.url}/api/v2/addresses/${e.walletAddress}`,n=this.getCache(t);if(n)return Promise.resolve(n);const r=await this.httpClient.get(t),i={token:this.nativeToken,value:r.data.coin_balance};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=lt.InternalServerError,n="InternalServerError";return Qe.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}}var Fm;!function(e){e.ERC20="ERC-20"}(Fm||(Fm={}));const Lm=(e,t,n)=>{e.isProduction||console.info(t,n)},Um=async(e,t,n)=>{const r=performance.now(),i=await n,a=performance.now();return Lm(e,t,(a-r)/1e3),i},qm=async(t,n,r)=>await sm((async()=>{const i=await lm(t,n);if(!i.isSupported)throw new om(`Chain:${i.chainId} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR,{chainName:i.name});const a=await n.getBalance(r);return{balance:a,formattedBalance:Bh(a,i.nativeCurrency.decimals),token:i.nativeCurrency}}),{type:e.CheckoutErrorType.GET_BALANCE_ERROR});async function jm(t,n,r){return await sm((async()=>{const e=new Rl(r,JSON.stringify(Em),t);return Promise.all([Bm(t,r),e.balanceOf(n)]).then((([e,t])=>({balance:t,formattedBalance:Bh(t,e.decimals),token:{name:e.name,symbol:e.symbol,decimals:e.decimals,address:r}})))}),{type:e.CheckoutErrorType.GET_ERC20_BALANCE_ERROR})}const Gm=new Map,Hm=async(t,n,r,i)=>{if(!r&&!n)throw new om("both walletAddress and provider are missing. At least one must be provided.",e.CheckoutErrorType.MISSING_PARAMS);if(!t.networkMap.get(i))throw new om(`chain ID ${i} not supported by the environment`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);const{tokens:a}=await Pm(t,{type:e.TokenFilterTypes.ALL,chainId:i});let o=!1;try{o=(await t.remote.getTokensConfig(i)).blockscout||o}catch(e){console.error(e)}let s=r;if(o&&Dm.isChainSupported(i)){const r=km(t)===i;return s||(s=await(n?.getSigner().getAddress())),await Um(t,`Time to fetch balances using blockscout for ${i}`,(async(t,n,r,i)=>{const a=void 0!==i,o=Object.assign({},...(i??[]).map((e=>({[e.address||hm]:e}))));let s=Gm.get(r);if(!s){const e=t.remote.getHttpClient();s=new Dm(e,r),Gm.set(r,s)}const u=[],c=Fm.ERC20;await Promise.all([(async t=>{let r;try{do{r=await t.getTokensByWalletAddress({walletAddress:n,tokenType:c,nextPage:r?.next_page_params}),u.push(...r.items)}while(r.next_page_params)}catch(t){if(t?.code!==lt.NotFound)throw new om(t.message||"InternalServerError | getTokensByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,t)}})(s),(async t=>{try{const e=await t.getNativeTokenByWalletAddress({walletAddress:n});e.token.address||=hm,u.push(e)}catch(t){if(t?.code!==lt.NotFound)throw new om(t.message||"InternalServerError | getNativeTokenByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,t)}})(s)]);const l=[];return u.forEach((e=>{if(a&&!o[e.token.address])return;const t=e.token||{},n=ur.from(e.value);let r=parseInt(t.decimals,10);Number.isNaN(r)&&(r=pm);const i={...t,decimals:r},s=Bh(e.value,i.decimals);l.push({balance:n,formattedBalance:s,token:i})})),{balances:l}})(t,s,i,r?a:void 0))}if(!n)throw new om("indexer is disabled for this chain, you must provide a provider.",e.CheckoutErrorType.MISSING_PARAMS);return s||=await n.getSigner().getAddress(),await Um(t,`Time to fetch balances using RPC for ${i}`,(async(e,t,n,r)=>{const i=[];return r.forEach((r=>{!r.address||xm(r.address,hm)?i.push(qm(e,t,n)):i.push(jm(t,n,r.address))})),{balances:(await Promise.allSettled(i)).filter((e=>"fulfilled"===e.status)).map((e=>{const t=e,{token:n}=t.value;return n.address&&!xm(n.address,hm)||(t.value.token.address=hm),t.value}))}})(t,n,s,a))};var zm=function({mustBeMetaMask:e=!1,silent:t=!1,timeout:n=3e3}={}){!function(){if("boolean"!=typeof e)throw new Error("@metamask/detect-provider: Expected option 'mustBeMetaMask' to be a boolean.");if("boolean"!=typeof t)throw new Error("@metamask/detect-provider: Expected option 'silent' to be a boolean.");if("number"!=typeof n)throw new Error("@metamask/detect-provider: Expected option 'timeout' to be a number.")}();let r=!1;return new Promise((i=>{function a(){if(r)return;r=!0,window.removeEventListener("ethereum#initialized",a);const{ethereum:n}=window;if(!n||e&&!n.isMetaMask){const r=e&&n?"Non-MetaMask window.ethereum detected.":"Unable to detect window.ethereum.";!t&&console.error("@metamask/detect-provider:",r),i(null)}else i(n)}window.ethereum?a():(window.addEventListener("ethereum#initialized",a,{once:!0}),setTimeout((()=>{a()}),n))}))},Wm=gt(zm);async function Vm(t,n){let r=null;switch(t){case e.WalletProviderName.PASSPORT:if(!n)throw console.error("WalletProviderName was PASSPORT but the passport instance was not provided to the Checkout constructor"),new om("Passport not provided",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR);r=new bh(n.connectEvm());break;case e.WalletProviderName.METAMASK:r=await async function(){const t=await sm((async()=>await Wm()),{type:e.CheckoutErrorType.METAMASK_PROVIDER_ERROR});if(!t||!t.request)throw new om("No MetaMask provider installed.",e.CheckoutErrorType.METAMASK_PROVIDER_ERROR);return new bh(t)}();break;default:throw console.error("The WalletProviderName that was provided is not supported"),new om("Provider not supported",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR)}return{provider:r,walletProviderName:t}}function Km(e){return!(!e||!e.provider?.request||"function"!=typeof e.provider.request)}async function Xm(t,n,r){return sm((async()=>{if(n.provider?.isPassport)return n;if(!Km(n))throw new om("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const i={...$h,...r},a=await um(n);let o=n.network?.chainId;try{o=n.network?.chainId,o||(o=(await n.getNetwork()).chainId)}catch(t){throw new om("Unable to detect the web3Provider network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR)}if(o!==a&&!i.allowMistmatchedChainId)throw new om("Your wallet has changed network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);if(!(await cm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===a))&&!i.allowUnsupportedProvider)throw new om("Your wallet is connected to an unsupported network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);return n}),{type:e.CheckoutErrorType.WEB3_PROVIDER_ERROR})}const Jm=async(t,n)=>{try{const e=t.getSigner(),r=(e=>{const t=e;return t.maxFeePerGas=Im.maxFeePerGas,t.maxPriorityFeePerGas=Im.maxPriorityFeePerGas,t})(n);return{transactionResponse:await e.sendTransaction(r)}}catch(t){if(t.code===Sn.INSUFFICIENT_FUNDS)throw new om(t.message,e.CheckoutErrorType.INSUFFICIENT_FUNDS);if(t.code===Sn.ACTION_REJECTED)throw new om(t.message,e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);if(t.code===Sn.UNPREDICTABLE_GAS_LIMIT)throw new om(t.message,e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT);throw new om(t.message,e.CheckoutErrorType.TRANSACTION_FAILED)}};function Ym(e,t){return function(){return e.apply(t,arguments)}}const{toString:Qm}=Object.prototype,{getPrototypeOf:$m}=Object,Zm=(e=>t=>{const n=Qm.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),ey=e=>(e=e.toLowerCase(),t=>Zm(t)===e),ty=e=>t=>typeof t===e,{isArray:ny}=Array,ry=ty("undefined");const iy=ey("ArrayBuffer");const ay=ty("string"),oy=ty("function"),sy=ty("number"),uy=e=>null!==e&&"object"==typeof e,cy=e=>{if("object"!==Zm(e))return!1;const t=$m(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},ly=ey("Date"),dy=ey("File"),fy=ey("Blob"),py=ey("FileList"),hy=ey("URLSearchParams");function my(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,i;if("object"!=typeof e&&(e=[e]),ny(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{const i=n?Object.getOwnPropertyNames(e):Object.keys(e),a=i.length;let o;for(r=0;r<a;r++)o=i[r],t.call(null,e[o],o,e)}}function yy(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,i=n.length;for(;i-- >0;)if(r=n[i],t===r.toLowerCase())return r;return null}const gy="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,by=e=>!ry(e)&&e!==gy;const vy=(e=>t=>e&&t instanceof e)("undefined"!=typeof Uint8Array&&$m(Uint8Array)),Ty=ey("HTMLFormElement"),wy=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ay=ey("RegExp"),Ey=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};my(n,((n,i)=>{let a;!1!==(a=t(n,i,e))&&(r[i]=a||n)})),Object.defineProperties(e,r)},_y="abcdefghijklmnopqrstuvwxyz",Iy="0123456789",Ry={DIGIT:Iy,ALPHA:_y,ALPHA_DIGIT:_y+_y.toUpperCase()+Iy};const Cy=ey("AsyncFunction");var Oy={isArray:ny,isArrayBuffer:iy,isBuffer:function(e){return null!==e&&!ry(e)&&null!==e.constructor&&!ry(e.constructor)&&oy(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||oy(e.append)&&("formdata"===(t=Zm(e))||"object"===t&&oy(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&iy(e.buffer),t},isString:ay,isNumber:sy,isBoolean:e=>!0===e||!1===e,isObject:uy,isPlainObject:cy,isUndefined:ry,isDate:ly,isFile:dy,isBlob:fy,isRegExp:Ay,isFunction:oy,isStream:e=>uy(e)&&oy(e.pipe),isURLSearchParams:hy,isTypedArray:vy,isFileList:py,forEach:my,merge:function e(){const{caseless:t}=by(this)&&this||{},n={},r=(r,i)=>{const a=t&&yy(n,i)||i;cy(n[a])&&cy(r)?n[a]=e(n[a],r):cy(r)?n[a]=e({},r):ny(r)?n[a]=r.slice():n[a]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&my(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(my(t,((t,r)=>{n&&oy(t)?e[r]=Ym(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let i,a,o;const s={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-- >0;)o=i[a],r&&!r(o,e,t)||s[o]||(t[o]=e[o],s[o]=!0);e=!1!==n&&$m(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:Zm,kindOfTest:ey,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(ny(e))return e;let t=e.length;if(!sy(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:Ty,hasOwnProperty:wy,hasOwnProp:wy,reduceDescriptors:Ey,freezeMethods:e=>{Ey(e,((t,n)=>{if(oy(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];oy(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return ny(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:yy,global:gy,isContextDefined:by,ALPHABET:Ry,generateString:(e=16,t=Ry.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&oy(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(uy(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const i=ny(e)?[]:{};return my(e,((e,t)=>{const a=n(e,r+1);!ry(a)&&(i[t]=a)})),t[r]=void 0,i}}return e};return n(e,0)},isAsyncFn:Cy,isThenable:e=>e&&(uy(e)||oy(e))&&oy(e.then)&&oy(e.catch)};function ky(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}Oy.inherits(ky,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Oy.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Sy=ky.prototype,Ny={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{Ny[e]={value:e}})),Object.defineProperties(ky,Ny),Object.defineProperty(Sy,"isAxiosError",{value:!0}),ky.from=(e,t,n,r,i,a)=>{const o=Object.create(Sy);return Oy.toFlatObject(e,o,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),ky.call(o,e.message,t,n,r,i),o.cause=e,o.name=e.name,a&&Object.assign(o,a),o};function xy(e){return Oy.isPlainObject(e)||Oy.isArray(e)}function Py(e){return Oy.endsWith(e,"[]")?e.slice(0,-2):e}function My(e,t,n){return e?e.concat(t).map((function(e,t){return e=Py(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const By=Oy.toFlatObject(Oy,{},null,(function(e){return/^is[A-Z]/.test(e)}));function Dy(e,t,n){if(!Oy.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=Oy.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!Oy.isUndefined(t[e])}))).metaTokens,i=n.visitor||c,a=n.dots,o=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&Oy.isSpecCompliantForm(t);if(!Oy.isFunction(i))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(Oy.isDate(e))return e.toISOString();if(!s&&Oy.isBlob(e))throw new ky("Blob is not supported. Use a Buffer instead.");return Oy.isArrayBuffer(e)||Oy.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,i){let s=e;if(e&&!i&&"object"==typeof e)if(Oy.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(Oy.isArray(e)&&function(e){return Oy.isArray(e)&&!e.some(xy)}(e)||(Oy.isFileList(e)||Oy.endsWith(n,"[]"))&&(s=Oy.toArray(e)))return n=Py(n),s.forEach((function(e,r){!Oy.isUndefined(e)&&null!==e&&t.append(!0===o?My([n],r,a):null===o?n:n+"[]",u(e))})),!1;return!!xy(e)||(t.append(My(i,n,a),u(e)),!1)}const l=[],d=Object.assign(By,{defaultVisitor:c,convertValue:u,isVisitable:xy});if(!Oy.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!Oy.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),Oy.forEach(n,(function(n,a){!0===(!(Oy.isUndefined(n)||null===n)&&i.call(t,n,Oy.isString(a)?a.trim():a,r,d))&&e(n,r?r.concat(a):[a])})),l.pop()}}(e),t}function Fy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Ly(e,t){this._pairs=[],e&&Dy(e,this,t)}const Uy=Ly.prototype;function qy(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function jy(e,t,n){if(!t)return e;const r=n&&n.encode||qy,i=n&&n.serialize;let a;if(a=i?i(t,n):Oy.isURLSearchParams(t)?t.toString():new Ly(t,n).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}Uy.append=function(e,t){this._pairs.push([e,t])},Uy.toString=function(e){const t=e?function(t){return e.call(this,t,Fy)}:Fy;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Gy=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){Oy.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},Hy={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},zy={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Ly,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Wy="undefined"!=typeof window&&"undefined"!=typeof document,Vy=(e=>Wy&&["ReactNative","NativeScript","NS"].indexOf(e)<0)("undefined"!=typeof navigator&&navigator.product),Ky="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts;var Xy={...Object.freeze({__proto__:null,hasBrowserEnv:Wy,hasStandardBrowserEnv:Vy,hasStandardBrowserWebWorkerEnv:Ky}),...zy};function Jy(e){function t(e,n,r,i){let a=e[i++];if("__proto__"===a)return!0;const o=Number.isFinite(+a),s=i>=e.length;if(a=!a&&Oy.isArray(r)?r.length:a,s)return Oy.hasOwnProp(r,a)?r[a]=[r[a],n]:r[a]=n,!o;r[a]&&Oy.isObject(r[a])||(r[a]=[]);return t(e,n,r[a],i)&&Oy.isArray(r[a])&&(r[a]=function(e){const t={},n=Object.keys(e);let r;const i=n.length;let a;for(r=0;r<i;r++)a=n[r],t[a]=e[a];return t}(r[a])),!o}if(Oy.isFormData(e)&&Oy.isFunction(e.entries)){const n={};return Oy.forEachEntry(e,((e,r)=>{t(function(e){return Oy.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const Yy={transitional:Hy,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,i=Oy.isObject(e);i&&Oy.isHTMLForm(e)&&(e=new FormData(e));if(Oy.isFormData(e))return r&&r?JSON.stringify(Jy(e)):e;if(Oy.isArrayBuffer(e)||Oy.isBuffer(e)||Oy.isStream(e)||Oy.isFile(e)||Oy.isBlob(e))return e;if(Oy.isArrayBufferView(e))return e.buffer;if(Oy.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Dy(e,new Xy.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return Xy.isNode&&Oy.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((a=Oy.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return Dy(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||r?(t.setContentType("application/json",!1),function(e,t,n){if(Oy.isString(e))try{return(t||JSON.parse)(e),Oy.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Yy.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&Oy.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw ky.from(e,ky.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Xy.classes.FormData,Blob:Xy.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Oy.forEach(["delete","get","head","post","put","patch"],(e=>{Yy.headers[e]={}}));var Qy=Yy;const $y=Oy.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Zy=Symbol("internals");function eg(e){return e&&String(e).trim().toLowerCase()}function tg(e){return!1===e||null==e?e:Oy.isArray(e)?e.map(tg):String(e)}function ng(e,t,n,r,i){return Oy.isFunction(r)?r.call(this,t,n):(i&&(t=n),Oy.isString(t)?Oy.isString(r)?-1!==t.indexOf(r):Oy.isRegExp(r)?r.test(t):void 0:void 0)}class rg{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function i(e,t,n){const i=eg(t);if(!i)throw new Error("header name must be a non-empty string");const a=Oy.findKey(r,i);(!a||void 0===r[a]||!0===n||void 0===n&&!1!==r[a])&&(r[a||t]=tg(e))}const a=(e,t)=>Oy.forEach(e,((e,n)=>i(e,n,t)));return Oy.isPlainObject(e)||e instanceof this.constructor?a(e,t):Oy.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?a((e=>{const t={};let n,r,i;return e&&e.split("\n").forEach((function(e){i=e.indexOf(":"),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!n||t[n]&&$y[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&i(t,e,n),this}get(e,t){if(e=eg(e)){const n=Oy.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(Oy.isFunction(t))return t.call(this,e,n);if(Oy.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=eg(e)){const n=Oy.findKey(this,e);return!(!n||void 0===this[n]||t&&!ng(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function i(e){if(e=eg(e)){const i=Oy.findKey(n,e);!i||t&&!ng(0,n[i],i,t)||(delete n[i],r=!0)}}return Oy.isArray(e)?e.forEach(i):i(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const i=t[n];e&&!ng(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}normalize(e){const t=this,n={};return Oy.forEach(this,((r,i)=>{const a=Oy.findKey(n,i);if(a)return t[a]=tg(r),void delete t[i];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(i):String(i).trim();o!==i&&delete t[i],t[o]=tg(r),n[o]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return Oy.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&Oy.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[Zy]=this[Zy]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=eg(e);t[r]||(!function(e,t){const n=Oy.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})}))}(n,e),t[r]=!0)}return Oy.isArray(e)?e.forEach(r):r(e),this}}rg.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Oy.reduceDescriptors(rg.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),Oy.freezeMethods(rg);var ig=rg;function ag(e,t){const n=this||Qy,r=t||n,i=ig.from(r.headers);let a=r.data;return Oy.forEach(e,(function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)})),i.normalize(),a}function og(e){return!(!e||!e.__CANCEL__)}function sg(e,t,n){ky.call(this,null==e?"canceled":e,ky.ERR_CANCELED,t,n),this.name="CanceledError"}Oy.inherits(sg,ky,{__CANCEL__:!0});var ug=Xy.hasStandardBrowserEnv?{write(e,t,n,r,i,a){const o=[e+"="+encodeURIComponent(t)];Oy.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),Oy.isString(r)&&o.push("path="+r),Oy.isString(i)&&o.push("domain="+i),!0===a&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function cg(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var lg=Xy.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=Oy.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};function dg(e,t){let n=0;const r=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i,a=0,o=0;return t=void 0!==t?t:1e3,function(s){const u=Date.now(),c=r[o];i||(i=u),n[a]=s,r[a]=u;let l=o,d=0;for(;l!==a;)d+=n[l++],l%=e;if(a=(a+1)%e,a===o&&(o=(o+1)%e),u-i<t)return;const f=c&&u-c;return f?Math.round(1e3*d/f):void 0}}(50,250);return i=>{const a=i.loaded,o=i.lengthComputable?i.total:void 0,s=a-n,u=r(s);n=a;const c={loaded:a,total:o,progress:o?a/o:void 0,bytes:s,rate:u||void 0,estimated:u&&o&&a<=o?(o-a)/u:void 0,event:i};c[t?"download":"upload"]=!0,e(c)}}var fg="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let r=e.data;const i=ig.from(e.headers).normalize();let a,o,{responseType:s,withXSRFToken:u}=e;function c(){e.cancelToken&&e.cancelToken.unsubscribe(a),e.signal&&e.signal.removeEventListener("abort",a)}if(Oy.isFormData(r))if(Xy.hasStandardBrowserEnv||Xy.hasStandardBrowserWebWorkerEnv)i.setContentType(!1);else if(!1!==(o=i.getContentType())){const[e,...t]=o?o.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}let l=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(t+":"+n))}const d=cg(e.baseURL,e.url);function f(){if(!l)return;const r=ig.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new ky("Request failed with status code "+n.status,[ky.ERR_BAD_REQUEST,ky.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),c()}),(function(e){n(e),c()}),{data:s&&"text"!==s&&"json"!==s?l.response:l.responseText,status:l.status,statusText:l.statusText,headers:r,config:e,request:l}),l=null}if(l.open(e.method.toUpperCase(),jy(d,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,"onloadend"in l?l.onloadend=f:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(f)},l.onabort=function(){l&&(n(new ky("Request aborted",ky.ECONNABORTED,e,l)),l=null)},l.onerror=function(){n(new ky("Network Error",ky.ERR_NETWORK,e,l)),l=null},l.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||Hy;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new ky(t,r.clarifyTimeoutError?ky.ETIMEDOUT:ky.ECONNABORTED,e,l)),l=null},Xy.hasStandardBrowserEnv&&(u&&Oy.isFunction(u)&&(u=u(e)),u||!1!==u&&lg(d))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&ug.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===r&&i.setContentType(null),"setRequestHeader"in l&&Oy.forEach(i.toJSON(),(function(e,t){l.setRequestHeader(t,e)})),Oy.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),s&&"json"!==s&&(l.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",dg(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",dg(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=t=>{l&&(n(!t||t.type?new sg(null,e,l):t),l.abort(),l=null)},e.cancelToken&&e.cancelToken.subscribe(a),e.signal&&(e.signal.aborted?a():e.signal.addEventListener("abort",a)));const p=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(d);p&&-1===Xy.protocols.indexOf(p)?n(new ky("Unsupported protocol "+p+":",ky.ERR_BAD_REQUEST,e)):l.send(r||null)}))};const pg={http:null,xhr:fg};Oy.forEach(pg,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const hg=e=>`- ${e}`,mg=e=>Oy.isFunction(e)||null===e||!1===e;var yg=e=>{e=Oy.isArray(e)?e:[e];const{length:t}=e;let n,r;const i={};for(let a=0;a<t;a++){let t;if(n=e[a],r=n,!mg(n)&&(r=pg[(t=String(n)).toLowerCase()],void 0===r))throw new ky(`Unknown adapter '${t}'`);if(r)break;i[t||"#"+a]=r}if(!r){const e=Object.entries(i).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new ky("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(hg).join("\n"):" "+hg(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function gg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new sg(null,e)}function bg(e){gg(e),e.headers=ig.from(e.headers),e.data=ag.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return yg(e.adapter||Qy.adapter)(e).then((function(t){return gg(e),t.data=ag.call(e,e.transformResponse,t),t.headers=ig.from(t.headers),t}),(function(t){return og(t)||(gg(e),t&&t.response&&(t.response.data=ag.call(e,e.transformResponse,t.response),t.response.headers=ig.from(t.response.headers))),Promise.reject(t)}))}const vg=e=>e instanceof ig?e.toJSON():e;function Tg(e,t){t=t||{};const n={};function r(e,t,n){return Oy.isPlainObject(e)&&Oy.isPlainObject(t)?Oy.merge.call({caseless:n},e,t):Oy.isPlainObject(t)?Oy.merge({},t):Oy.isArray(t)?t.slice():t}function i(e,t,n){return Oy.isUndefined(t)?Oy.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function a(e,t){if(!Oy.isUndefined(t))return r(void 0,t)}function o(e,t){return Oy.isUndefined(t)?Oy.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,i,a){return a in t?r(n,i):a in e?r(void 0,n):void 0}const u={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(e,t)=>i(vg(e),vg(t),!0)};return Oy.forEach(Object.keys(Object.assign({},e,t)),(function(r){const a=u[r]||i,o=a(e[r],t[r],r);Oy.isUndefined(o)&&a!==s||(n[r]=o)})),n}const wg="1.6.5",Ag={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Ag[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const Eg={};Ag.transitional=function(e,t,n){function r(e,t){return"[Axios v1.6.5] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,i,a)=>{if(!1===e)throw new ky(r(i," has been removed"+(t?" in "+t:"")),ky.ERR_DEPRECATED);return t&&!Eg[i]&&(Eg[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,a)}};var _g={assertOptions:function(e,t,n){if("object"!=typeof e)throw new ky("options must be an object",ky.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const a=r[i],o=t[a];if(o){const t=e[a],n=void 0===t||o(t,a,e);if(!0!==n)throw new ky("option "+a+" must be "+n,ky.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new ky("Unknown option "+a,ky.ERR_BAD_OPTION)}},validators:Ag};const Ig=_g.validators;class Rg{constructor(e){this.defaults=e,this.interceptors={request:new Gy,response:new Gy}}request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Tg(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:i}=t;void 0!==n&&_g.assertOptions(n,{silentJSONParsing:Ig.transitional(Ig.boolean),forcedJSONParsing:Ig.transitional(Ig.boolean),clarifyTimeoutError:Ig.transitional(Ig.boolean)},!1),null!=r&&(Oy.isFunction(r)?t.paramsSerializer={serialize:r}:_g.assertOptions(r,{encode:Ig.function,serialize:Ig.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let a=i&&Oy.merge(i.common,i[t.method]);i&&Oy.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete i[e]})),t.headers=ig.concat(a,i);const o=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,o.unshift(e.fulfilled,e.rejected))}));const u=[];let c;this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)}));let l,d=0;if(!s){const e=[bg.bind(this),void 0];for(e.unshift.apply(e,o),e.push.apply(e,u),l=e.length,c=Promise.resolve(t);d<l;)c=c.then(e[d++],e[d++]);return c}l=o.length;let f=t;for(d=0;d<l;){const e=o[d++],t=o[d++];try{f=e(f)}catch(e){t.call(this,e);break}}try{c=bg.call(this,f)}catch(e){return Promise.reject(e)}for(d=0,l=u.length;d<l;)c=c.then(u[d++],u[d++]);return c}getUri(e){return jy(cg((e=Tg(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}Oy.forEach(["delete","get","head","options"],(function(e){Rg.prototype[e]=function(t,n){return this.request(Tg(n||{},{method:e,url:t,data:(n||{}).data}))}})),Oy.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,i){return this.request(Tg(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Rg.prototype[e]=t(),Rg.prototype[e+"Form"]=t(!0)}));var Cg=Rg;class Og{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,i){n.reason||(n.reason=new sg(e,r,i),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Og((function(t){e=t})),cancel:e}}}var kg=Og;const Sg={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Sg).forEach((([e,t])=>{Sg[t]=e}));var Ng=Sg;const xg=function e(t){const n=new Cg(t),r=Ym(Cg.prototype.request,n);return Oy.extend(r,Cg.prototype,n,{allOwnKeys:!0}),Oy.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Tg(t,n))},r}(Qy);xg.Axios=Cg,xg.CanceledError=sg,xg.CancelToken=kg,xg.isCancel=og,xg.VERSION=wg,xg.toFormData=Dy,xg.AxiosError=ky,xg.Cancel=xg.CanceledError,xg.all=function(e){return Promise.all(e)},xg.spread=function(e){return function(t){return e.apply(null,t)}},xg.isAxiosError=function(e){return Oy.isObject(e)&&!0===e.isAxiosError},xg.mergeConfig=Tg,xg.AxiosHeaders=ig,xg.formToJSON=e=>Jy(Oy.isHTMLForm(e)?new FormData(e):e),xg.getAdapter=yg,xg.HttpStatusCode=Ng,xg.default=xg;var Pg=xg,Mg="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Bg(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Dg(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var n=function e(){if(this instanceof e){var n=[null];return n.push.apply(n,arguments),new(Function.bind.apply(t,n))}return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})})),n}var Fg={exports:{}},Lg=Dg(Object.freeze({__proto__:null,default:{}}));!function(e){!function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function r(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:Lg.Buffer}catch(e){}function o(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function s(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function u(e,t,r,i){for(var a=0,o=0,s=Math.min(e.length,r),u=t;u<s;u++){var c=e.charCodeAt(u)-48;a*=i,o=c>=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&o<i,"Invalid character"),a+=o}return a}function c(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),"le"===r&&this._initArray(this.toArray(),t,r)))},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if("be"===r)for(i=e.length-1,a=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,a=0,o=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,o=a%r,s=Math.min(a,a-o)+n,c=0,l=n;l<s;l+=r)c=u(e,l,l+r,t),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var d=1;for(c=u(e,l,e.length,t),l=0;l<o;l++)d*=t;this.imuln(d),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){c(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){i.prototype.inspect=l}else i.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],u=(16777215&(s<<i|a)).toString(16);a=s>>>24-i&16777215,(i+=2)>=26&&(i-=26,o--),r=0!==a||o!==this.length-1?d[6-u.length]+u+r:u+r}for(0!==a&&(r=a.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=f[e],l=p[e];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var m=h.modrn(l).toString(e);r=(h=h.idivn(l)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},a&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(a,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function h(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],o=i*a,s=67108863&o,u=o/67108864|0;n.words[0]=s;for(var c=1;c<r;c++){for(var l=u>>>26,d=67108863&u,f=Math.min(c,t.length-1),p=Math.max(0,c-e.length+1);p<=f;p++){var h=c-p|0;l+=(o=(i=0|e.words[h])*(a=0|t.words[p])+d)/67108864|0,d=67108863&o}n.words[c]=0|d,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n._strip()}i.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](o,i),o},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n++]=255&o,n<e.length&&(e[n++]=o>>8&255),n<e.length&&(e[n++]=o>>16&255),6===a?(n<e.length&&(e[n++]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n<e.length)for(e[n++]=r;n<e.length;)e[n++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var n=e.length-1,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n--]=255&o,n>=0&&(e[n--]=o>>8&255),n>=0&&(e[n--]=o>>16&255),6===a?(n>=0&&(e[n--]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a<r.length;a++)t=(0|n.words[a])+(0|r.words[a])+i,this.words[a]=67108863&t,i=t>>>26;for(;0!==i&&a<n.length;a++)t=(0|n.words[a])+i,this.words[a]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,o=0;o<r.length;o++)a=(t=(0|n.words[o])-(0|r.words[o])+a)>>26,this.words[o]=67108863&t;for(;0!==a&&o<n.length;o++)a=(t=(0|n.words[o])+a)>>26,this.words[o]=67108863&t;if(0===a&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,n){var r,i,a,o=e.words,s=t.words,u=n.words,c=0,l=0|o[0],d=8191&l,f=l>>>13,p=0|o[1],h=8191&p,m=p>>>13,y=0|o[2],g=8191&y,b=y>>>13,v=0|o[3],T=8191&v,w=v>>>13,A=0|o[4],E=8191&A,_=A>>>13,I=0|o[5],R=8191&I,C=I>>>13,O=0|o[6],k=8191&O,S=O>>>13,N=0|o[7],x=8191&N,P=N>>>13,M=0|o[8],B=8191&M,D=M>>>13,F=0|o[9],L=8191&F,U=F>>>13,q=0|s[0],j=8191&q,G=q>>>13,H=0|s[1],z=8191&H,W=H>>>13,V=0|s[2],K=8191&V,X=V>>>13,J=0|s[3],Y=8191&J,Q=J>>>13,$=0|s[4],Z=8191&$,ee=$>>>13,te=0|s[5],ne=8191&te,re=te>>>13,ie=0|s[6],ae=8191&ie,oe=ie>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,pe=0|s[9],he=8191&pe,me=pe>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(d,j))|0)+((8191&(i=(i=Math.imul(d,G))+Math.imul(f,j)|0))<<13)|0;c=((a=Math.imul(f,G))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(h,j),i=(i=Math.imul(h,G))+Math.imul(m,j)|0,a=Math.imul(m,G);var ge=(c+(r=r+Math.imul(d,z)|0)|0)+((8191&(i=(i=i+Math.imul(d,W)|0)+Math.imul(f,z)|0))<<13)|0;c=((a=a+Math.imul(f,W)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(g,j),i=(i=Math.imul(g,G))+Math.imul(b,j)|0,a=Math.imul(b,G),r=r+Math.imul(h,z)|0,i=(i=i+Math.imul(h,W)|0)+Math.imul(m,z)|0,a=a+Math.imul(m,W)|0;var be=(c+(r=r+Math.imul(d,K)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(f,K)|0))<<13)|0;c=((a=a+Math.imul(f,X)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(T,j),i=(i=Math.imul(T,G))+Math.imul(w,j)|0,a=Math.imul(w,G),r=r+Math.imul(g,z)|0,i=(i=i+Math.imul(g,W)|0)+Math.imul(b,z)|0,a=a+Math.imul(b,W)|0,r=r+Math.imul(h,K)|0,i=(i=i+Math.imul(h,X)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,X)|0;var ve=(c+(r=r+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,Q)|0)+Math.imul(f,Y)|0))<<13)|0;c=((a=a+Math.imul(f,Q)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,j),i=(i=Math.imul(E,G))+Math.imul(_,j)|0,a=Math.imul(_,G),r=r+Math.imul(T,z)|0,i=(i=i+Math.imul(T,W)|0)+Math.imul(w,z)|0,a=a+Math.imul(w,W)|0,r=r+Math.imul(g,K)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,K)|0,a=a+Math.imul(b,X)|0,r=r+Math.imul(h,Y)|0,i=(i=i+Math.imul(h,Q)|0)+Math.imul(m,Y)|0,a=a+Math.imul(m,Q)|0;var Te=(c+(r=r+Math.imul(d,Z)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;c=((a=a+Math.imul(f,ee)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(R,j),i=(i=Math.imul(R,G))+Math.imul(C,j)|0,a=Math.imul(C,G),r=r+Math.imul(E,z)|0,i=(i=i+Math.imul(E,W)|0)+Math.imul(_,z)|0,a=a+Math.imul(_,W)|0,r=r+Math.imul(T,K)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(w,K)|0,a=a+Math.imul(w,X)|0,r=r+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(b,Y)|0,a=a+Math.imul(b,Q)|0,r=r+Math.imul(h,Z)|0,i=(i=i+Math.imul(h,ee)|0)+Math.imul(m,Z)|0,a=a+Math.imul(m,ee)|0;var we=(c+(r=r+Math.imul(d,ne)|0)|0)+((8191&(i=(i=i+Math.imul(d,re)|0)+Math.imul(f,ne)|0))<<13)|0;c=((a=a+Math.imul(f,re)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(k,j),i=(i=Math.imul(k,G))+Math.imul(S,j)|0,a=Math.imul(S,G),r=r+Math.imul(R,z)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(C,z)|0,a=a+Math.imul(C,W)|0,r=r+Math.imul(E,K)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,X)|0,r=r+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,Q)|0)+Math.imul(w,Y)|0,a=a+Math.imul(w,Q)|0,r=r+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,a=a+Math.imul(b,ee)|0,r=r+Math.imul(h,ne)|0,i=(i=i+Math.imul(h,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Ae=(c+(r=r+Math.imul(d,ae)|0)|0)+((8191&(i=(i=i+Math.imul(d,oe)|0)+Math.imul(f,ae)|0))<<13)|0;c=((a=a+Math.imul(f,oe)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(x,j),i=(i=Math.imul(x,G))+Math.imul(P,j)|0,a=Math.imul(P,G),r=r+Math.imul(k,z)|0,i=(i=i+Math.imul(k,W)|0)+Math.imul(S,z)|0,a=a+Math.imul(S,W)|0,r=r+Math.imul(R,K)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(C,K)|0,a=a+Math.imul(C,X)|0,r=r+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,Q)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,Q)|0,r=r+Math.imul(T,Z)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(w,Z)|0,a=a+Math.imul(w,ee)|0,r=r+Math.imul(g,ne)|0,i=(i=i+Math.imul(g,re)|0)+Math.imul(b,ne)|0,a=a+Math.imul(b,re)|0,r=r+Math.imul(h,ae)|0,i=(i=i+Math.imul(h,oe)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,oe)|0;var Ee=(c+(r=r+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((a=a+Math.imul(f,ce)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,j),i=(i=Math.imul(B,G))+Math.imul(D,j)|0,a=Math.imul(D,G),r=r+Math.imul(x,z)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(P,z)|0,a=a+Math.imul(P,W)|0,r=r+Math.imul(k,K)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(S,K)|0,a=a+Math.imul(S,X)|0,r=r+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,Q)|0)+Math.imul(C,Y)|0,a=a+Math.imul(C,Q)|0,r=r+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(_,Z)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(w,ne)|0,a=a+Math.imul(w,re)|0,r=r+Math.imul(g,ae)|0,i=(i=i+Math.imul(g,oe)|0)+Math.imul(b,ae)|0,a=a+Math.imul(b,oe)|0,r=r+Math.imul(h,ue)|0,i=(i=i+Math.imul(h,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var _e=(c+(r=r+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;c=((a=a+Math.imul(f,fe)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(L,j),i=(i=Math.imul(L,G))+Math.imul(U,j)|0,a=Math.imul(U,G),r=r+Math.imul(B,z)|0,i=(i=i+Math.imul(B,W)|0)+Math.imul(D,z)|0,a=a+Math.imul(D,W)|0,r=r+Math.imul(x,K)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(P,K)|0,a=a+Math.imul(P,X)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,Q)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,Q)|0,r=r+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(C,Z)|0,a=a+Math.imul(C,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(T,ae)|0,i=(i=i+Math.imul(T,oe)|0)+Math.imul(w,ae)|0,a=a+Math.imul(w,oe)|0,r=r+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,ce)|0)+Math.imul(b,ue)|0,a=a+Math.imul(b,ce)|0,r=r+Math.imul(h,de)|0,i=(i=i+Math.imul(h,fe)|0)+Math.imul(m,de)|0,a=a+Math.imul(m,fe)|0;var Ie=(c+(r=r+Math.imul(d,he)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(f,he)|0))<<13)|0;c=((a=a+Math.imul(f,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,z),i=(i=Math.imul(L,W))+Math.imul(U,z)|0,a=Math.imul(U,W),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,K)|0,a=a+Math.imul(D,X)|0,r=r+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(P,Y)|0,a=a+Math.imul(P,Q)|0,r=r+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(S,Z)|0,a=a+Math.imul(S,ee)|0,r=r+Math.imul(R,ne)|0,i=(i=i+Math.imul(R,re)|0)+Math.imul(C,ne)|0,a=a+Math.imul(C,re)|0,r=r+Math.imul(E,ae)|0,i=(i=i+Math.imul(E,oe)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,oe)|0,r=r+Math.imul(T,ue)|0,i=(i=i+Math.imul(T,ce)|0)+Math.imul(w,ue)|0,a=a+Math.imul(w,ce)|0,r=r+Math.imul(g,de)|0,i=(i=i+Math.imul(g,fe)|0)+Math.imul(b,de)|0,a=a+Math.imul(b,fe)|0;var Re=(c+(r=r+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,me)|0)+Math.imul(m,he)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(L,K),i=(i=Math.imul(L,X))+Math.imul(U,K)|0,a=Math.imul(U,X),r=r+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,Q)|0)+Math.imul(D,Y)|0,a=a+Math.imul(D,Q)|0,r=r+Math.imul(x,Z)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(P,Z)|0,a=a+Math.imul(P,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(S,ne)|0,a=a+Math.imul(S,re)|0,r=r+Math.imul(R,ae)|0,i=(i=i+Math.imul(R,oe)|0)+Math.imul(C,ae)|0,a=a+Math.imul(C,oe)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(T,de)|0,i=(i=i+Math.imul(T,fe)|0)+Math.imul(w,de)|0,a=a+Math.imul(w,fe)|0;var Ce=(c+(r=r+Math.imul(g,he)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,he)|0))<<13)|0;c=((a=a+Math.imul(b,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(L,Y),i=(i=Math.imul(L,Q))+Math.imul(U,Y)|0,a=Math.imul(U,Q),r=r+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,a=a+Math.imul(D,ee)|0,r=r+Math.imul(x,ne)|0,i=(i=i+Math.imul(x,re)|0)+Math.imul(P,ne)|0,a=a+Math.imul(P,re)|0,r=r+Math.imul(k,ae)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(S,ae)|0,a=a+Math.imul(S,oe)|0,r=r+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,ce)|0)+Math.imul(C,ue)|0,a=a+Math.imul(C,ce)|0,r=r+Math.imul(E,de)|0,i=(i=i+Math.imul(E,fe)|0)+Math.imul(_,de)|0,a=a+Math.imul(_,fe)|0;var Oe=(c+(r=r+Math.imul(T,he)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(w,he)|0))<<13)|0;c=((a=a+Math.imul(w,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(L,Z),i=(i=Math.imul(L,ee))+Math.imul(U,Z)|0,a=Math.imul(U,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(D,ne)|0,a=a+Math.imul(D,re)|0,r=r+Math.imul(x,ae)|0,i=(i=i+Math.imul(x,oe)|0)+Math.imul(P,ae)|0,a=a+Math.imul(P,oe)|0,r=r+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,ce)|0)+Math.imul(S,ue)|0,a=a+Math.imul(S,ce)|0,r=r+Math.imul(R,de)|0,i=(i=i+Math.imul(R,fe)|0)+Math.imul(C,de)|0,a=a+Math.imul(C,fe)|0;var ke=(c+(r=r+Math.imul(E,he)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(_,he)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(L,ne),i=(i=Math.imul(L,re))+Math.imul(U,ne)|0,a=Math.imul(U,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,oe)|0)+Math.imul(D,ae)|0,a=a+Math.imul(D,oe)|0,r=r+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,ce)|0)+Math.imul(P,ue)|0,a=a+Math.imul(P,ce)|0,r=r+Math.imul(k,de)|0,i=(i=i+Math.imul(k,fe)|0)+Math.imul(S,de)|0,a=a+Math.imul(S,fe)|0;var Se=(c+(r=r+Math.imul(R,he)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(C,he)|0))<<13)|0;c=((a=a+Math.imul(C,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(L,ae),i=(i=Math.imul(L,oe))+Math.imul(U,ae)|0,a=Math.imul(U,oe),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(D,ue)|0,a=a+Math.imul(D,ce)|0,r=r+Math.imul(x,de)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(P,de)|0,a=a+Math.imul(P,fe)|0;var Ne=(c+(r=r+Math.imul(k,he)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(S,he)|0))<<13)|0;c=((a=a+Math.imul(S,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,ue),i=(i=Math.imul(L,ce))+Math.imul(U,ue)|0,a=Math.imul(U,ce),r=r+Math.imul(B,de)|0,i=(i=i+Math.imul(B,fe)|0)+Math.imul(D,de)|0,a=a+Math.imul(D,fe)|0;var xe=(c+(r=r+Math.imul(x,he)|0)|0)+((8191&(i=(i=i+Math.imul(x,me)|0)+Math.imul(P,he)|0))<<13)|0;c=((a=a+Math.imul(P,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,de),i=(i=Math.imul(L,fe))+Math.imul(U,de)|0,a=Math.imul(U,fe);var Pe=(c+(r=r+Math.imul(B,he)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,he)|0))<<13)|0;c=((a=a+Math.imul(D,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(c+(r=Math.imul(L,he))|0)+((8191&(i=(i=Math.imul(L,me))+Math.imul(U,he)|0))<<13)|0;return c=((a=Math.imul(U,me))+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=Te,u[5]=we,u[6]=Ae,u[7]=Ee,u[8]=_e,u[9]=Ie,u[10]=Re,u[11]=Ce,u[12]=Oe,u[13]=ke,u[14]=Se,u[15]=Ne,u[16]=xe,u[17]=Pe,u[18]=Me,0!==c&&(u[19]=c,n.length++),n};function y(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a<n.length-1;a++){var o=i;i=0;for(var s=67108863&r,u=Math.min(a,t.length-1),c=Math.max(0,a-e.length+1);c<=u;c++){var l=a-c,d=(0|e.words[l])*(0|t.words[c]),f=67108863&d;s=67108863&(f=f+s|0),i+=(o=(o=o+(d/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}n.words[a]=s,r=o,o=i}return 0!==r?n.words[a]=r:n.length--,n._strip()}function g(e,t,n){return y(e,t,n)}Math.imul||(m=h),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?h(this,e,t):n<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),n("number"==typeof e),n(e<67108864);for(var r=0,i=0;i<this.length;i++){var a=(0|this.words[i])*e,o=(67108863&a)+(67108863&r);r>>=26,r+=a/67108864|0,r+=o>>>26,this.words[i]=67108863&o}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=e.words[r]>>>i&1}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var a=n.sqr();r<t.length;r++,a=a.sqr())0!==t[r]&&(n=n.mul(a));return n},i.prototype.iushln=function(e){n("number"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t<this.length;t++){var s=this.words[t]&a,u=(0|this.words[t])-s<<r;this.words[t]=u|o,o=s>>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,r){var i;n("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,u=r;if(i-=o,i=Math.max(0,i),u){for(var c=0;c<o;c++)u.words[c]=this.words[c];u.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var l=0;for(c=this.length-1;c>=0&&(0!==l||c>=i);c--){var d=0|this.words[c];this.words[c]=l<<26-a|d>>>a,l=d&s}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<<t;return!(this.length<=r)&&!!(this.words[r]&i)},i.prototype.imaskn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this._strip()},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return n("number"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,r){var i,a,o=e.length+r;this._expand(o);var s=0;for(i=0;i<e.length;i++){a=(0|this.words[i+r])+s;var u=(0|e.words[i])*t;s=((a-=67108863&u)>>26)-(u/67108864|0),this.words[i+r]=67108863&a}for(;i<this.length-r;i++)s=(a=(0|this.words[i+r])+s)>>26,this.words[i+r]=67108863&a;if(0===s)return this._strip();for(n(-1===s),s=0,i=0;i<this.length;i++)s=(a=-(0|this.words[i])+s)>>26,this.words[i]=67108863&a;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),a=e,o=0|a.words[a.length-1];0!==(n=26-this._countBits(o))&&(a=a.ushln(n),r.iushln(n),o=0|a.words[a.length-1]);var s,u=r.length-a.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var l=r.clone()._ishlnsubmul(a,1,u);0===l.negative&&(r=l,s&&(s.words[u]=1));for(var d=u-1;d>=0;d--){var f=67108864*(0|r.words[a.length+d])+(0|r.words[a.length+d-1]);for(f=Math.min(f/o|0,67108863),r._ishlnsubmul(a,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(a,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(a=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:a,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(a=s.div.neg()),{div:a,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var a,o,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,a=this.length-1;a>=0;a--)i=(r*i+(0|this.words[a]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var a=(0|this.words[i])+67108864*r;this.words[i]=a/e|0,r=a%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a=new i(1),o=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var l=r.clone(),d=t.clone();!t.isZero();){for(var f=0,p=1;0==(t.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(a.isOdd()||o.isOdd())&&(a.iadd(l),o.isub(d)),a.iushrn(1),o.iushrn(1);for(var h=0,m=1;0==(r.words[0]&m)&&h<26;++h,m<<=1);if(h>0)for(r.iushrn(h);h-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(l),u.isub(d)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s),o.isub(u)):(r.isub(t),s.isub(a),u.isub(o))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a,o=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,l=1;0==(t.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var d=0,f=1;0==(r.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(r.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(a=0===t.cmpn(1)?o:s).cmpn(0)<0&&a.iadd(e),a},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var a=i,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new _(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function T(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function _(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){_.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},r(T,v),T.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var a=e.words[9];for(t.words[t.length++]=a&n,i=10;i<e.length;i++){var o=0|e.words[i];e.words[i-10]=(o&n)<<4|a>>>22,a=o}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},T.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},r(w,v),r(A,v),r(E,v),E.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new T;else if("p224"===e)t=new w;else if("p192"===e)t=new A;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},_.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},_.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},_.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(c(e,e.umod(this.m)._forceRed(this)),e)},_.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},_.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},_.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},_.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},_.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},_.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},_.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},_.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},_.prototype.isqr=function(e){return this.imul(e,e.clone())},_.prototype.sqr=function(e){return this.mul(e,e)},_.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var a=this.m.subn(1),o=0;!a.isZero()&&0===a.andln(1);)o++,a.iushrn(1);n(!a.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new i(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var d=this.pow(l,a),f=this.pow(e,a.addn(1).iushrn(1)),p=this.pow(e,a),h=o;0!==p.cmp(s);){for(var m=p,y=0;0!==m.cmp(s);y++)m=m.redSqr();n(y<h);var g=this.pow(d,new i(1).iushln(h-y-1));f=f.redMul(g),d=g.redSqr(),p=p.redMul(d),h=y}return f},_.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},_.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new i(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var a=n[0],o=0,s=0,u=t.bitLength()%26;for(0===u&&(u=26),r=t.length-1;r>=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var d=c>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==d||0!==o?(o<<=1,o|=d,(4===++s||0===r&&0===l)&&(a=this.mul(a,n[o]),s=0,o=0)):s=0}u=26}return a},_.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},_.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},r(I,_),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=n.isub(r).iushrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,Mg)}(Fg);var Ug=Bg(Fg.exports);let qg=!1,jg=!1;const Gg={debug:1,default:2,info:2,warning:3,error:4,off:5};let Hg=Gg.default,zg=null;const Wg=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(n){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var Vg,Kg;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(Vg||(Vg={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(Kg||(Kg={}));const Xg="0123456789abcdef";let Jg=class e{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==Gg[n]&&this.throwArgumentError("invalid log level name","logLevel",e),Hg>Gg[n]||console.log.apply(console,t)}debug(...t){this._log(e.levels.DEBUG,t)}info(...t){this._log(e.levels.INFO,t)}warn(...t){this._log(e.levels.WARNING,t)}makeError(t,n,r){if(jg)return this.makeError("censored error",n,{});n||(n=e.errors.UNKNOWN_ERROR),r||(r={});const i=[];Object.keys(r).forEach((e=>{const t=r[e];try{if(t instanceof Uint8Array){let n="";for(let e=0;e<t.length;e++)n+=Xg[t[e]>>4],n+=Xg[15&t[e]];i.push(e+"=Uint8Array(0x"+n+")")}else i.push(e+"="+JSON.stringify(t))}catch(t){i.push(e+"="+JSON.stringify(r[e].toString()))}})),i.push(`code=${n}`),i.push(`version=${this.version}`);const a=t;let o="";switch(n){case Kg.NUMERIC_FAULT:{o="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":o+="-"+e;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case Kg.CALL_EXCEPTION:case Kg.INSUFFICIENT_FUNDS:case Kg.MISSING_NEW:case Kg.NONCE_EXPIRED:case Kg.REPLACEMENT_UNDERPRICED:case Kg.TRANSACTION_REPLACED:case Kg.UNPREDICTABLE_GAS_LIMIT:o=n}o&&(t+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),i.length&&(t+=" ("+i.join(", ")+")");const s=new Error(t);return s.reason=a,s.code=n,Object.keys(r).forEach((function(e){s[e]=r[e]})),s}throwError(e,t,n){throw this.makeError(e,t,n)}throwArgumentError(t,n,r){return this.throwError(t,e.errors.INVALID_ARGUMENT,{argument:n,value:r})}assert(e,t,n,r){e||this.throwError(t,n,r)}assertArgument(e,t,n,r){e||this.throwArgumentError(t,n,r)}checkNormalize(t){Wg&&this.throwError("platform missing String.prototype.normalize",e.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Wg})}checkSafeUint53(t,n){"number"==typeof t&&(null==n&&(n="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,n,r){r=r?": "+r:"",t<n&&this.throwError("missing argument"+r,e.errors.MISSING_ARGUMENT,{count:t,expectedCount:n}),t>n&&this.throwError("too many arguments"+r,e.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:n})}checkNew(t,n){t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}checkAbstract(t,n){t===n?this.throwError("cannot instantiate abstract class "+JSON.stringify(n.name)+" directly; use a sub-class",e.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}static globalLogger(){return zg||(zg=new e("logger/5.7.0")),zg}static setCensorship(t,n){if(!t&&n&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),qg){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}jg=!!t,qg=!!n}static setLogLevel(t){const n=Gg[t.toLowerCase()];null!=n?Hg=n:e.globalLogger().warn("invalid log level - "+t)}static from(t){return new e(t)}};Jg.errors=Kg,Jg.levels=Vg;const Yg=new Jg("bytes/5.7.0");function Qg(e){return!!e.toHexString}function $g(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return $g(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Zg(e){return"number"==typeof e&&e==e&&e%1==0}function eb(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Zg(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!Zg(n)||n<0||n>=256)return!1}return!0}function tb(e,t){if(t||(t={}),"number"==typeof e){Yg.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),$g(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Qg(e)&&(e=e.toHexString()),rb(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":Yg.throwArgumentError("hex data is odd-length","value",e));const r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(n.substring(e,e+2),16));return $g(new Uint8Array(r))}return eb(e)?$g(new Uint8Array(e)):Yg.throwArgumentError("invalid arrayify value","value",e)}function nb(e){const t=e.map((e=>tb(e))),n=t.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(n);return t.reduce(((e,t)=>(r.set(t,e),e+t.length)),0),$g(r)}function rb(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}const ib="0123456789abcdef";function ab(e,t){if(t||(t={}),"number"==typeof e){Yg.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=ib[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Qg(e))return e.toHexString();if(rb(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Yg.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(eb(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=ib[(240&r)>>4]+ib[15&r]}return t}return Yg.throwArgumentError("invalid hexlify value","value",e)}function ob(e,t,n){return"string"!=typeof e?e=ab(e):(!rb(e)||e.length%2)&&Yg.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function sb(e,t){for("string"!=typeof e?e=ab(e):rb(e)||Yg.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Yg.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}var ub=Ug.BN;const cb=new Jg("bignumber/5.7.0"),lb={},db=9007199254740991;let fb=!1;class pb{constructor(e,t){e!==lb&&cb.throwError("cannot call constructor directly; use BigNumber.from",Jg.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return mb(yb(this).fromTwos(e))}toTwos(e){return mb(yb(this).toTwos(e))}abs(){return"-"===this._hex[0]?pb.from(this._hex.substring(1)):this}add(e){return mb(yb(this).add(yb(e)))}sub(e){return mb(yb(this).sub(yb(e)))}div(e){return pb.from(e).isZero()&&gb("division-by-zero","div"),mb(yb(this).div(yb(e)))}mul(e){return mb(yb(this).mul(yb(e)))}mod(e){const t=yb(e);return t.isNeg()&&gb("division-by-zero","mod"),mb(yb(this).umod(t))}pow(e){const t=yb(e);return t.isNeg()&&gb("negative-power","pow"),mb(yb(this).pow(t))}and(e){const t=yb(e);return(this.isNegative()||t.isNeg())&&gb("unbound-bitwise-result","and"),mb(yb(this).and(t))}or(e){const t=yb(e);return(this.isNegative()||t.isNeg())&&gb("unbound-bitwise-result","or"),mb(yb(this).or(t))}xor(e){const t=yb(e);return(this.isNegative()||t.isNeg())&&gb("unbound-bitwise-result","xor"),mb(yb(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&gb("negative-width","mask"),mb(yb(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&gb("negative-width","shl"),mb(yb(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&gb("negative-width","shr"),mb(yb(this).shrn(e))}eq(e){return yb(this).eq(yb(e))}lt(e){return yb(this).lt(yb(e))}lte(e){return yb(this).lte(yb(e))}gt(e){return yb(this).gt(yb(e))}gte(e){return yb(this).gte(yb(e))}isNegative(){return"-"===this._hex[0]}isZero(){return yb(this).isZero()}toNumber(){try{return yb(this).toNumber()}catch(e){gb("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return cb.throwError("this platform does not support BigInt",Jg.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?fb||(fb=!0,cb.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?cb.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",Jg.errors.UNEXPECTED_ARGUMENT,{}):cb.throwError("BigNumber.toString does not accept parameters",Jg.errors.UNEXPECTED_ARGUMENT,{})),yb(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof pb)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new pb(lb,hb(e)):e.match(/^-?[0-9]+$/)?new pb(lb,hb(new ub(e))):cb.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&gb("underflow","BigNumber.from",e),(e>=db||e<=-db)&&gb("overflow","BigNumber.from",e),pb.from(String(e));const t=e;if("bigint"==typeof t)return pb.from(t.toString());if(eb(t))return pb.from(ab(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return pb.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(rb(e)||"-"===e[0]&&rb(e.substring(1))))return pb.from(e)}return cb.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function hb(e){if("string"!=typeof e)return hb(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&cb.throwArgumentError("invalid hex","value",e),"0x00"===(e=hb(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function mb(e){return pb.from(hb(e))}function yb(e){const t=pb.from(e).toHexString();return"-"===t[0]?new ub("-"+t.substring(3),16):new ub(t.substring(2),16)}function gb(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),cb.throwError(e,Jg.errors.NUMERIC_FAULT,r)}var bb=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const vb=new Jg("properties/5.7.0");function Tb(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function wb(e,t){for(let n=0;n<32;n++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function Ab(e){return bb(this,void 0,void 0,(function*(){const t=Object.keys(e).map((t=>{const n=e[t];return Promise.resolve(n).then((e=>({key:t,value:e})))}));return(yield Promise.all(t)).reduce(((e,t)=>(e[t.key]=t.value,e)),{})}))}function Eb(e){const t={};for(const n in e)t[n]=e[n];return t}const _b={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Ib(e){if(null==e||_b[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let n=0;n<t.length;n++){let r=null;try{r=e[t[n]]}catch(e){continue}if(!Ib(r))return!1}return!0}return vb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Rb(e){if(Ib(e))return e;if(Array.isArray(e))return Object.freeze(e.map((e=>Cb(e))));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&Tb(t,n,Cb(r))}return t}return vb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Cb(e){return Rb(e)}class Ob{constructor(e){for(const t in e)this[t]=Cb(e[t])}}const kb="abi/5.7.0",Sb=new Jg(kb),Nb={};let xb={calldata:!0,memory:!0,storage:!0},Pb={calldata:!0,memory:!0};function Mb(e,t){if("bytes"===e||"string"===e){if(xb[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Pb[t])return!0;return(xb[t]||"payable"===t)&&Sb.throwArgumentError("invalid modifier","name",t),!1}function Bb(e,t){for(let n in t)Tb(e,n,t[n])}const Db=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),Fb=new RegExp(/^(.*)\[([0-9]*)\]$/);class Lb{constructor(e,t){e!==Nb&&Sb.throwError("use fromString",Jg.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),Bb(this,t);let n=this.type.match(Fb);Bb(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:Lb.fromObject({type:n[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=Db.sighash),Db[e]||Sb.throwArgumentError("invalid format type","format",e),e===Db.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map((t=>JSON.parse(t.format(e))))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==Db.sighash&&(t+=this.type),t+="("+this.components.map((t=>t.format(e))).join(e===Db.full?", ":",")+")"):t+=this.type,e!==Db.sighash&&(!0===this.indexed&&(t+=" indexed"),e===Db.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?Lb.fromString(e,t):Lb.fromObject(e)}static fromObject(e){return Lb.isParamType(e)?e:new Lb(Nb,{name:e.name||null,type:Jb(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(Lb.fromObject):null})}static fromString(e,t){return n=function(e,t){let n=e;function r(t){Sb.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let n={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(n.indexed=!1),n}e=e.replace(/\s/g," ");let a={type:"",name:"",state:{allowType:!0}},o=a;for(let n=0;n<e.length;n++){let a=e[n];switch(a){case"(":o.state.allowType&&""===o.type?o.type="tuple":o.state.allowParams||r(n),o.state.allowType=!1,o.type=Jb(o.type),o.components=[i(o)],o=o.components[0];break;case")":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),Mb(o.type,o.name)&&(o.name=""),o.type=Jb(o.type);let e=o;o=o.parent,o||r(n),delete e.parent,o.state.allowParams=!1,o.state.allowName=!0,o.state.allowArray=!0;break;case",":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),Mb(o.type,o.name)&&(o.name=""),o.type=Jb(o.type);let s=i(o.parent);o.parent.components.push(s),delete o.parent,o=s;break;case" ":o.state.allowType&&""!==o.type&&(o.type=Jb(o.type),delete o.state.allowType,o.state.allowName=!0,o.state.allowParams=!0),o.state.allowName&&""!==o.name&&("indexed"===o.name?(t||r(n),o.indexed&&r(n),o.indexed=!0,o.name=""):Mb(o.type,o.name)?o.name="":o.state.allowName=!1);break;case"[":o.state.allowArray||r(n),o.type+=a,o.state.allowArray=!1,o.state.allowName=!1,o.state.readArray=!0;break;case"]":o.state.readArray||r(n),o.type+=a,o.state.readArray=!1,o.state.allowArray=!0,o.state.allowName=!0;break;default:o.state.allowType?(o.type+=a,o.state.allowParams=!0,o.state.allowArray=!0):o.state.allowName?(o.name+=a,delete o.state.allowArray):o.state.readArray?o.type+=a:r(n)}}return o.parent&&Sb.throwArgumentError("unexpected eof","param",e),delete a.state,"indexed"===o.name?(t||r(n.length-7),o.indexed&&r(n.length-7),o.indexed=!0,o.name=""):Mb(o.type,o.name)&&(o.name=""),a.type=Jb(a.type),a}(e,!!t),Lb.fromObject({name:n.name,type:n.type,indexed:n.indexed,components:n.components});var n}static isParamType(e){return!(null==e||!e._isParamType)}}function Ub(e,t){return function(e){e=e.trim();let t=[],n="",r=0;for(let i=0;i<e.length;i++){let a=e[i];","===a&&0===r?(t.push(n),n=""):(n+=a,"("===a?r++:")"===a&&(r--,-1===r&&Sb.throwArgumentError("unbalanced parenthesis","value",e)))}n&&t.push(n);return t}(e).map((e=>Lb.fromString(e,t)))}class qb{constructor(e,t){e!==Nb&&Sb.throwError("use a static from method",Jg.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),Bb(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return qb.isFragment(e)?e:"string"==typeof e?qb.fromString(e):qb.fromObject(e)}static fromObject(e){if(qb.isFragment(e))return e;switch(e.type){case"function":return Vb.fromObject(e);case"event":return jb.fromObject(e);case"constructor":return Wb.fromObject(e);case"error":return Xb.fromObject(e);case"fallback":case"receive":return null}return Sb.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?jb.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?Vb.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?Wb.fromString(e.trim()):"error"===e.split(" ")[0]?Xb.fromString(e.substring(5).trim()):Sb.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class jb extends qb{format(e){if(e||(e=Db.sighash),Db[e]||Sb.throwArgumentError("invalid format type","format",e),e===Db.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==Db.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Db.full?", ":",")+") ",e!==Db.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?jb.fromString(e):jb.fromObject(e)}static fromObject(e){if(jb.isEventFragment(e))return e;"event"!==e.type&&Sb.throwArgumentError("invalid event object","value",e);const t={name:Qb(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(Lb.fromObject):[],type:"event"};return new jb(Nb,t)}static fromString(e){let t=e.match($b);t||Sb.throwArgumentError("invalid event string","value",e);let n=!1;return t[3].split(" ").forEach((e=>{switch(e.trim()){case"anonymous":n=!0;break;case"":break;default:Sb.warn("unknown modifier: "+e)}})),jb.fromObject({name:t[1].trim(),anonymous:n,inputs:Ub(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function Gb(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&Sb.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||Sb.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=pb.from(n[1]),n[0]):e}function Hb(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach((e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}}))}function zb(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Sb.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Sb.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Sb.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.constant?t.stateMutability="view":t.stateMutability=t.payable?"payable":"nonpayable",t.payable&&t.constant&&Sb.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Sb.throwArgumentError("unable to determine stateMutability","value",e),t}class Wb extends qb{format(e){if(e||(e=Db.sighash),Db[e]||Sb.throwArgumentError("invalid format type","format",e),e===Db.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});e===Db.sighash&&Sb.throwError("cannot format a constructor for sighash",Jg.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map((t=>t.format(e))).join(e===Db.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?Wb.fromString(e):Wb.fromObject(e)}static fromObject(e){if(Wb.isConstructorFragment(e))return e;"constructor"!==e.type&&Sb.throwArgumentError("invalid constructor object","value",e);let t=zb(e);t.constant&&Sb.throwArgumentError("constructor cannot be constant","value",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(Lb.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?pb.from(e.gas):null};return new Wb(Nb,n)}static fromString(e){let t={type:"constructor"},n=(e=Gb(e,t)).match($b);return n&&"constructor"===n[1].trim()||Sb.throwArgumentError("invalid constructor string","value",e),t.inputs=Ub(n[2].trim(),!1),Hb(n[3].trim(),t),Wb.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class Vb extends Wb{format(e){if(e||(e=Db.sighash),Db[e]||Sb.throwArgumentError("invalid format type","format",e),e===Db.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e)))),outputs:this.outputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==Db.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Db.full?", ":",")+") ",e!==Db.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map((t=>t.format(e))).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?Vb.fromString(e):Vb.fromObject(e)}static fromObject(e){if(Vb.isFunctionFragment(e))return e;"function"!==e.type&&Sb.throwArgumentError("invalid function object","value",e);let t=zb(e);const n={type:e.type,name:Qb(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(Lb.fromObject):[],outputs:e.outputs?e.outputs.map(Lb.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?pb.from(e.gas):null};return new Vb(Nb,n)}static fromString(e){let t={type:"function"},n=(e=Gb(e,t)).split(" returns ");n.length>2&&Sb.throwArgumentError("invalid function string","value",e);let r=n[0].match($b);if(r||Sb.throwArgumentError("invalid function signature","value",e),t.name=r[1].trim(),t.name&&Qb(t.name),t.inputs=Ub(r[2],!1),Hb(r[3].trim(),t),n.length>1){let r=n[1].match($b);""==r[1].trim()&&""==r[3].trim()||Sb.throwArgumentError("unexpected tokens","value",e),t.outputs=Ub(r[2],!1)}else t.outputs=[];return Vb.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function Kb(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Sb.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class Xb extends qb{format(e){if(e||(e=Db.sighash),Db[e]||Sb.throwArgumentError("invalid format type","format",e),e===Db.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==Db.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Db.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?Xb.fromString(e):Xb.fromObject(e)}static fromObject(e){if(Xb.isErrorFragment(e))return e;"error"!==e.type&&Sb.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:Qb(e.name),inputs:e.inputs?e.inputs.map(Lb.fromObject):[]};return Kb(new Xb(Nb,t))}static fromString(e){let t={type:"error"},n=e.match($b);return n||Sb.throwArgumentError("invalid error signature","value",e),t.name=n[1].trim(),t.name&&Qb(t.name),t.inputs=Ub(n[2],!1),Kb(Xb.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function Jb(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const Yb=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function Qb(e){return e&&e.match(Yb)||Sb.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const $b=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");const Zb=new Jg(kb);class ev{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){Zb.throwArgumentError(e,this.localName,t)}}class tv{constructor(e){Tb(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return function(e){let t="0x";return e.forEach((e=>{t+=ab(e).substring(2)})),t}(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(nb(e._data))}writeBytes(e){let t=tb(e);const n=t.length%this.wordSize;return n&&(t=nb([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=tb(pb.from(e));return t.length>this.wordSize&&Zb.throwError("value out-of-bounds",Jg.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=nb([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class nv{constructor(e,t,n,r){Tb(this,"_data",tb(e)),Tb(this,"wordSize",t||32),Tb(this,"_coerceFunc",n),Tb(this,"allowLoose",r),this._offset=0}get data(){return ab(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):nv.coerce(e,t)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:Zb.throwError("data out-of-bounds",Jg.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(e){return new nv(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return pb.from(this.readBytes(this.wordSize))}}var rv={exports:{}};
9
+ */!function(e){!function(){var t="input is invalid type",n="object"==typeof window,r=n?window:{};r.JS_SHA3_NO_WINDOW&&(n=!1);var i=!n&&"object"==typeof self;!r.JS_SHA3_NO_NODE_JS&&"object"==typeof process&&{node:"20.10.0",acorn:"8.10.0",ada:"2.7.2",ares:"1.20.1",base64:"0.5.0",brotli:"1.0.9",cjs_module_lexer:"1.2.2",cldr:"43.1",icu:"73.2",llhttp:"8.1.1",modules:"115",napi:"9",nghttp2:"1.57.0",nghttp3:"0.7.0",ngtcp2:"0.8.1",openssl:"3.0.12+quic",simdutf:"3.2.18",tz:"2023c",undici:"5.26.4",unicode:"15.0",uv:"1.46.0",uvwasi:"0.0.19",v8:"11.3.244.8-node.25",zlib:"1.2.13.1-motley"}&&process.versions.node?r=yt:i&&(r=self);var a=!r.JS_SHA3_NO_COMMON_JS&&e.exports,o=!r.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,s="0123456789abcdef".split(""),u=[4,1024,262144,67108864],c=[0,8,16,24],l=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],d=[224,256,384,512],f=[128,256],p=["hex","buffer","arrayBuffer","array","digest"],h={128:168,256:136};!r.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),!o||!r.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(e){return"object"==typeof e&&e.buffer&&e.buffer.constructor===ArrayBuffer});for(var m=function(e,t,n){return function(r){return new S(e,t,e).update(r)[n]()}},y=function(e,t,n){return function(r,i){return new S(e,t,i).update(r)[n]()}},g=function(e,t,n){return function(t,r,i,a){return A["cshake"+e].update(t,r,i,a)[n]()}},b=function(e,t,n){return function(t,r,i,a){return A["kmac"+e].update(t,r,i,a)[n]()}},v=function(e,t,n,r){for(var i=0;i<p.length;++i){var a=p[i];e[a]=t(n,r,a)}return e},T=function(e,t){var n=m(e,t,"hex");return n.create=function(){return new S(e,t,e)},n.update=function(e){return n.create().update(e)},v(n,m,e,t)},w=[{name:"keccak",padding:[1,256,65536,16777216],bits:d,createMethod:T},{name:"sha3",padding:[6,1536,393216,100663296],bits:d,createMethod:T},{name:"shake",padding:[31,7936,2031616,520093696],bits:f,createMethod:function(e,t){var n=y(e,t,"hex");return n.create=function(n){return new S(e,t,n)},n.update=function(e,t){return n.create(t).update(e)},v(n,y,e,t)}},{name:"cshake",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=g(e,0,"hex");return r.create=function(r,i,a){return i||a?new S(e,t,r).bytepad([i,a],n):A["shake"+e].create(r)},r.update=function(e,t,n,i){return r.create(t,n,i).update(e)},v(r,g,e,t)}},{name:"kmac",padding:u,bits:f,createMethod:function(e,t){var n=h[e],r=b(e,0,"hex");return r.create=function(r,i,a){return new N(e,t,i).bytepad(["KMAC",a],n).bytepad([r],n)},r.update=function(e,t,n,i){return r.create(e,n,i).update(t)},v(r,b,e,t)}}],A={},E=[],_=0;_<w.length;++_)for(var I=w[_],R=I.bits,C=0;C<R.length;++C){var O=I.name+"_"+R[C];if(E.push(O),A[O]=I.createMethod(R[C],I.padding),"sha3"!==I.name){var k=I.name+R[C];E.push(k),A[k]=A[O]}}function S(e,t,n){this.blocks=[],this.s=[],this.padding=t,this.outputBits=n,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=n>>5,this.extraBytes=(31&n)>>3;for(var r=0;r<50;++r)this.s[r]=0}function N(e,t,n){S.call(this,e,t,n)}S.prototype.update=function(e){if(this.finalized)throw new Error("finalize already called");var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}for(var i,a,s=this.blocks,u=this.byteCount,l=e.length,d=this.blockCount,f=0,p=this.s;f<l;){if(this.reset)for(this.reset=!1,s[0]=this.block,i=1;i<d+1;++i)s[i]=0;if(n)for(i=this.start;f<l&&i<u;++f)s[i>>2]|=e[f]<<c[3&i++];else for(i=this.start;f<l&&i<u;++f)(a=e.charCodeAt(f))<128?s[i>>2]|=a<<c[3&i++]:a<2048?(s[i>>2]|=(192|a>>6)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):a<55296||a>=57344?(s[i>>2]|=(224|a>>12)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]):(a=65536+((1023&a)<<10|1023&e.charCodeAt(++f)),s[i>>2]|=(240|a>>18)<<c[3&i++],s[i>>2]|=(128|a>>12&63)<<c[3&i++],s[i>>2]|=(128|a>>6&63)<<c[3&i++],s[i>>2]|=(128|63&a)<<c[3&i++]);if(this.lastByteIndex=i,i>=u){for(this.start=i-u,this.block=s[d],i=0;i<d;++i)p[i]^=s[i];x(p),this.reset=!0}else this.start=i}return this},S.prototype.encode=function(e,t){var n=255&e,r=1,i=[n];for(n=255&(e>>=8);n>0;)i.unshift(n),n=255&(e>>=8),++r;return t?i.push(r):i.unshift(r),this.update(i),i.length},S.prototype.encodeString=function(e){var n,r=typeof e;if("string"!==r){if("object"!==r)throw new Error(t);if(null===e)throw new Error(t);if(o&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!(Array.isArray(e)||o&&ArrayBuffer.isView(e)))throw new Error(t);n=!0}var i=0,a=e.length;if(n)i=a;else for(var s=0;s<e.length;++s){var u=e.charCodeAt(s);u<128?i+=1:u<2048?i+=2:u<55296||u>=57344?i+=3:(u=65536+((1023&u)<<10|1023&e.charCodeAt(++s)),i+=4)}return i+=this.encode(8*i),this.update(e),i},S.prototype.bytepad=function(e,t){for(var n=this.encode(t),r=0;r<e.length;++r)n+=this.encodeString(e[r]);var i=t-n%t,a=[];return a.length=i,this.update(a),this},S.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex,n=this.blockCount,r=this.s;if(e[t>>2]|=this.padding[3&t],this.lastByteIndex===this.byteCount)for(e[0]=e[n],t=1;t<n+1;++t)e[t]=0;for(e[n-1]|=2147483648,t=0;t<n;++t)r[t]^=e[t];x(r)}},S.prototype.toString=S.prototype.hex=function(){this.finalize();for(var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,u="";o<r;){for(a=0;a<t&&o<r;++a,++o)e=n[a],u+=s[e>>4&15]+s[15&e]+s[e>>12&15]+s[e>>8&15]+s[e>>20&15]+s[e>>16&15]+s[e>>28&15]+s[e>>24&15];o%t==0&&(x(n),a=0)}return i&&(e=n[a],u+=s[e>>4&15]+s[15&e],i>1&&(u+=s[e>>12&15]+s[e>>8&15]),i>2&&(u+=s[e>>20&15]+s[e>>16&15])),u},S.prototype.arrayBuffer=function(){this.finalize();var e,t=this.blockCount,n=this.s,r=this.outputBlocks,i=this.extraBytes,a=0,o=0,s=this.outputBits>>3;e=i?new ArrayBuffer(r+1<<2):new ArrayBuffer(s);for(var u=new Uint32Array(e);o<r;){for(a=0;a<t&&o<r;++a,++o)u[o]=n[a];o%t==0&&x(n)}return i&&(u[a]=n[a],e=e.slice(0,s)),e},S.prototype.buffer=S.prototype.arrayBuffer,S.prototype.digest=S.prototype.array=function(){this.finalize();for(var e,t,n=this.blockCount,r=this.s,i=this.outputBlocks,a=this.extraBytes,o=0,s=0,u=[];s<i;){for(o=0;o<n&&s<i;++o,++s)e=s<<2,t=r[o],u[e]=255&t,u[e+1]=t>>8&255,u[e+2]=t>>16&255,u[e+3]=t>>24&255;s%n==0&&x(r)}return a&&(e=s<<2,t=r[o],u[e]=255&t,a>1&&(u[e+1]=t>>8&255),a>2&&(u[e+2]=t>>16&255)),u},N.prototype=new S,N.prototype.finalize=function(){return this.encode(this.outputBits,!0),S.prototype.finalize.call(this)};var x=function(e){var t,n,r,i,a,o,s,u,c,d,f,p,h,m,y,g,b,v,T,w,A,E,_,I,R,C,O,k,S,N,x,P,M,B,D,F,L,U,q,j,G,H,z,W,V,K,X,J,Y,Q,$,Z,ee,te,ne,re,ie,ae,oe,se,ue,ce,le;for(r=0;r<48;r+=2)i=e[0]^e[10]^e[20]^e[30]^e[40],a=e[1]^e[11]^e[21]^e[31]^e[41],o=e[2]^e[12]^e[22]^e[32]^e[42],s=e[3]^e[13]^e[23]^e[33]^e[43],u=e[4]^e[14]^e[24]^e[34]^e[44],c=e[5]^e[15]^e[25]^e[35]^e[45],d=e[6]^e[16]^e[26]^e[36]^e[46],f=e[7]^e[17]^e[27]^e[37]^e[47],t=(p=e[8]^e[18]^e[28]^e[38]^e[48])^(o<<1|s>>>31),n=(h=e[9]^e[19]^e[29]^e[39]^e[49])^(s<<1|o>>>31),e[0]^=t,e[1]^=n,e[10]^=t,e[11]^=n,e[20]^=t,e[21]^=n,e[30]^=t,e[31]^=n,e[40]^=t,e[41]^=n,t=i^(u<<1|c>>>31),n=a^(c<<1|u>>>31),e[2]^=t,e[3]^=n,e[12]^=t,e[13]^=n,e[22]^=t,e[23]^=n,e[32]^=t,e[33]^=n,e[42]^=t,e[43]^=n,t=o^(d<<1|f>>>31),n=s^(f<<1|d>>>31),e[4]^=t,e[5]^=n,e[14]^=t,e[15]^=n,e[24]^=t,e[25]^=n,e[34]^=t,e[35]^=n,e[44]^=t,e[45]^=n,t=u^(p<<1|h>>>31),n=c^(h<<1|p>>>31),e[6]^=t,e[7]^=n,e[16]^=t,e[17]^=n,e[26]^=t,e[27]^=n,e[36]^=t,e[37]^=n,e[46]^=t,e[47]^=n,t=d^(i<<1|a>>>31),n=f^(a<<1|i>>>31),e[8]^=t,e[9]^=n,e[18]^=t,e[19]^=n,e[28]^=t,e[29]^=n,e[38]^=t,e[39]^=n,e[48]^=t,e[49]^=n,m=e[0],y=e[1],K=e[11]<<4|e[10]>>>28,X=e[10]<<4|e[11]>>>28,k=e[20]<<3|e[21]>>>29,S=e[21]<<3|e[20]>>>29,se=e[31]<<9|e[30]>>>23,ue=e[30]<<9|e[31]>>>23,H=e[40]<<18|e[41]>>>14,z=e[41]<<18|e[40]>>>14,B=e[2]<<1|e[3]>>>31,D=e[3]<<1|e[2]>>>31,g=e[13]<<12|e[12]>>>20,b=e[12]<<12|e[13]>>>20,J=e[22]<<10|e[23]>>>22,Y=e[23]<<10|e[22]>>>22,N=e[33]<<13|e[32]>>>19,x=e[32]<<13|e[33]>>>19,ce=e[42]<<2|e[43]>>>30,le=e[43]<<2|e[42]>>>30,te=e[5]<<30|e[4]>>>2,ne=e[4]<<30|e[5]>>>2,F=e[14]<<6|e[15]>>>26,L=e[15]<<6|e[14]>>>26,v=e[25]<<11|e[24]>>>21,T=e[24]<<11|e[25]>>>21,Q=e[34]<<15|e[35]>>>17,$=e[35]<<15|e[34]>>>17,P=e[45]<<29|e[44]>>>3,M=e[44]<<29|e[45]>>>3,I=e[6]<<28|e[7]>>>4,R=e[7]<<28|e[6]>>>4,re=e[17]<<23|e[16]>>>9,ie=e[16]<<23|e[17]>>>9,U=e[26]<<25|e[27]>>>7,q=e[27]<<25|e[26]>>>7,w=e[36]<<21|e[37]>>>11,A=e[37]<<21|e[36]>>>11,Z=e[47]<<24|e[46]>>>8,ee=e[46]<<24|e[47]>>>8,W=e[8]<<27|e[9]>>>5,V=e[9]<<27|e[8]>>>5,C=e[18]<<20|e[19]>>>12,O=e[19]<<20|e[18]>>>12,ae=e[29]<<7|e[28]>>>25,oe=e[28]<<7|e[29]>>>25,j=e[38]<<8|e[39]>>>24,G=e[39]<<8|e[38]>>>24,E=e[48]<<14|e[49]>>>18,_=e[49]<<14|e[48]>>>18,e[0]=m^~g&v,e[1]=y^~b&T,e[10]=I^~C&k,e[11]=R^~O&S,e[20]=B^~F&U,e[21]=D^~L&q,e[30]=W^~K&J,e[31]=V^~X&Y,e[40]=te^~re&ae,e[41]=ne^~ie&oe,e[2]=g^~v&w,e[3]=b^~T&A,e[12]=C^~k&N,e[13]=O^~S&x,e[22]=F^~U&j,e[23]=L^~q&G,e[32]=K^~J&Q,e[33]=X^~Y&$,e[42]=re^~ae&se,e[43]=ie^~oe&ue,e[4]=v^~w&E,e[5]=T^~A&_,e[14]=k^~N&P,e[15]=S^~x&M,e[24]=U^~j&H,e[25]=q^~G&z,e[34]=J^~Q&Z,e[35]=Y^~$&ee,e[44]=ae^~se&ce,e[45]=oe^~ue&le,e[6]=w^~E&m,e[7]=A^~_&y,e[16]=N^~P&I,e[17]=x^~M&R,e[26]=j^~H&B,e[27]=G^~z&D,e[36]=Q^~Z&W,e[37]=$^~ee&V,e[46]=se^~ce&te,e[47]=ue^~le&ne,e[8]=E^~m&g,e[9]=_^~y&b,e[18]=P^~I&C,e[19]=M^~R&O,e[28]=H^~B&F,e[29]=z^~D&L,e[38]=Z^~W&K,e[39]=ee^~V&X,e[48]=ce^~te&re,e[49]=le^~ne&ie,e[0]^=l[r],e[1]^=l[r+1]};if(a)e.exports=A;else for(_=0;_<E.length;++_)r[E[_]]=A[E[_]]}()}(pi);var hi=gt(pi.exports);function mi(e){return"0x"+hi.keccak_256(qn(e))}var yi=Object.freeze({__proto__:null,keccak256:mi});const gi=new xn("rlp/5.7.0");function bi(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function vi(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function Ti(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(Ti(e))})),t.length<=55)return t.unshift(192+t.length),t;const n=bi(t.length);return n.unshift(247+n.length),n.concat(t)}Fn(e)||gi.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(qn(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const n=bi(t.length);return n.unshift(183+n.length),n.concat(t)}function wi(e){return Vn(Ti(e))}function Ai(e,t,n,r){const i=[];for(;n<t+1+r;){const a=Ei(e,n);i.push(a.result),(n+=a.consumed)>t+1+r&&gi.throwError("child data too short",xn.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function Ei(e,t){if(0===e.length&&gi.throwError("data too short",xn.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&gi.throwError("data short segment too short",xn.errors.BUFFER_OVERRUN,{});const r=vi(e,t+1,n);return t+1+n+r>e.length&&gi.throwError("data long segment too short",xn.errors.BUFFER_OVERRUN,{}),Ai(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&gi.throwError("data array too short",xn.errors.BUFFER_OVERRUN,{}),Ai(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&gi.throwError("data array too short",xn.errors.BUFFER_OVERRUN,{});const r=vi(e,t+1,n);t+1+n+r>e.length&&gi.throwError("data array too short",xn.errors.BUFFER_OVERRUN,{});return{consumed:1+n+r,result:Vn(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;t+1+n>e.length&&gi.throwError("data too short",xn.errors.BUFFER_OVERRUN,{});return{consumed:1+n,result:Vn(e.slice(t+1,t+1+n))}}return{consumed:1,result:Vn(e[t])}}function _i(e){const t=qn(e),n=Ei(t,0);return n.consumed!==t.length&&gi.throwArgumentError("invalid rlp data","data",e),n.result}var Ii=Object.freeze({__proto__:null,decode:_i,encode:wi});const Ri=new xn("address/5.7.0");function Ci(e){zn(e,20)||Ri.throwArgumentError("invalid address","address",e);const t=(e=e.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let e=0;e<40;e++)n[e]=t[e].charCodeAt(0);const r=qn(mi(n));for(let e=0;e<40;e+=2)r[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&r[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}const Oi={};for(let e=0;e<10;e++)Oi[String(e)]=String(e);for(let e=0;e<26;e++)Oi[String.fromCharCode(65+e)]=String(10+e);const ki=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Si(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>Oi[e])).join("");for(;t.length>=ki;){let e=t.substring(0,ki);t=parseInt(e,10)%97+t.substring(e.length)}let n=String(98-parseInt(t,10)%97);for(;n.length<2;)n="0"+n;return n}function Ni(e){let t=null;if("string"!=typeof e&&Ri.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Ci(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Ri.throwArgumentError("bad address checksum","address",e);else if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(e.substring(2,4)!==Si(e)&&Ri.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new rr(n,36).toString(16);t.length<40;)t="0"+t;t=Ci("0x"+t)}else Ri.throwArgumentError("invalid address","address",e);var n;return t}function xi(e){try{return Ni(e),!0}catch(e){}return!1}function Pi(e){let t=(n=Ni(e).substring(2),new rr(n,16).toString(36)).toUpperCase();for(var n;t.length<30;)t="0"+t;return"XE"+Si("XE00"+t)+t}function Mi(e){let t=null;try{t=Ni(e.from)}catch(t){Ri.throwArgumentError("missing from address","transaction",e)}return Ni(Xn(mi(wi([t,Gn(qn(ur.from(e.nonce).toHexString()))])),12))}function Bi(e,t,n){return 32!==Kn(t)&&Ri.throwArgumentError("salt must be 32 bytes","salt",t),32!==Kn(n)&&Ri.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",n),Ni(Xn(mi(jn(["0xff",Ni(e),t,n])),12))}var Di=Object.freeze({__proto__:null,getAddress:Ni,getContractAddress:Mi,getCreate2Address:Bi,getIcapAddress:Pi,isAddress:xi});let Fi=class extends di{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=Ni(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return Ni($n(e.readValue().toHexString(),20))}},Li=class extends di{constructor(e){super(e.name,e.type,void 0,e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}};const Ui=new xn(Ur);function qi(e,t,n){let r=null;if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let e={};r=t.map((t=>{const r=t.localName;return r||Ui.throwError("cannot encode object for signature with missing names",xn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&Ui.throwError("cannot encode object for signature with duplicate names",xn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]}))}else Ui.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&Ui.throwArgumentError("types/value length mismatch","tuple",n);let i=new fi(e.wordSize),a=new fi(e.wordSize),o=[];t.forEach(((e,t)=>{let n=r[t];if(e.dynamic){let t=a.length;e.encode(a,n);let r=i.writeUpdatableValue();o.push((e=>{r(e+t)}))}else e.encode(i,n)})),o.forEach((e=>{e(i.length)}));let s=e.appendWriter(i);return s+=e.appendWriter(a),s}function ji(e,t){let n=[],r=e.subReader(0);t.forEach((t=>{let i=null;if(t.dynamic){let n=e.readValue(),a=r.subReader(n.toNumber());try{i=t.decode(a)}catch(e){if(e.code===xn.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(e.code===xn.errors.BUFFER_OVERRUN)throw e;i=e,i.baseType=t.name,i.name=t.localName,i.type=t.type}null!=i&&n.push(i)}));const i=t.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});t.forEach(((e,t)=>{let r=e.localName;if(!r||1!==i[r])return;if("length"===r&&(r="_length"),null!=n[r])return;const a=n[t];a instanceof Error?Object.defineProperty(n,r,{enumerable:!0,get:()=>{throw a}}):n[r]=a}));for(let e=0;e<n.length;e++){const t=n[e];t instanceof Error&&Object.defineProperty(n,e,{enumerable:!0,get:()=>{throw t}})}return Object.freeze(n)}let Gi=class extends di{constructor(e,t,n){super("array",e.type+"["+(t>=0?t:"")+"]",n,-1===t||e.dynamic),this.coder=e,this.length=t}defaultValue(){const e=this.coder.defaultValue(),t=[];for(let n=0;n<this.length;n++)t.push(e);return t}encode(e,t){Array.isArray(t)||this._throwError("expected array value",t);let n=this.length;-1===n&&(n=t.length,e.writeValue(t.length)),Ui.checkArgumentCount(t.length,n,"coder array"+(this.localName?" "+this.localName:""));let r=[];for(let e=0;e<t.length;e++)r.push(this.coder);return qi(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&Ui.throwError("insufficient data length",xn.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new Li(this.coder));return e.coerce(this.name,ji(e,n))}},Hi=class extends di{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){return e.writeValue(t?1:0)}decode(e){return e.coerce(this.type,!e.readValue().isZero())}},zi=class extends di{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=qn(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}},Wi=class extends zi{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Vn(super.decode(e)))}},Vi=class extends di{constructor(e,t){let n="bytes"+String(e);super(n,n,t,!1),this.size=e}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let n=qn(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,Vn(e.readBytes(this.size)))}},Ki=class extends di{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes([])}decode(e){return e.readBytes(0),e.coerce(this.name,null)}};const Xi="0x0000000000000000000000000000000000000000",Ji=ur.from(-1),Yi=ur.from(0),Qi=ur.from(1),$i=ur.from(2),Zi=ur.from("1000000000000000000"),ea=ur.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ta=ur.from("-0x8000000000000000000000000000000000000000000000000000000000000000"),na=ur.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ra="0x0000000000000000000000000000000000000000000000000000000000000000";var ia=Object.freeze({__proto__:null,AddressZero:Xi,EtherSymbol:"Ξ",HashZero:ra,MaxInt256:na,MaxUint256:ea,MinInt256:ta,NegativeOne:Ji,One:Qi,Two:$i,WeiPerEther:Zi,Zero:Yi});let aa=class extends di{constructor(e,t,n){const r=(t?"int":"uint")+8*e;super(r,r,n,!1),this.size=e,this.signed=t}defaultValue(){return 0}encode(e,t){let n=ur.from(t),r=ea.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add(Qi).mul(Ji)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Yi)||n.gt(r.mask(8*this.size)))&&this._throwError("value out-of-bounds",t);return n=n.toTwos(8*this.size).mask(8*this.size),this.signed&&(n=n.fromTwos(8*this.size).toTwos(8*e.wordSize)),e.writeValue(n)}decode(e){let t=e.readValue().mask(8*this.size);return this.signed&&(t=t.fromTwos(8*this.size)),e.coerce(this.name,t)}};const oa=new xn("strings/5.7.0");var sa,ua;function ca(e,t,n,r,i){if(e===ua.BAD_PREFIX||e===ua.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===ua.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(sa||(sa={})),function(e){e.UNEXPECTED_CONTINUE="unexpected continuation byte",e.BAD_PREFIX="bad codepoint prefix",e.OVERRUN="string overrun",e.MISSING_CONTINUE="missing continuation byte",e.OUT_OF_RANGE="out of UTF-8 range",e.UTF16_SURROGATE="UTF-16 surrogate",e.OVERLONG="overlong representation"}(ua||(ua={}));const la=Object.freeze({error:function(e,t,n,r,i){return oa.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:ca,replace:function(e,t,n,r,i){return e===ua.OVERLONG?(r.push(i),0):(r.push(65533),ca(e,t,n))}});function da(e,t){null==t&&(t=la.error),e=qn(e);const n=[];let r=0;for(;r<e.length;){const i=e[r++];if(i>>7==0){n.push(i);continue}let a=null,o=null;if(192==(224&i))a=1,o=127;else if(224==(240&i))a=2,o=2047;else{if(240!=(248&i)){r+=t(128==(192&i)?ua.UNEXPECTED_CONTINUE:ua.BAD_PREFIX,r-1,e,n);continue}a=3,o=65535}if(r-1+a>=e.length){r+=t(ua.OVERRUN,r-1,e,n);continue}let s=i&(1<<8-a-1)-1;for(let i=0;i<a;i++){let i=e[r];if(128!=(192&i)){r+=t(ua.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|63&i,r++}null!==s&&(s>1114111?r+=t(ua.OUT_OF_RANGE,r-1-a,e,n,s):s>=55296&&s<=57343?r+=t(ua.UTF16_SURROGATE,r-1-a,e,n,s):s<=o?r+=t(ua.OVERLONG,r-1-a,e,n,s):n.push(s))}return n}function fa(e,t=sa.current){t!=sa.current&&(oa.checkNormalize(),e=e.normalize(t));let n=[];for(let t=0;t<e.length;t++){const r=e.charCodeAt(t);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){t++;const i=e.charCodeAt(t);if(t>=e.length||56320!=(64512&i))throw new Error("invalid utf-8 string");const a=65536+((1023&r)<<10)+(1023&i);n.push(a>>18|240),n.push(a>>12&63|128),n.push(a>>6&63|128),n.push(63&a|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return qn(n)}function pa(e){const t="0000"+e.toString(16);return"\\u"+t.substring(t.length-4)}function ha(e,t){return'"'+da(e,t).map((e=>{if(e<256){switch(e){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(e>=32&&e<127)return String.fromCharCode(e)}return e<=65535?pa(e):pa(55296+((e-=65536)>>10&1023))+pa(56320+(1023&e))})).join("")+'"'}function ma(e){return e.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("")}function ya(e,t){return ma(da(e,t))}function ga(e,t=sa.current){return da(fa(e,t))}function ba(e){const t=fa(e);if(t.length>31)throw new Error("bytes32 string must be less than 32 bytes");return Vn(jn([t,ra]).slice(0,32))}function va(e){const t=qn(e);if(32!==t.length)throw new Error("invalid bytes32 - not 32 bytes long");if(0!==t[31])throw new Error("invalid bytes32 string - no null terminator");let n=31;for(;0===t[n-1];)n--;return ya(t.slice(0,n))}function Ta(e,t){t||(t=function(e){return[parseInt(e,16)]});let n=0,r={};return e.split(",").forEach((e=>{let i=e.split(":");n+=parseInt(i[0],16),r[n]=t(i[1])})),r}function wa(e){let t=0;return e.split(",").map((e=>{let n=e.split("-");1===n.length?n[1]="0":""===n[1]&&(n[1]="1");let r=t+parseInt(n[0],16);return t=parseInt(n[1],16),{l:r,h:t}}))}function Aa(e,t){let n=0;for(let r=0;r<t.length;r++){let i=t[r];if(n+=i.l,e>=n&&e<=n+i.h&&(e-n)%(i.d||1)==0){if(i.e&&-1!==i.e.indexOf(e-n))continue;return i}}return null}const Ea=wa("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),_a="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((e=>parseInt(e,16))),Ia=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],Ra=Ta("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),Ca=Ta("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),Oa=Ta("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",(function(e){if(e.length%4!=0)throw new Error("bad data");let t=[];for(let n=0;n<e.length;n+=4)t.push(parseInt(e.substring(n,n+4),16));return t})),ka=wa("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001");function Sa(e){if(e.match(/^[a-z0-9-]*$/i)&&e.length<=59)return e.toLowerCase();let t=ga(e);var n;n=t.map((e=>{if(_a.indexOf(e)>=0)return[];if(e>=65024&&e<=65039)return[];let t=function(e){let t=Aa(e,Ia);if(t)return[e+t.s];let n=Ra[e];if(n)return n;let r=Ca[e];return r?[e+r[0]]:Oa[e]||null}(e);return t||[e]})),t=n.reduce(((e,t)=>(t.forEach((t=>{e.push(t)})),e)),[]),t=ga(ma(t),sa.NFKC),t.forEach((e=>{if(Aa(e,ka))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")})),t.forEach((e=>{if(Aa(e,Ea))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")}));let r=ma(t);if("-"===r.substring(0,1)||"--"===r.substring(2,4)||"-"===r.substring(r.length-1))throw new Error("invalid hyphen");return r}var Na=Object.freeze({__proto__:null,get UnicodeNormalizationForm(){return sa},Utf8ErrorFuncs:la,get Utf8ErrorReason(){return ua},_toEscapedUtf8String:ha,formatBytes32String:ba,nameprep:Sa,parseBytes32String:va,toUtf8Bytes:fa,toUtf8CodePoints:ga,toUtf8String:ya});let xa=class extends zi{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,fa(t))}decode(e){return ya(super.decode(e))}},Pa=class extends di{constructor(e,t){let n=!1;const r=[];e.forEach((e=>{e.dynamic&&(n=!0),r.push(e.type)}));super("tuple","tuple("+r.join(",")+")",t,n),this.coders=e}defaultValue(){const e=[];this.coders.forEach((t=>{e.push(t.defaultValue())}));const t=this.coders.reduce(((e,t)=>{const n=t.localName;return n&&(e[n]||(e[n]=0),e[n]++),e}),{});return this.coders.forEach(((n,r)=>{let i=n.localName;i&&1===t[i]&&("length"===i&&(i="_length"),null==e[i]&&(e[i]=e[r]))})),Object.freeze(e)}encode(e,t){return qi(e,this.coders,t)}decode(e){return e.coerce(this.name,ji(e,this.coders))}};const Ma=new xn(Ur),Ba=new RegExp(/^bytes([0-9]*)$/),Da=new RegExp(/^(u?int)([0-9]*)$/);let Fa=class{constructor(e){Or(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new Fi(e.name);case"bool":return new Hi(e.name);case"string":return new xa(e.name);case"bytes":return new Wi(e.name);case"array":return new Gi(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Pa((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new Ki(e.name)}let t=e.type.match(Da);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Ma.throwArgumentError("invalid "+t[1]+" bit length","param",e),new aa(n/8,"int"===t[1],e.name)}if(t=e.type.match(Ba),t){let n=parseInt(t[1]);return(0===n||n>32)&&Ma.throwArgumentError("invalid bytes length","param",e),new Vi(n,e.name)}return Ma.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new class e{constructor(e,t,n,r){Or(this,"_data",qn(e)),Or(this,"wordSize",t||32),Or(this,"_coerceFunc",n),Or(this,"allowLoose",r),this._offset=0}get data(){return Vn(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(t,n){return this._coerceFunc?this._coerceFunc(t,n):e.coerce(t,n)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:ci.throwError("data out-of-bounds",xn.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(t){return new e(this._data.slice(this._offset+t),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return ur.from(this.readBytes(this.wordSize))}}(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new fi(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(Xr.from(e))));return new Pa(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Ma.throwError("types/values length mismatch",xn.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map((e=>this._getCoder(Xr.from(e)))),r=new Pa(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map((e=>this._getCoder(Xr.from(e))));return new Pa(r,"_").decode(this._getReader(qn(t),n))}};const La=new Fa;function Ua(e){return mi(fa(e))}const qa="hash/5.7.0";function ja(e){e=atob(e);const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return qn(t)}function Ga(e){e=qn(e);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}var Ha=Object.freeze({__proto__:null,decode:ja,encode:Ga});function za(e,t){null==t&&(t=1);const n=[],r=n.forEach,i=function(e,t){r.call(e,(function(e){t>0&&Array.isArray(e)?i(e,t-1):n.push(e)}))};return i(e,t),n}function Wa(e){return function(e){let t=0;return()=>e[t++]}(function(e){let t=0;function n(){return e[t++]<<8|e[t++]}let r=n(),i=1,a=[0,1];for(let e=1;e<r;e++)a.push(i+=n());let o=n(),s=t;t+=o;let u=0,c=0;function l(){return 0==u&&(c=c<<8|e[t++],u=8),c>>--u&1}const d=Math.pow(2,31),f=d>>>1,p=f>>1,h=d-1;let m=0;for(let e=0;e<31;e++)m=m<<1|l();let y=[],g=0,b=d;for(;;){let e=Math.floor(((m-g+1)*i-1)/b),t=0,n=r;for(;n-t>1;){let r=t+n>>>1;e<a[r]?n=r:t=r}if(0==t)break;y.push(t);let o=g+Math.floor(b*a[t]/i),s=g+Math.floor(b*a[t+1]/i)-1;for(;0==((o^s)&f);)m=m<<1&h|l(),o=o<<1&h,s=s<<1&h|1;for(;o&~s&p;)m=m&f|m<<1&h>>>1|l(),o=o<<1^f,s=(s^f)<<1|f|1;g=o,b=1+s-o}let v=r-4;return y.map((t=>{switch(t-v){case 3:return v+65792+(e[s++]<<16|e[s++]<<8|e[s++]);case 2:return v+256+(e[s++]<<8|e[s++]);case 1:return v+e[s++];default:return t-1}}))}(e))}function Va(e){return 1&e?~e>>1:e>>1}function Ka(e,t){let n=Array(e);for(let r=0,i=-1;r<e;r++)n[r]=i+=1+t();return n}function Xa(e,t){let n=Array(e);for(let r=0,i=0;r<e;r++)n[r]=i+=Va(t());return n}function Ja(e,t){let n=Ka(e(),e),r=e(),i=Ka(r,e),a=function(e,t){let n=Array(e);for(let r=0;r<e;r++)n[r]=1+t();return n}(r,e);for(let e=0;e<r;e++)for(let t=0;t<a[e];t++)n.push(i[e]+t);return t?n.map((e=>t[e])):n}function Ya(e,t,n){let r=Array(e).fill(void 0).map((()=>[]));for(let i=0;i<t;i++)Xa(e,n).forEach(((e,t)=>r[t].push(e)));return r}function Qa(e,t){let n=1+t(),r=t(),i=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(n)}return t}(t);return za(Ya(i.length,1+e,t).map(((e,t)=>{const a=e[0],o=e.slice(1);return Array(i[t]).fill(void 0).map(((e,t)=>{let i=t*r;return[a+t*n,o.map((e=>e+i))]}))})))}function $a(e,t){return Ya(1+t(),1+e,t).map((e=>[e[0],e.slice(1)]))}const Za=Wa(ja("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA==")),eo=new Set(Ja(Za)),to=new Set(Ja(Za)),no=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push(Qa(n,e))}for(;;){let n=e()-1;if(n<0)break;t.push($a(n,e))}return function(e){const t={};for(let n=0;n<e.length;n++){const r=e[n];t[r[0]]=r[1]}return t}(za(t))}(Za),ro=function(e){let t=Ja(e).sort(((e,t)=>e-t));return function n(){let r=[];for(;;){let i=Ja(e,t);if(0==i.length)break;r.push({set:new Set(i),node:n()})}r.sort(((e,t)=>t.set.size-e.set.size));let i=e(),a=i%3;i=i/3|0;let o=!!(1&i);return i>>=1,{branches:r,valid:a,fe0f:o,save:1==i,check:2==i}}()}(Za),io=45,ao=95;function oo(e){return ga(e)}function so(e){return e.filter((e=>65039!=e))}function uo(e){for(let t of e.split(".")){let e=oo(t);try{for(let t=e.lastIndexOf(ao)-1;t>=0;t--)if(e[t]!==ao)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every((e=>e<128))&&e[2]===io&&e[3]===io)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function co(e){return uo(function(e,t){let n=oo(e).reverse(),r=[];for(;n.length;){let e=lo(n);if(e){r.push(...t(e));continue}let i=n.pop();if(eo.has(i)){r.push(i);continue}if(to.has(i))continue;let a=no[i];if(!a)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);r.push(...a)}return uo(function(e){return e.normalize("NFC")}(String.fromCodePoint(...r)))}(e,so))}function lo(e,t){var n;let r,i,a=ro,o=[],s=e.length;for(t&&(t.length=0);s;){let u=e[--s];if(a=null===(n=a.branches.find((e=>e.set.has(u))))||void 0===n?void 0:n.node,!a)break;if(a.save)i=u;else if(a.check&&u===i)break;o.push(u),a.fe0f&&(o.push(65039),s>0&&65039==e[s-1]&&s--),a.valid&&(r=o.slice(),2==a.valid&&r.splice(1,1),t&&t.push(...e.slice(s).reverse()),e.length=s)}return r}const fo=new xn(qa),po=new Uint8Array(32);function ho(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function mo(e){const t=fa(co(e)),n=[];if(0===e.length)return n;let r=0;for(let e=0;e<t.length;e++){46===t[e]&&(n.push(ho(t.slice(r,e))),r=e+1)}if(r>=t.length)throw new Error("invalid ENS name; empty component");return n.push(ho(t.slice(r))),n}function yo(e){try{return 0!==mo(e).length}catch(e){}return!1}function go(e){"string"!=typeof e&&fo.throwArgumentError("invalid ENS name; not a string","name",e);let t=po;const n=mo(e);for(;n.length;)t=mi(jn([t,mi(n.pop())]));return Vn(t)}function bo(e){return Vn(jn(mo(e).map((e=>{if(e.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const t=new Uint8Array(e.length+1);return t.set(e,1),t[0]=t.length-1,t}))))+"00"}po.fill(0);const vo="Ethereum Signed Message:\n";function To(e){return"string"==typeof e&&(e=fa(e)),mi(jn([fa(vo),fa(String(e.length)),e]))}var wo=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Ao=new xn(qa),Eo=new Uint8Array(32);Eo.fill(0);const _o=ur.from(-1),Io=ur.from(0),Ro=ur.from(1),Co=ur.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const Oo=$n(Ro.toHexString(),32),ko=$n(Io.toHexString(),32),So={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},No=["name","version","chainId","verifyingContract","salt"];function xo(e){return function(t){return"string"!=typeof t&&Ao.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const Po={name:xo("name"),version:xo("version"),chainId:function(e){try{return ur.from(e).toString()}catch(e){}return Ao.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return Ni(e).toLowerCase()}catch(e){}return Ao.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=qn(e);if(32!==t.length)throw new Error("bad length");return Vn(t)}catch(e){}return Ao.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function Mo(e){{const t=e.match(/^(u?)int(\d*)$/);if(t){const n=""===t[1],r=parseInt(t[2]||"256");(r%8!=0||r>256||t[2]&&t[2]!==String(r))&&Ao.throwArgumentError("invalid numeric width","type",e);const i=Co.mask(n?r-1:r),a=n?i.add(Ro).mul(_o):Io;return function(t){const n=ur.from(t);return(n.lt(a)||n.gt(i))&&Ao.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),$n(n.toTwos(256).toHexString(),32)}}}{const t=e.match(/^bytes(\d+)$/);if(t){const n=parseInt(t[1]);return(0===n||n>32||t[1]!==String(n))&&Ao.throwArgumentError("invalid bytes width","type",e),function(t){return qn(t).length!==n&&Ao.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=qn(e),n=t.length%32;return n?Jn([t,Eo.slice(n)]):Vn(t)}(t)}}}switch(e){case"address":return function(e){return $n(Ni(e),32)};case"bool":return function(e){return e?Oo:ko};case"bytes":return function(e){return mi(e)};case"string":return function(e){return Ua(e)}}return null}function Bo(e,t){return`${e}(${t.map((({name:e,type:t})=>t+" "+e)).join(",")})`}class Do{constructor(e){Or(this,"types",Object.freeze(Dr(e))),Or(this,"_encoderCache",{}),Or(this,"_types",{});const t={},n={},r={};Object.keys(e).forEach((e=>{t[e]={},n[e]=[],r[e]={}}));for(const r in e){const i={};e[r].forEach((a=>{i[a.name]&&Ao.throwArgumentError(`duplicate variable name ${JSON.stringify(a.name)} in ${JSON.stringify(r)}`,"types",e),i[a.name]=!0;const o=a.type.match(/^([^\x5b]*)(\x5b|$)/)[1];o===r&&Ao.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e);Mo(o)||(n[o]||Ao.throwArgumentError(`unknown type ${JSON.stringify(o)}`,"types",e),n[o].push(r),t[r][o]=!0)}))}const i=Object.keys(n).filter((e=>0===n[e].length));0===i.length?Ao.throwArgumentError("missing primary type","types",e):i.length>1&&Ao.throwArgumentError(`ambiguous primary types or unused types: ${i.map((e=>JSON.stringify(e))).join(", ")}`,"types",e),Or(this,"primaryType",i[0]),function i(a,o){o[a]&&Ao.throwArgumentError(`circular type reference to ${JSON.stringify(a)}`,"types",e),o[a]=!0,Object.keys(t[a]).forEach((e=>{n[e]&&(i(e,o),Object.keys(o).forEach((t=>{r[t][e]=!0})))})),delete o[a]}(this.primaryType,{});for(const t in r){const n=Object.keys(r[t]);n.sort(),this._types[t]=Bo(t,e[t])+n.map((t=>Bo(t,e[t]))).join("")}}getEncoder(e){let t=this._encoderCache[e];return t||(t=this._encoderCache[e]=this._getEncoder(e)),t}_getEncoder(e){{const t=Mo(e);if(t)return t}const t=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(t){const e=t[1],n=this.getEncoder(e),r=parseInt(t[3]);return t=>{r>=0&&t.length!==r&&Ao.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(n);return this._types[e]&&(i=i.map(mi)),mi(Jn(i))}}const n=this.types[e];if(n){const t=Ua(this._types[e]);return e=>{const r=n.map((({name:t,type:n})=>{const r=this.getEncoder(n)(e[t]);return this._types[n]?mi(r):r}));return r.unshift(t),Jn(r)}}return Ao.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Ao.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return mi(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,n){if(Mo(e))return n(e,t);const r=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(r){const e=r[1],i=parseInt(r[3]);return i>=0&&t.length!==i&&Ao.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t),t.map((t=>this._visit(e,t,n)))}const i=this.types[e];return i?i.reduce(((e,{name:r,type:i})=>(e[r]=this._visit(i,t[r],n),e)),{}):Ao.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new Do(e)}static getPrimaryType(e){return Do.from(e).primaryType}static hashStruct(e,t,n){return Do.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){const r=So[n];r||Ao.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort(((e,t)=>No.indexOf(e.name)-No.indexOf(t.name))),Do.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return Jn(["0x1901",Do.hashDomain(e),Do.from(t).hash(n)])}static hash(e,t,n){return mi(Do.encode(e,t,n))}static resolveNames(e,t,n,r){return wo(this,void 0,void 0,(function*(){e=xr(e);const i={};e.verifyingContract&&!zn(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const a=Do.from(t);a.visit(n,((e,t)=>("address"!==e||zn(t,20)||(i[t]="0x"),t)));for(const e in i)i[e]=yield r(e);return e.verifyingContract&&i[e.verifyingContract]&&(e.verifyingContract=i[e.verifyingContract]),n=a.visit(n,((e,t)=>"address"===e&&i[t]?i[t]:t)),{domain:e,value:n}}))}static getPayload(e,t,n){Do.hashDomain(e);const r={},i=[];No.forEach((t=>{const n=e[t];null!=n&&(r[t]=Po[t](n),i.push({name:t,type:So[t]}))}));const a=Do.from(t),o=xr(t);return o.EIP712Domain?Ao.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",t):o.EIP712Domain=i,a.encode(n),{types:o,domain:r,primaryType:a.primaryType,message:a.visit(n,((e,t)=>{if(e.match(/^bytes(\d*)/))return Vn(qn(t));if(e.match(/^u?int/))return ur.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&Ao.throwArgumentError("invalid string","value",t),t}return Ao.throwArgumentError("unsupported type","type",e)}))}}}var Fo=Object.freeze({__proto__:null,_TypedDataEncoder:Do,dnsEncode:bo,ensNormalize:function(e){return mo(e).map((e=>ya(e))).join(".")},hashMessage:To,id:Ua,isValidName:yo,messagePrefix:vo,namehash:go});const Lo=new xn(Ur);let Uo=class extends Fr{},qo=class extends Fr{},jo=class extends Fr{},Go=class extends Fr{static isIndexed(e){return!(!e||!e._isIndexed)}};const Ho={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function zo(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}let Wo=class{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,Or(this,"fragments",t.map((e=>Yr.from(e))).filter((e=>null!=e))),Or(this,"_abiCoder",kr(new.target,"getAbiCoder")()),Or(this,"functions",{}),Or(this,"errors",{}),Or(this,"events",{}),Or(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Lo.warn("duplicate definition - constructor"):void Or(this,"deploy",e);case"function":t=this.functions;break;case"event":t=this.events;break;case"error":t=this.errors;break;default:return}let n=e.format();t[n]?Lo.warn("duplicate definition - "+n):t[n]=e})),this.deploy||Or(this,"deploy",ti.from({payable:!1,type:"constructor"})),Or(this,"_isInterface",!0)}format(e){e||(e=Vr.full),e===Vr.sighash&&Lo.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===Vr.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return La}static getAddress(e){return Ni(e)}static getSighash(e){return Xn(Ua(e.format()),0,4)}static getEventTopic(e){return Ua(e.format())}getFunction(e){if(zn(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Lo.throwArgumentError("no matching function","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.functions).filter((e=>e.split("(")[0]===t));return 0===n.length?Lo.throwArgumentError("no matching function","name",t):n.length>1&&Lo.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[ni.fromString(e).format()];return t||Lo.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(zn(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Lo.throwArgumentError("no matching event","topichash",t)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.events).filter((e=>e.split("(")[0]===t));return 0===n.length?Lo.throwArgumentError("no matching event","name",t):n.length>1&&Lo.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[Qr.fromString(e).format()];return t||Lo.throwArgumentError("no matching event","signature",e),t}getError(e){if(zn(e)){const t=kr(this.constructor,"getSighash");for(const n in this.errors){if(e===t(this.errors[n]))return this.errors[n]}Lo.throwArgumentError("no matching error","sighash",e)}if(-1===e.indexOf("(")){const t=e.trim(),n=Object.keys(this.errors).filter((e=>e.split("(")[0]===t));return 0===n.length?Lo.throwArgumentError("no matching error","name",t):n.length>1&&Lo.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[ni.fromString(e).format()];return t||Lo.throwArgumentError("no matching error","signature",e),t}getSighash(e){if("string"==typeof e)try{e=this.getFunction(e)}catch(t){try{e=this.getError(e)}catch(e){throw t}}return kr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),kr(this.constructor,"getEventTopic")(e)}_decodeParams(e,t){return this._abiCoder.decode(e,t)}_encodeParams(e,t){return this._abiCoder.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){"string"==typeof e&&(e=this.getError(e));const n=qn(t);return Vn(n.slice(0,4))!==this.getSighash(e)&&Lo.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Vn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Vn(jn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=qn(t);return Vn(n.slice(0,4))!==this.getSighash(e)&&Lo.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Vn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Vn(jn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=qn(t),r=null,i="",a=null,o=null,s=null;switch(n.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(e.outputs,n)}catch(e){}break;case 4:{const e=Vn(n.slice(0,4)),t=Ho[e];if(t)a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.signature,t.reason&&(r=a[0]),"Error"===o?i=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(a[0])}`:"Panic"===o&&(i=`; VM Exception while processing transaction: reverted with panic code ${a[0]}`);else try{const t=this.getError(e);a=this._abiCoder.decode(t.inputs,n.slice(4)),o=t.name,s=t.format()}catch(e){}break}}return Lo.throwError("call revert exception"+i,xn.errors.CALL_EXCEPTION,{method:e.format(),data:Vn(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Vn(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Lo.throwError("too many arguments for "+e.format(),xn.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?Ua(t):"bytes"===e.type?mi(Vn(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=ur.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),$n(Vn(t),32));for(t.forEach(((t,i)=>{let a=e.inputs[i];a.indexed?null==t?n.push(null):"array"===a.baseType||"tuple"===a.baseType?Lo.throwArgumentError("filtering with tuples or arrays not supported","contract."+a.name,t):Array.isArray(t)?n.push(t.map((e=>r(a,e)))):n.push(r(a,t)):null!=t&&Lo.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+a.name,t)}));n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(e,t){"string"==typeof e&&(e=this.getEvent(e));const n=[],r=[],i=[];return e.anonymous||n.push(this.getEventTopic(e)),t.length!==e.inputs.length&&Lo.throwArgumentError("event arguments/values mismatch","values",t),e.inputs.forEach(((e,a)=>{const o=t[a];if(e.indexed)if("string"===e.type)n.push(Ua(o));else if("bytes"===e.type)n.push(mi(o));else{if("tuple"===e.baseType||"array"===e.baseType)throw new Error("not implemented");n.push(this._abiCoder.encode([e.type],[o]))}else r.push(e),i.push(o)})),{data:this._abiCoder.encode(r,i),topics:n}}decodeEventLog(e,t,n){if("string"==typeof e&&(e=this.getEvent(e)),null!=n&&!e.anonymous){let t=this.getEventTopic(e);zn(n[0],32)&&n[0].toLowerCase()===t||Lo.throwError("fragment/topic mismatch",xn.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:t,value:n[0]}),n=n.slice(1)}let r=[],i=[],a=[];e.inputs.forEach(((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(r.push(Xr.fromObject({type:"bytes32",name:e.name})),a.push(!0)):(r.push(e),a.push(!1)):(i.push(e),a.push(!1))}));let o=null!=n?this._abiCoder.decode(r,jn(n)):null,s=this._abiCoder.decode(i,t,!0),u=[],c=0,l=0;e.inputs.forEach(((e,t)=>{if(e.indexed)if(null==o)u[t]=new Go({_isIndexed:!0,hash:null});else if(a[t])u[t]=new Go({_isIndexed:!0,hash:o[l++]});else try{u[t]=o[l++]}catch(e){u[t]=e}else try{u[t]=s[c++]}catch(e){u[t]=e}if(e.name&&null==u[e.name]){const n=u[t];n instanceof Error?Object.defineProperty(u,e.name,{enumerable:!0,get:()=>{throw zo(`property ${JSON.stringify(e.name)}`,n)}}):u[e.name]=n}}));for(let e=0;e<u.length;e++){const t=u[e];t instanceof Error&&Object.defineProperty(u,e,{enumerable:!0,get:()=>{throw zo(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new qo({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:ur.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new Uo({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Vn(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new jo({args:this._abiCoder.decode(n.inputs,"0x"+t.substring(10)),errorFragment:n,name:n.name,signature:n.format(),sighash:this.getSighash(n)}):null}static isInterface(e){return!(!e||!e._isInterface)}};var Vo=Object.freeze({__proto__:null,AbiCoder:Fa,ConstructorFragment:ti,ErrorFragment:ii,EventFragment:Qr,FormatTypes:Vr,Fragment:Yr,FunctionFragment:ni,Indexed:Go,Interface:Wo,LogDescription:Uo,ParamType:Xr,TransactionDescription:qo,checkResultErrors:li,defaultAbiCoder:La});var Ko=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Xo=new xn("abstract-provider/5.7.0");class Jo extends Fr{static isForkEvent(e){return!(!e||!e._isForkEvent)}}let Yo=class e{constructor(){Xo.checkAbstract(new.target,e),Or(this,"_isProvider",!0)}getFeeData(){return Ko(this,void 0,void 0,(function*(){const{block:e,gasPrice:t}=yield Sr({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch((e=>null))});let n=null,r=null,i=null;return e&&e.baseFeePerGas&&(n=e.baseFeePerGas,i=ur.from("1500000000"),r=e.baseFeePerGas.mul(2).add(i)),{lastBaseFeePerGas:n,maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:t}}))}addListener(e,t){return this.on(e,t)}removeListener(e,t){return this.off(e,t)}static isProvider(e){return!(!e||!e._isProvider)}};var Qo=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const $o=new xn("abstract-signer/5.7.0"),Zo=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],es=[xn.errors.INSUFFICIENT_FUNDS,xn.errors.NONCE_EXPIRED,xn.errors.REPLACEMENT_UNDERPRICED];let ts=class e{constructor(){$o.checkAbstract(new.target,e),Or(this,"_isSigner",!0)}getBalance(e){return Qo(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return Qo(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return Qo(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield Sr(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return Qo(this,void 0,void 0,(function*(){this._checkProvider("call");const n=yield Sr(this.checkTransaction(e));return yield this.provider.call(n,t)}))}sendTransaction(e){return Qo(this,void 0,void 0,(function*(){this._checkProvider("sendTransaction");const t=yield this.populateTransaction(e),n=yield this.signTransaction(t);return yield this.provider.sendTransaction(n)}))}getChainId(){return Qo(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return Qo(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return Qo(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return Qo(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===Zo.indexOf(t)&&$o.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=xr(e);return null==t.from?t.from=this.getAddress():t.from=Promise.all([Promise.resolve(t.from),this.getAddress()]).then((t=>(t[0].toLowerCase()!==t[1].toLowerCase()&&$o.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return Qo(this,void 0,void 0,(function*(){const t=yield Sr(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>Qo(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&$o.throwArgumentError("provided ENS name resolves to null","tx.to",e),t})))),t.to.catch((e=>{})));const n=null!=t.maxFeePerGas||null!=t.maxPriorityFeePerGas;if(null==t.gasPrice||2!==t.type&&!n?0!==t.type&&1!==t.type||!n||$o.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):$o.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",e),2!==t.type&&null!=t.type||null==t.maxFeePerGas||null==t.maxPriorityFeePerGas)if(0===t.type||1===t.type)null==t.gasPrice&&(t.gasPrice=this.getGasPrice());else{const e=yield this.getFeeData();if(null==t.type)if(null!=e.maxFeePerGas&&null!=e.maxPriorityFeePerGas)if(t.type=2,null!=t.gasPrice){const e=t.gasPrice;delete t.gasPrice,t.maxFeePerGas=e,t.maxPriorityFeePerGas=e}else null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas);else null!=e.gasPrice?(n&&$o.throwError("network does not support EIP-1559",xn.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):$o.throwError("failed to get consistent fee data",xn.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===t.type&&(null==t.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null==t.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas))}else t.type=2;return null==t.nonce&&(t.nonce=this.getTransactionCount("pending")),null==t.gasLimit&&(t.gasLimit=this.estimateGas(t).catch((e=>{if(es.indexOf(e.code)>=0)throw e;return $o.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",xn.errors.UNPREDICTABLE_GAS_LIMIT,{error:e,tx:t})}))),null==t.chainId?t.chainId=this.getChainId():t.chainId=Promise.all([Promise.resolve(t.chainId),this.getChainId()]).then((t=>(0!==t[1]&&t[0]!==t[1]&&$o.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield Sr(t)}))}_checkProvider(e){this.provider||$o.throwError("missing provider",xn.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}},ns=class e extends ts{constructor(e,t){super(),Or(this,"address",e),Or(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{$o.throwError(e,xn.errors.UNSUPPORTED_OPERATION,{operation:t})}))}signMessage(e){return this._fail("VoidSigner cannot sign messages","signMessage")}signTransaction(e){return this._fail("VoidSigner cannot sign transactions","signTransaction")}_signTypedData(e,t,n){return this._fail("VoidSigner cannot sign typed data","signTypedData")}connect(t){return new e(this.address,t)}};var rs={},is={},as=os;function os(e,t){if(!e)throw new Error(t||"Assertion failed")}os.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var ss="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},us=as,cs=bt(Object.freeze({__proto__:null,default:ss}));function ls(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function ds(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function fs(e){return 1===e.length?"0"+e:e}function ps(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}is.inherits=cs,is.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),i=0;i<e.length;i+=2)n.push(parseInt(e[i]+e[i+1],16))}else for(var r=0,i=0;i<e.length;i++){var a=e.charCodeAt(i);a<128?n[r++]=a:a<2048?(n[r++]=a>>6|192,n[r++]=63&a|128):ls(e,i)?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++i)),n[r++]=a>>18|240,n[r++]=a>>12&63|128,n[r++]=a>>6&63|128,n[r++]=63&a|128):(n[r++]=a>>12|224,n[r++]=a>>6&63|128,n[r++]=63&a|128)}else for(i=0;i<e.length;i++)n[i]=0|e[i];return n},is.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=fs(e[n].toString(16));return t},is.htonl=ds,is.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=ds(i)),n+=ps(i.toString(16))}return n},is.zero2=fs,is.zero8=ps,is.join32=function(e,t,n,r){var i=n-t;us(i%4==0);for(var a=new Array(i/4),o=0,s=t;o<a.length;o++,s+=4){var u;u="big"===r?e[s]<<24|e[s+1]<<16|e[s+2]<<8|e[s+3]:e[s+3]<<24|e[s+2]<<16|e[s+1]<<8|e[s],a[o]=u>>>0}return a},is.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var a=e[r];"big"===t?(n[i]=a>>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=255&a):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=255&a)}return n},is.rotr32=function(e,t){return e>>>t|e<<32-t},is.rotl32=function(e,t){return e<<t|e>>>32-t},is.sum32=function(e,t){return e+t>>>0},is.sum32_3=function(e,t,n){return e+t+n>>>0},is.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},is.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},is.sum64=function(e,t,n,r){var i=e[t],a=r+e[t+1]>>>0,o=(a<r?1:0)+n+i;e[t]=o>>>0,e[t+1]=a},is.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},is.sum64_lo=function(e,t,n,r){return t+r>>>0},is.sum64_4_hi=function(e,t,n,r,i,a,o,s){var u=0,c=t;return u+=(c=c+r>>>0)<t?1:0,u+=(c=c+a>>>0)<a?1:0,e+n+i+o+(u+=(c=c+s>>>0)<s?1:0)>>>0},is.sum64_4_lo=function(e,t,n,r,i,a,o,s){return t+r+a+s>>>0},is.sum64_5_hi=function(e,t,n,r,i,a,o,s,u,c){var l=0,d=t;return l+=(d=d+r>>>0)<t?1:0,l+=(d=d+a>>>0)<a?1:0,l+=(d=d+s>>>0)<s?1:0,e+n+i+o+u+(l+=(d=d+c>>>0)<c?1:0)>>>0},is.sum64_5_lo=function(e,t,n,r,i,a,o,s,u,c){return t+r+a+s+c>>>0},is.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},is.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},is.shr64_hi=function(e,t,n){return e>>>n},is.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0};var hs={},ms=is,ys=as;function gs(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}hs.BlockHash=gs,gs.prototype.update=function(e,t){if(e=ms.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=ms.join32(e,0,e.length-n,this.endian);for(var r=0;r<e.length;r+=this._delta32)this._update(e,r,r+this._delta32)}return this},gs.prototype.digest=function(e){return this.update(this._pad()),ys(null===this.pending),this._digest(e)},gs.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;a<this.padLength;a++)r[i++]=0;return r};var bs={},vs={},Ts=is.rotr32;function ws(e,t,n){return e&t^~e&n}function As(e,t,n){return e&t^e&n^t&n}function Es(e,t,n){return e^t^n}vs.ft_1=function(e,t,n,r){return 0===e?ws(t,n,r):1===e||3===e?Es(t,n,r):2===e?As(t,n,r):void 0},vs.ch32=ws,vs.maj32=As,vs.p32=Es,vs.s0_256=function(e){return Ts(e,2)^Ts(e,13)^Ts(e,22)},vs.s1_256=function(e){return Ts(e,6)^Ts(e,11)^Ts(e,25)},vs.g0_256=function(e){return Ts(e,7)^Ts(e,18)^e>>>3},vs.g1_256=function(e){return Ts(e,17)^Ts(e,19)^e>>>10};var _s=is,Is=hs,Rs=vs,Cs=_s.rotl32,Os=_s.sum32,ks=_s.sum32_5,Ss=Rs.ft_1,Ns=Is.BlockHash,xs=[1518500249,1859775393,2400959708,3395469782];function Ps(){if(!(this instanceof Ps))return new Ps;Ns.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}_s.inherits(Ps,Ns);var Ms=Ps;Ps.blockSize=512,Ps.outSize=160,Ps.hmacStrength=80,Ps.padLength=64,Ps.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=Cs(n[r-3]^n[r-8]^n[r-14]^n[r-16],1);var i=this.h[0],a=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4];for(r=0;r<n.length;r++){var c=~~(r/20),l=ks(Cs(i,5),Ss(c,a,o,s),u,n[r],xs[c]);u=s,s=o,o=Cs(a,30),a=i,i=l}this.h[0]=Os(this.h[0],i),this.h[1]=Os(this.h[1],a),this.h[2]=Os(this.h[2],o),this.h[3]=Os(this.h[3],s),this.h[4]=Os(this.h[4],u)},Ps.prototype._digest=function(e){return"hex"===e?_s.toHex32(this.h,"big"):_s.split32(this.h,"big")};var Bs=is,Ds=hs,Fs=vs,Ls=as,Us=Bs.sum32,qs=Bs.sum32_4,js=Bs.sum32_5,Gs=Fs.ch32,Hs=Fs.maj32,zs=Fs.s0_256,Ws=Fs.s1_256,Vs=Fs.g0_256,Ks=Fs.g1_256,Xs=Ds.BlockHash,Js=[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];function Ys(){if(!(this instanceof Ys))return new Ys;Xs.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Js,this.W=new Array(64)}Bs.inherits(Ys,Xs);var Qs=Ys;Ys.blockSize=512,Ys.outSize=256,Ys.hmacStrength=192,Ys.padLength=64,Ys.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=qs(Ks(n[r-2]),n[r-7],Vs(n[r-15]),n[r-16]);var i=this.h[0],a=this.h[1],o=this.h[2],s=this.h[3],u=this.h[4],c=this.h[5],l=this.h[6],d=this.h[7];for(Ls(this.k.length===n.length),r=0;r<n.length;r++){var f=js(d,Ws(u),Gs(u,c,l),this.k[r],n[r]),p=Us(zs(i),Hs(i,a,o));d=l,l=c,c=u,u=Us(s,f),s=o,o=a,a=i,i=Us(f,p)}this.h[0]=Us(this.h[0],i),this.h[1]=Us(this.h[1],a),this.h[2]=Us(this.h[2],o),this.h[3]=Us(this.h[3],s),this.h[4]=Us(this.h[4],u),this.h[5]=Us(this.h[5],c),this.h[6]=Us(this.h[6],l),this.h[7]=Us(this.h[7],d)},Ys.prototype._digest=function(e){return"hex"===e?Bs.toHex32(this.h,"big"):Bs.split32(this.h,"big")};var $s=is,Zs=Qs;function eu(){if(!(this instanceof eu))return new eu;Zs.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}$s.inherits(eu,Zs);var tu=eu;eu.blockSize=512,eu.outSize=224,eu.hmacStrength=192,eu.padLength=64,eu.prototype._digest=function(e){return"hex"===e?$s.toHex32(this.h.slice(0,7),"big"):$s.split32(this.h.slice(0,7),"big")};var nu=is,ru=hs,iu=as,au=nu.rotr64_hi,ou=nu.rotr64_lo,su=nu.shr64_hi,uu=nu.shr64_lo,cu=nu.sum64,lu=nu.sum64_hi,du=nu.sum64_lo,fu=nu.sum64_4_hi,pu=nu.sum64_4_lo,hu=nu.sum64_5_hi,mu=nu.sum64_5_lo,yu=ru.BlockHash,gu=[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];function bu(){if(!(this instanceof bu))return new bu;yu.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=gu,this.W=new Array(160)}nu.inherits(bu,yu);var vu=bu;function Tu(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function wu(e,t,n,r,i,a){var o=t&r^~t&a;return o<0&&(o+=4294967296),o}function Au(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function Eu(e,t,n,r,i,a){var o=t&r^t&a^r&a;return o<0&&(o+=4294967296),o}function _u(e,t){var n=au(e,t,28)^au(t,e,2)^au(t,e,7);return n<0&&(n+=4294967296),n}function Iu(e,t){var n=ou(e,t,28)^ou(t,e,2)^ou(t,e,7);return n<0&&(n+=4294967296),n}function Ru(e,t){var n=au(e,t,14)^au(e,t,18)^au(t,e,9);return n<0&&(n+=4294967296),n}function Cu(e,t){var n=ou(e,t,14)^ou(e,t,18)^ou(t,e,9);return n<0&&(n+=4294967296),n}function Ou(e,t){var n=au(e,t,1)^au(e,t,8)^su(e,t,7);return n<0&&(n+=4294967296),n}function ku(e,t){var n=ou(e,t,1)^ou(e,t,8)^uu(e,t,7);return n<0&&(n+=4294967296),n}function Su(e,t){var n=au(e,t,19)^au(t,e,29)^su(e,t,6);return n<0&&(n+=4294967296),n}function Nu(e,t){var n=ou(e,t,19)^ou(t,e,29)^uu(e,t,6);return n<0&&(n+=4294967296),n}bu.blockSize=1024,bu.outSize=512,bu.hmacStrength=192,bu.padLength=128,bu.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=Su(n[r-4],n[r-3]),a=Nu(n[r-4],n[r-3]),o=n[r-14],s=n[r-13],u=Ou(n[r-30],n[r-29]),c=ku(n[r-30],n[r-29]),l=n[r-32],d=n[r-31];n[r]=fu(i,a,o,s,u,c,l,d),n[r+1]=pu(i,a,o,s,u,c,l,d)}},bu.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],a=this.h[2],o=this.h[3],s=this.h[4],u=this.h[5],c=this.h[6],l=this.h[7],d=this.h[8],f=this.h[9],p=this.h[10],h=this.h[11],m=this.h[12],y=this.h[13],g=this.h[14],b=this.h[15];iu(this.k.length===n.length);for(var v=0;v<n.length;v+=2){var T=g,w=b,A=Ru(d,f),E=Cu(d,f),_=Tu(d,f,p,h,m),I=wu(d,f,p,h,m,y),R=this.k[v],C=this.k[v+1],O=n[v],k=n[v+1],S=hu(T,w,A,E,_,I,R,C,O,k),N=mu(T,w,A,E,_,I,R,C,O,k);T=_u(r,i),w=Iu(r,i),A=Au(r,i,a,o,s),E=Eu(r,i,a,o,s,u);var x=lu(T,w,A,E),P=du(T,w,A,E);g=m,b=y,m=p,y=h,p=d,h=f,d=lu(c,l,S,N),f=du(l,l,S,N),c=s,l=u,s=a,u=o,a=r,o=i,r=lu(S,N,x,P),i=du(S,N,x,P)}cu(this.h,0,r,i),cu(this.h,2,a,o),cu(this.h,4,s,u),cu(this.h,6,c,l),cu(this.h,8,d,f),cu(this.h,10,p,h),cu(this.h,12,m,y),cu(this.h,14,g,b)},bu.prototype._digest=function(e){return"hex"===e?nu.toHex32(this.h,"big"):nu.split32(this.h,"big")};var xu=is,Pu=vu;function Mu(){if(!(this instanceof Mu))return new Mu;Pu.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}xu.inherits(Mu,Pu);var Bu=Mu;Mu.blockSize=1024,Mu.outSize=384,Mu.hmacStrength=192,Mu.padLength=128,Mu.prototype._digest=function(e){return"hex"===e?xu.toHex32(this.h.slice(0,12),"big"):xu.split32(this.h.slice(0,12),"big")},bs.sha1=Ms,bs.sha224=tu,bs.sha256=Qs,bs.sha384=Bu,bs.sha512=vu;var Du={},Fu=is,Lu=hs,Uu=Fu.rotl32,qu=Fu.sum32,ju=Fu.sum32_3,Gu=Fu.sum32_4,Hu=Lu.BlockHash;function zu(){if(!(this instanceof zu))return new zu;Hu.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function Wu(e,t,n,r){return e<=15?t^n^r:e<=31?t&n|~t&r:e<=47?(t|~n)^r:e<=63?t&r|n&~r:t^(n|~r)}function Vu(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function Ku(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}Fu.inherits(zu,Hu),Du.ripemd160=zu,zu.blockSize=512,zu.outSize=160,zu.hmacStrength=192,zu.padLength=64,zu.prototype._update=function(e,t){for(var n=this.h[0],r=this.h[1],i=this.h[2],a=this.h[3],o=this.h[4],s=n,u=r,c=i,l=a,d=o,f=0;f<80;f++){var p=qu(Uu(Gu(n,Wu(f,r,i,a),e[Xu[f]+t],Vu(f)),Yu[f]),o);n=o,o=a,a=Uu(i,10),i=r,r=p,p=qu(Uu(Gu(s,Wu(79-f,u,c,l),e[Ju[f]+t],Ku(f)),Qu[f]),d),s=d,d=l,l=Uu(c,10),c=u,u=p}p=ju(this.h[1],i,l),this.h[1]=ju(this.h[2],a,d),this.h[2]=ju(this.h[3],o,s),this.h[3]=ju(this.h[4],n,u),this.h[4]=ju(this.h[0],r,c),this.h[0]=p},zu.prototype._digest=function(e){return"hex"===e?Fu.toHex32(this.h,"little"):Fu.split32(this.h,"little")};var Xu=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Ju=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Yu=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Qu=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],$u=is,Zu=as;function ec(e,t,n){if(!(this instanceof ec))return new ec(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init($u.toArray(t,n))}var tc=ec;ec.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),Zu(e.length<=this.blockSize);for(var t=e.length;t<this.blockSize;t++)e.push(0);for(t=0;t<e.length;t++)e[t]^=54;for(this.inner=(new this.Hash).update(e),t=0;t<e.length;t++)e[t]^=106;this.outer=(new this.Hash).update(e)},ec.prototype.update=function(e,t){return this.inner.update(e,t),this},ec.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)},function(e){var t=e;t.utils=is,t.common=hs,t.sha=bs,t.ripemd=Du,t.hmac=tc,t.sha1=t.sha.sha1,t.sha256=t.sha.sha256,t.sha224=t.sha.sha224,t.sha384=t.sha.sha384,t.sha512=t.sha.sha512,t.ripemd160=t.ripemd.ripemd160}(rs);var nc=gt(rs);function rc(e,t,n){return n={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&n.path)}},e(n,n.exports),n.exports}var ic=ac;function ac(e,t){if(!e)throw new Error(t||"Assertion failed")}ac.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var oc=rc((function(e,t){var n=t;function r(e){return 1===e.length?"0"+e:e}function i(e){for(var t="",n=0;n<e.length;n++)t+=r(e[n].toString(16));return t}n.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t){(e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e);for(r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16))}else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),a=i>>8,o=255&i;a?n.push(a,o):n.push(o)}return n},n.zero2=r,n.toHex=i,n.encode=function(e,t){return"hex"===t?i(e):e}})),sc=rc((function(e,t){var n=t;n.assert=ic,n.toArray=oc.toArray,n.zero2=oc.zero2,n.toHex=oc.toHex,n.encode=oc.encode,n.getNAF=function(e,t,n){var r=new Array(Math.max(e.bitLength(),n)+1);r.fill(0);for(var i=1<<t+1,a=e.clone(),o=0;o<r.length;o++){var s,u=a.andln(i-1);a.isOdd()?(s=u>(i>>1)-1?(i>>1)-u:u,a.isubn(s)):s=0,r[o]=s,a.iushrn(1)}return r},n.getJSF=function(e,t){var n=[[],[]];e=e.clone(),t=t.clone();for(var r,i=0,a=0;e.cmpn(-i)>0||t.cmpn(-a)>0;){var o,s,u=e.andln(3)+i&3,c=t.andln(3)+a&3;3===u&&(u=-1),3===c&&(c=-1),o=0==(1&u)?0:3!==(r=e.andln(7)+i&7)&&5!==r||2!==c?u:-u,n[0].push(o),s=0==(1&c)?0:3!==(r=t.andln(7)+a&7)&&5!==r||2!==u?c:-c,n[1].push(s),2*i===o+1&&(i=1-i),2*a===s+1&&(a=1-a),e.iushrn(1),t.iushrn(1)}return n},n.cachedProperty=function(e,t,n){var r="_"+t;e.prototype[t]=function(){return void 0!==this[r]?this[r]:this[r]=n.call(this)}},n.parseBytes=function(e){return"string"==typeof e?n.toArray(e,"hex"):e},n.intFromLE=function(e){return new An(e,"hex","le")}})),uc=sc.getNAF,cc=sc.getJSF,lc=sc.assert;function dc(e,t){this.type=e,this.p=new An(t.p,16),this.red=t.prime?An.red(t.prime):An.mont(this.p),this.zero=new An(0).toRed(this.red),this.one=new An(1).toRed(this.red),this.two=new An(2).toRed(this.red),this.n=t.n&&new An(t.n,16),this.g=t.g&&this.pointFromJSON(t.g,t.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var n=this.n&&this.p.div(this.n);!n||n.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var fc=dc;function pc(e,t){this.curve=e,this.type=t,this.precomputed=null}dc.prototype.point=function(){throw new Error("Not implemented")},dc.prototype.validate=function(){throw new Error("Not implemented")},dc.prototype._fixedNafMul=function(e,t){lc(e.precomputed);var n=e._getDoubles(),r=uc(t,1,this._bitLength),i=(1<<n.step+1)-(n.step%2==0?2:1);i/=3;var a,o,s=[];for(a=0;a<r.length;a+=n.step){o=0;for(var u=a+n.step-1;u>=a;u--)o=(o<<1)+r[u];s.push(o)}for(var c=this.jpoint(null,null,null),l=this.jpoint(null,null,null),d=i;d>0;d--){for(a=0;a<s.length;a++)(o=s[a])===d?l=l.mixedAdd(n.points[a]):o===-d&&(l=l.mixedAdd(n.points[a].neg()));c=c.add(l)}return c.toP()},dc.prototype._wnafMul=function(e,t){var n=4,r=e._getNAFPoints(n);n=r.wnd;for(var i=r.points,a=uc(t,n,this._bitLength),o=this.jpoint(null,null,null),s=a.length-1;s>=0;s--){for(var u=0;s>=0&&0===a[s];s--)u++;if(s>=0&&u++,o=o.dblp(u),s<0)break;var c=a[s];lc(0!==c),o="affine"===e.type?c>0?o.mixedAdd(i[c-1>>1]):o.mixedAdd(i[-c-1>>1].neg()):c>0?o.add(i[c-1>>1]):o.add(i[-c-1>>1].neg())}return"affine"===e.type?o.toP():o},dc.prototype._wnafMulAdd=function(e,t,n,r,i){var a,o,s,u=this._wnafT1,c=this._wnafT2,l=this._wnafT3,d=0;for(a=0;a<r;a++){var f=(s=t[a])._getNAFPoints(e);u[a]=f.wnd,c[a]=f.points}for(a=r-1;a>=1;a-=2){var p=a-1,h=a;if(1===u[p]&&1===u[h]){var m=[t[p],null,null,t[h]];0===t[p].y.cmp(t[h].y)?(m[1]=t[p].add(t[h]),m[2]=t[p].toJ().mixedAdd(t[h].neg())):0===t[p].y.cmp(t[h].y.redNeg())?(m[1]=t[p].toJ().mixedAdd(t[h]),m[2]=t[p].add(t[h].neg())):(m[1]=t[p].toJ().mixedAdd(t[h]),m[2]=t[p].toJ().mixedAdd(t[h].neg()));var y=[-3,-1,-5,-7,0,7,5,1,3],g=cc(n[p],n[h]);for(d=Math.max(g[0].length,d),l[p]=new Array(d),l[h]=new Array(d),o=0;o<d;o++){var b=0|g[0][o],v=0|g[1][o];l[p][o]=y[3*(b+1)+(v+1)],l[h][o]=0,c[p]=m}}else l[p]=uc(n[p],u[p],this._bitLength),l[h]=uc(n[h],u[h],this._bitLength),d=Math.max(l[p].length,d),d=Math.max(l[h].length,d)}var T=this.jpoint(null,null,null),w=this._wnafT4;for(a=d;a>=0;a--){for(var A=0;a>=0;){var E=!0;for(o=0;o<r;o++)w[o]=0|l[o][a],0!==w[o]&&(E=!1);if(!E)break;A++,a--}if(a>=0&&A++,T=T.dblp(A),a<0)break;for(o=0;o<r;o++){var _=w[o];0!==_&&(_>0?s=c[o][_-1>>1]:_<0&&(s=c[o][-_-1>>1].neg()),T="affine"===s.type?T.mixedAdd(s):T.add(s))}}for(a=0;a<r;a++)c[a]=null;return i?T:T.toP()},dc.BasePoint=pc,pc.prototype.eq=function(){throw new Error("Not implemented")},pc.prototype.validate=function(){return this.curve.validate(this)},dc.prototype.decodePoint=function(e,t){e=sc.toArray(e,t);var n=this.p.byteLength();if((4===e[0]||6===e[0]||7===e[0])&&e.length-1==2*n)return 6===e[0]?lc(e[e.length-1]%2==0):7===e[0]&&lc(e[e.length-1]%2==1),this.point(e.slice(1,1+n),e.slice(1+n,1+2*n));if((2===e[0]||3===e[0])&&e.length-1===n)return this.pointFromX(e.slice(1,1+n),3===e[0]);throw new Error("Unknown point format")},pc.prototype.encodeCompressed=function(e){return this.encode(e,!0)},pc.prototype._encode=function(e){var t=this.curve.p.byteLength(),n=this.getX().toArray("be",t);return e?[this.getY().isEven()?2:3].concat(n):[4].concat(n,this.getY().toArray("be",t))},pc.prototype.encode=function(e,t){return sc.encode(this._encode(t),e)},pc.prototype.precompute=function(e){if(this.precomputed)return this;var t={doubles:null,naf:null,beta:null};return t.naf=this._getNAFPoints(8),t.doubles=this._getDoubles(4,e),t.beta=this._getBeta(),this.precomputed=t,this},pc.prototype._hasDoubles=function(e){if(!this.precomputed)return!1;var t=this.precomputed.doubles;return!!t&&t.points.length>=Math.ceil((e.bitLength()+1)/t.step)},pc.prototype._getDoubles=function(e,t){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var n=[this],r=this,i=0;i<t;i+=e){for(var a=0;a<e;a++)r=r.dbl();n.push(r)}return{step:e,points:n}},pc.prototype._getNAFPoints=function(e){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var t=[this],n=(1<<e)-1,r=1===n?null:this.dbl(),i=1;i<n;i++)t[i]=t[i-1].add(r);return{wnd:e,points:t}},pc.prototype._getBeta=function(){return null},pc.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t};var hc=rc((function(e){"function"==typeof Object.create?e.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}})),mc=sc.assert;function yc(e){fc.call(this,"short",e),this.a=new An(e.a,16).toRed(this.red),this.b=new An(e.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(e),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}hc(yc,fc);var gc=yc;function bc(e,t,n,r){fc.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new An(t,16),this.y=new An(n,16),r&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function vc(e,t,n,r){fc.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new An(0)):(this.x=new An(t,16),this.y=new An(n,16),this.z=new An(r,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}yc.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new An(e.beta,16).toRed(this.red);else{var r=this._getEndoRoots(this.p);t=(t=r[0].cmp(r[1])<0?r[0]:r[1]).toRed(this.red)}if(e.lambda)n=new An(e.lambda,16);else{var i=this._getEndoRoots(this.n);0===this.g.mul(i[0]).x.cmp(this.g.x.redMul(t))?n=i[0]:(n=i[1],mc(0===this.g.mul(n).x.cmp(this.g.x.redMul(t))))}return{beta:t,lambda:n,basis:e.basis?e.basis.map((function(e){return{a:new An(e.a,16),b:new An(e.b,16)}})):this._getEndoBasis(n)}}},yc.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:An.mont(e),n=new An(2).toRed(t).redInvm(),r=n.redNeg(),i=new An(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},yc.prototype._getEndoBasis=function(e){for(var t,n,r,i,a,o,s,u,c,l=this.n.ushrn(Math.floor(this.n.bitLength()/2)),d=e,f=this.n.clone(),p=new An(1),h=new An(0),m=new An(0),y=new An(1),g=0;0!==d.cmpn(0);){var b=f.div(d);u=f.sub(b.mul(d)),c=m.sub(b.mul(p));var v=y.sub(b.mul(h));if(!r&&u.cmp(l)<0)t=s.neg(),n=p,r=u.neg(),i=c;else if(r&&2==++g)break;s=u,f=d,d=u,m=p,p=c,y=h,h=v}a=u.neg(),o=c;var T=r.sqr().add(i.sqr());return a.sqr().add(o.sqr()).cmp(T)>=0&&(a=t,o=n),r.negative&&(r=r.neg(),i=i.neg()),a.negative&&(a=a.neg(),o=o.neg()),[{a:r,b:i},{a:a,b:o}]},yc.prototype._endoSplit=function(e){var t=this.endo.basis,n=t[0],r=t[1],i=r.b.mul(e).divRound(this.n),a=n.b.neg().mul(e).divRound(this.n),o=i.mul(n.a),s=a.mul(r.a),u=i.mul(n.b),c=a.mul(r.b);return{k1:e.sub(o).sub(s),k2:u.add(c).neg()}},yc.prototype.pointFromX=function(e,t){(e=new An(e,16)).red||(e=e.toRed(this.red));var n=e.redSqr().redMul(e).redIAdd(e.redMul(this.a)).redIAdd(this.b),r=n.redSqrt();if(0!==r.redSqr().redSub(n).cmp(this.zero))throw new Error("invalid point");var i=r.fromRed().isOdd();return(t&&!i||!t&&i)&&(r=r.redNeg()),this.point(e,r)},yc.prototype.validate=function(e){if(e.inf)return!0;var t=e.x,n=e.y,r=this.a.redMul(t),i=t.redSqr().redMul(t).redIAdd(r).redIAdd(this.b);return 0===n.redSqr().redISub(i).cmpn(0)},yc.prototype._endoWnafMulAdd=function(e,t,n){for(var r=this._endoWnafT1,i=this._endoWnafT2,a=0;a<e.length;a++){var o=this._endoSplit(t[a]),s=e[a],u=s._getBeta();o.k1.negative&&(o.k1.ineg(),s=s.neg(!0)),o.k2.negative&&(o.k2.ineg(),u=u.neg(!0)),r[2*a]=s,r[2*a+1]=u,i[2*a]=o.k1,i[2*a+1]=o.k2}for(var c=this._wnafMulAdd(1,r,i,2*a,n),l=0;l<2*a;l++)r[l]=null,i[l]=null;return c},hc(bc,fc.BasePoint),yc.prototype.point=function(e,t,n){return new bc(this,e,t,n)},yc.prototype.pointFromJSON=function(e,t){return bc.fromJSON(this,e,t)},bc.prototype._getBeta=function(){if(this.curve.endo){var e=this.precomputed;if(e&&e.beta)return e.beta;var t=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(e){var n=this.curve,r=function(e){return n.point(e.x.redMul(n.endo.beta),e.y)};e.beta=t,t.precomputed={beta:null,naf:e.naf&&{wnd:e.naf.wnd,points:e.naf.points.map(r)},doubles:e.doubles&&{step:e.doubles.step,points:e.doubles.points.map(r)}}}return t}},bc.prototype.toJSON=function(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},bc.fromJSON=function(e,t,n){"string"==typeof t&&(t=JSON.parse(t));var r=e.point(t[0],t[1],n);if(!t[2])return r;function i(t){return e.point(t[0],t[1],n)}var a=t[2];return r.precomputed={beta:null,doubles:a.doubles&&{step:a.doubles.step,points:[r].concat(a.doubles.points.map(i))},naf:a.naf&&{wnd:a.naf.wnd,points:[r].concat(a.naf.points.map(i))}},r},bc.prototype.inspect=function(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},bc.prototype.isInfinity=function(){return this.inf},bc.prototype.add=function(e){if(this.inf)return e;if(e.inf)return this;if(this.eq(e))return this.dbl();if(this.neg().eq(e))return this.curve.point(null,null);if(0===this.x.cmp(e.x))return this.curve.point(null,null);var t=this.y.redSub(e.y);0!==t.cmpn(0)&&(t=t.redMul(this.x.redSub(e.x).redInvm()));var n=t.redSqr().redISub(this.x).redISub(e.x),r=t.redMul(this.x.redSub(n)).redISub(this.y);return this.curve.point(n,r)},bc.prototype.dbl=function(){if(this.inf)return this;var e=this.y.redAdd(this.y);if(0===e.cmpn(0))return this.curve.point(null,null);var t=this.curve.a,n=this.x.redSqr(),r=e.redInvm(),i=n.redAdd(n).redIAdd(n).redIAdd(t).redMul(r),a=i.redSqr().redISub(this.x.redAdd(this.x)),o=i.redMul(this.x.redSub(a)).redISub(this.y);return this.curve.point(a,o)},bc.prototype.getX=function(){return this.x.fromRed()},bc.prototype.getY=function(){return this.y.fromRed()},bc.prototype.mul=function(e){return e=new An(e,16),this.isInfinity()?this:this._hasDoubles(e)?this.curve._fixedNafMul(this,e):this.curve.endo?this.curve._endoWnafMulAdd([this],[e]):this.curve._wnafMul(this,e)},bc.prototype.mulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i):this.curve._wnafMulAdd(1,r,i,2)},bc.prototype.jmulAdd=function(e,t,n){var r=[this,t],i=[e,n];return this.curve.endo?this.curve._endoWnafMulAdd(r,i,!0):this.curve._wnafMulAdd(1,r,i,2,!0)},bc.prototype.eq=function(e){return this===e||this.inf===e.inf&&(this.inf||0===this.x.cmp(e.x)&&0===this.y.cmp(e.y))},bc.prototype.neg=function(e){if(this.inf)return this;var t=this.curve.point(this.x,this.y.redNeg());if(e&&this.precomputed){var n=this.precomputed,r=function(e){return e.neg()};t.precomputed={naf:n.naf&&{wnd:n.naf.wnd,points:n.naf.points.map(r)},doubles:n.doubles&&{step:n.doubles.step,points:n.doubles.points.map(r)}}}return t},bc.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},hc(vc,fc.BasePoint),yc.prototype.jpoint=function(e,t,n){return new vc(this,e,t,n)},vc.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var e=this.z.redInvm(),t=e.redSqr(),n=this.x.redMul(t),r=this.y.redMul(t).redMul(e);return this.curve.point(n,r)},vc.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},vc.prototype.add=function(e){if(this.isInfinity())return e;if(e.isInfinity())return this;var t=e.z.redSqr(),n=this.z.redSqr(),r=this.x.redMul(t),i=e.x.redMul(n),a=this.y.redMul(t.redMul(e.z)),o=e.y.redMul(n.redMul(this.z)),s=r.redSub(i),u=a.redSub(o);if(0===s.cmpn(0))return 0!==u.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var c=s.redSqr(),l=c.redMul(s),d=r.redMul(c),f=u.redSqr().redIAdd(l).redISub(d).redISub(d),p=u.redMul(d.redISub(f)).redISub(a.redMul(l)),h=this.z.redMul(e.z).redMul(s);return this.curve.jpoint(f,p,h)},vc.prototype.mixedAdd=function(e){if(this.isInfinity())return e.toJ();if(e.isInfinity())return this;var t=this.z.redSqr(),n=this.x,r=e.x.redMul(t),i=this.y,a=e.y.redMul(t).redMul(this.z),o=n.redSub(r),s=i.redSub(a);if(0===o.cmpn(0))return 0!==s.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var u=o.redSqr(),c=u.redMul(o),l=n.redMul(u),d=s.redSqr().redIAdd(c).redISub(l).redISub(l),f=s.redMul(l.redISub(d)).redISub(i.redMul(c)),p=this.z.redMul(o);return this.curve.jpoint(d,f,p)},vc.prototype.dblp=function(e){if(0===e)return this;if(this.isInfinity())return this;if(!e)return this.dbl();var t;if(this.curve.zeroA||this.curve.threeA){var n=this;for(t=0;t<e;t++)n=n.dbl();return n}var r=this.curve.a,i=this.curve.tinv,a=this.x,o=this.y,s=this.z,u=s.redSqr().redSqr(),c=o.redAdd(o);for(t=0;t<e;t++){var l=a.redSqr(),d=c.redSqr(),f=d.redSqr(),p=l.redAdd(l).redIAdd(l).redIAdd(r.redMul(u)),h=a.redMul(d),m=p.redSqr().redISub(h.redAdd(h)),y=h.redISub(m),g=p.redMul(y);g=g.redIAdd(g).redISub(f);var b=c.redMul(s);t+1<e&&(u=u.redMul(f)),a=m,s=b,c=g}return this.curve.jpoint(a,c.redMul(i),s)},vc.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},vc.prototype._zeroDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r),u=s.redSqr().redISub(o).redISub(o),c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),e=u,t=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var l=this.x.redSqr(),d=this.y.redSqr(),f=d.redSqr(),p=this.x.redAdd(d).redSqr().redISub(l).redISub(f);p=p.redIAdd(p);var h=l.redAdd(l).redIAdd(l),m=h.redSqr(),y=f.redIAdd(f);y=(y=y.redIAdd(y)).redIAdd(y),e=m.redISub(p).redISub(p),t=h.redMul(p.redISub(e)).redISub(y),n=(n=this.y.redMul(this.z)).redIAdd(n)}return this.curve.jpoint(e,t,n)},vc.prototype._threeDbl=function(){var e,t,n;if(this.zOne){var r=this.x.redSqr(),i=this.y.redSqr(),a=i.redSqr(),o=this.x.redAdd(i).redSqr().redISub(r).redISub(a);o=o.redIAdd(o);var s=r.redAdd(r).redIAdd(r).redIAdd(this.curve.a),u=s.redSqr().redISub(o).redISub(o);e=u;var c=a.redIAdd(a);c=(c=c.redIAdd(c)).redIAdd(c),t=s.redMul(o.redISub(u)).redISub(c),n=this.y.redAdd(this.y)}else{var l=this.z.redSqr(),d=this.y.redSqr(),f=this.x.redMul(d),p=this.x.redSub(l).redMul(this.x.redAdd(l));p=p.redAdd(p).redIAdd(p);var h=f.redIAdd(f),m=(h=h.redIAdd(h)).redAdd(h);e=p.redSqr().redISub(m),n=this.y.redAdd(this.z).redSqr().redISub(d).redISub(l);var y=d.redSqr();y=(y=(y=y.redIAdd(y)).redIAdd(y)).redIAdd(y),t=p.redMul(h.redISub(e)).redISub(y)}return this.curve.jpoint(e,t,n)},vc.prototype._dbl=function(){var e=this.curve.a,t=this.x,n=this.y,r=this.z,i=r.redSqr().redSqr(),a=t.redSqr(),o=n.redSqr(),s=a.redAdd(a).redIAdd(a).redIAdd(e.redMul(i)),u=t.redAdd(t),c=(u=u.redIAdd(u)).redMul(o),l=s.redSqr().redISub(c.redAdd(c)),d=c.redISub(l),f=o.redSqr();f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var p=s.redMul(d).redISub(f),h=n.redAdd(n).redMul(r);return this.curve.jpoint(l,p,h)},vc.prototype.trpl=function(){if(!this.curve.zeroA)return this.dbl().add(this);var e=this.x.redSqr(),t=this.y.redSqr(),n=this.z.redSqr(),r=t.redSqr(),i=e.redAdd(e).redIAdd(e),a=i.redSqr(),o=this.x.redAdd(t).redSqr().redISub(e).redISub(r),s=(o=(o=(o=o.redIAdd(o)).redAdd(o).redIAdd(o)).redISub(a)).redSqr(),u=r.redIAdd(r);u=(u=(u=u.redIAdd(u)).redIAdd(u)).redIAdd(u);var c=i.redIAdd(o).redSqr().redISub(a).redISub(s).redISub(u),l=t.redMul(c);l=(l=l.redIAdd(l)).redIAdd(l);var d=this.x.redMul(s).redISub(l);d=(d=d.redIAdd(d)).redIAdd(d);var f=this.y.redMul(c.redMul(u.redISub(c)).redISub(o.redMul(s)));f=(f=(f=f.redIAdd(f)).redIAdd(f)).redIAdd(f);var p=this.z.redAdd(o).redSqr().redISub(n).redISub(s);return this.curve.jpoint(d,f,p)},vc.prototype.mul=function(e,t){return e=new An(e,t),this.curve._wnafMul(this,e)},vc.prototype.eq=function(e){if("affine"===e.type)return this.eq(e.toJ());if(this===e)return!0;var t=this.z.redSqr(),n=e.z.redSqr();if(0!==this.x.redMul(n).redISub(e.x.redMul(t)).cmpn(0))return!1;var r=t.redMul(this.z),i=n.redMul(e.z);return 0===this.y.redMul(i).redISub(e.y.redMul(r)).cmpn(0)},vc.prototype.eqXToP=function(e){var t=this.z.redSqr(),n=e.toRed(this.curve.red).redMul(t);if(0===this.x.cmp(n))return!0;for(var r=e.clone(),i=this.curve.redN.redMul(t);;){if(r.iadd(this.curve.n),r.cmp(this.curve.p)>=0)return!1;if(n.redIAdd(i),0===this.x.cmp(n))return!0}},vc.prototype.inspect=function(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},vc.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var Tc=rc((function(e,t){var n=t;n.base=fc,n.short=gc,n.mont=null,n.edwards=null})),wc=rc((function(e,t){var n,r=t,i=sc.assert;function a(e){"short"===e.type?this.curve=new Tc.short(e):"edwards"===e.type?this.curve=new Tc.edwards(e):this.curve=new Tc.mont(e),this.g=this.curve.g,this.n=this.curve.n,this.hash=e.hash,i(this.g.validate(),"Invalid curve"),i(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function o(e,t){Object.defineProperty(r,e,{configurable:!0,enumerable:!0,get:function(){var n=new a(t);return Object.defineProperty(r,e,{configurable:!0,enumerable:!0,value:n}),n}})}r.PresetCurve=a,o("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:nc.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),o("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:nc.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),o("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:nc.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),o("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:nc.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),o("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:nc.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),o("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:nc.sha256,gRed:!1,g:["9"]}),o("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:nc.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{n=null.crash()}catch(e){n=void 0}o("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:nc.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})}));function Ac(e){if(!(this instanceof Ac))return new Ac(e);this.hash=e.hash,this.predResist=!!e.predResist,this.outLen=this.hash.outSize,this.minEntropy=e.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var t=oc.toArray(e.entropy,e.entropyEnc||"hex"),n=oc.toArray(e.nonce,e.nonceEnc||"hex"),r=oc.toArray(e.pers,e.persEnc||"hex");ic(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}var Ec=Ac;Ac.prototype._init=function(e,t,n){var r=e.concat(t).concat(n);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++)this.K[i]=0,this.V[i]=1;this._update(r),this._reseed=1,this.reseedInterval=281474976710656},Ac.prototype._hmac=function(){return new nc.hmac(this.hash,this.K)},Ac.prototype._update=function(e){var t=this._hmac().update(this.V).update([0]);e&&(t=t.update(e)),this.K=t.digest(),this.V=this._hmac().update(this.V).digest(),e&&(this.K=this._hmac().update(this.V).update([1]).update(e).digest(),this.V=this._hmac().update(this.V).digest())},Ac.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=oc.toArray(e,t),n=oc.toArray(n,r),ic(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},Ac.prototype.generate=function(e,t,n,r){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof t&&(r=n,n=t,t=null),n&&(n=oc.toArray(n,r||"hex"),this._update(n));for(var i=[];i.length<e;)this.V=this._hmac().update(this.V).digest(),i=i.concat(this.V);var a=i.slice(0,e);return this._update(n),this._reseed++,oc.encode(a,t)};var _c=sc.assert;function Ic(e,t){this.ec=e,this.priv=null,this.pub=null,t.priv&&this._importPrivate(t.priv,t.privEnc),t.pub&&this._importPublic(t.pub,t.pubEnc)}var Rc=Ic;Ic.fromPublic=function(e,t,n){return t instanceof Ic?t:new Ic(e,{pub:t,pubEnc:n})},Ic.fromPrivate=function(e,t,n){return t instanceof Ic?t:new Ic(e,{priv:t,privEnc:n})},Ic.prototype.validate=function(){var e=this.getPublic();return e.isInfinity()?{result:!1,reason:"Invalid public key"}:e.validate()?e.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},Ic.prototype.getPublic=function(e,t){return"string"==typeof e&&(t=e,e=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),t?this.pub.encode(t,e):this.pub},Ic.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},Ic.prototype._importPrivate=function(e,t){this.priv=new An(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},Ic.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?_c(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||_c(e.x&&e.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(e.x,e.y));this.pub=this.ec.curve.decodePoint(e,t)},Ic.prototype.derive=function(e){return e.validate()||_c(e.validate(),"public point not validated"),e.mul(this.priv).getX()},Ic.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},Ic.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},Ic.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Cc=sc.assert;function Oc(e,t){if(e instanceof Oc)return e;this._importDER(e,t)||(Cc(e.r&&e.s,"Signature without r or s"),this.r=new An(e.r,16),this.s=new An(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var kc=Oc;function Sc(){this.place=0}function Nc(e,t){var n=e[t.place++];if(!(128&n))return n;var r=15&n;if(0===r||r>4)return!1;for(var i=0,a=0,o=t.place;a<r;a++,o++)i<<=8,i|=e[o],i>>>=0;return!(i<=127)&&(t.place=o,i)}function xc(e){for(var t=0,n=e.length-1;!e[t]&&!(128&e[t+1])&&t<n;)t++;return 0===t?e:e.slice(t)}function Pc(e,t){if(t<128)e.push(t);else{var n=1+(Math.log(t)/Math.LN2>>>3);for(e.push(128|n);--n;)e.push(t>>>(n<<3)&255);e.push(t)}}Oc.prototype._importDER=function(e,t){e=sc.toArray(e,t);var n=new Sc;if(48!==e[n.place++])return!1;var r=Nc(e,n);if(!1===r)return!1;if(r+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var i=Nc(e,n);if(!1===i)return!1;var a=e.slice(n.place,i+n.place);if(n.place+=i,2!==e[n.place++])return!1;var o=Nc(e,n);if(!1===o)return!1;if(e.length!==o+n.place)return!1;var s=e.slice(n.place,o+n.place);if(0===a[0]){if(!(128&a[1]))return!1;a=a.slice(1)}if(0===s[0]){if(!(128&s[1]))return!1;s=s.slice(1)}return this.r=new An(a),this.s=new An(s),this.recoveryParam=null,!0},Oc.prototype.toDER=function(e){var t=this.r.toArray(),n=this.s.toArray();for(128&t[0]&&(t=[0].concat(t)),128&n[0]&&(n=[0].concat(n)),t=xc(t),n=xc(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];Pc(r,t.length),(r=r.concat(t)).push(2),Pc(r,n.length);var i=r.concat(n),a=[48];return Pc(a,i.length),a=a.concat(i),sc.encode(a,e)};var Mc=function(){throw new Error("unsupported")},Bc=sc.assert;function Dc(e){if(!(this instanceof Dc))return new Dc(e);"string"==typeof e&&(Bc(Object.prototype.hasOwnProperty.call(wc,e),"Unknown curve "+e),e=wc[e]),e instanceof wc.PresetCurve&&(e={curve:e}),this.curve=e.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=e.curve.g,this.g.precompute(e.curve.n.bitLength()+1),this.hash=e.hash||e.curve.hash}var Fc=Dc;Dc.prototype.keyPair=function(e){return new Rc(this,e)},Dc.prototype.keyFromPrivate=function(e,t){return Rc.fromPrivate(this,e,t)},Dc.prototype.keyFromPublic=function(e,t){return Rc.fromPublic(this,e,t)},Dc.prototype.genKeyPair=function(e){e||(e={});for(var t=new Ec({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Mc(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new An(2));;){var i=new An(t.generate(n));if(!(i.cmp(r)>0))return i.iaddn(1),this.keyFromPrivate(i)}},Dc.prototype._truncateToN=function(e,t){var n=8*e.byteLength()-this.n.bitLength();return n>0&&(e=e.ushrn(n)),!t&&e.cmp(this.n)>=0?e.sub(this.n):e},Dc.prototype.sign=function(e,t,n,r){"object"==typeof n&&(r=n,n=null),r||(r={}),t=this.keyFromPrivate(t,n),e=this._truncateToN(new An(e,16));for(var i=this.n.byteLength(),a=t.getPrivate().toArray("be",i),o=e.toArray("be",i),s=new Ec({hash:this.hash,entropy:a,nonce:o,pers:r.pers,persEnc:r.persEnc||"utf8"}),u=this.n.sub(new An(1)),c=0;;c++){var l=r.k?r.k(c):new An(s.generate(this.n.byteLength()));if(!((l=this._truncateToN(l,!0)).cmpn(1)<=0||l.cmp(u)>=0)){var d=this.g.mul(l);if(!d.isInfinity()){var f=d.getX(),p=f.umod(this.n);if(0!==p.cmpn(0)){var h=l.invm(this.n).mul(p.mul(t.getPrivate()).iadd(e));if(0!==(h=h.umod(this.n)).cmpn(0)){var m=(d.getY().isOdd()?1:0)|(0!==f.cmp(p)?2:0);return r.canonical&&h.cmp(this.nh)>0&&(h=this.n.sub(h),m^=1),new kc({r:p,s:h,recoveryParam:m})}}}}}},Dc.prototype.verify=function(e,t,n,r){e=this._truncateToN(new An(e,16)),n=this.keyFromPublic(n,r);var i=(t=new kc(t,"hex")).r,a=t.s;if(i.cmpn(1)<0||i.cmp(this.n)>=0)return!1;if(a.cmpn(1)<0||a.cmp(this.n)>=0)return!1;var o,s=a.invm(this.n),u=s.mul(e).umod(this.n),c=s.mul(i).umod(this.n);return this.curve._maxwellTrick?!(o=this.g.jmulAdd(u,n.getPublic(),c)).isInfinity()&&o.eqXToP(i):!(o=this.g.mulAdd(u,n.getPublic(),c)).isInfinity()&&0===o.getX().umod(this.n).cmp(i)},Dc.prototype.recoverPubKey=function(e,t,n,r){Bc((3&n)===n,"The recovery param is more than two bits"),t=new kc(t,r);var i=this.n,a=new An(e),o=t.r,s=t.s,u=1&n,c=n>>1;if(o.cmp(this.curve.p.umod(this.curve.n))>=0&&c)throw new Error("Unable to find sencond key candinate");o=c?this.curve.pointFromX(o.add(this.curve.n),u):this.curve.pointFromX(o,u);var l=t.r.invm(i),d=i.sub(a).mul(l).umod(i),f=s.mul(l).umod(i);return this.g.mulAdd(d,o,f)},Dc.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new kc(t,r)).recoveryParam)return t.recoveryParam;for(var i=0;i<4;i++){var a;try{a=this.recoverPubKey(e,t,i)}catch(e){continue}if(a.eq(n))return i}throw new Error("Unable to find valid recovery factor")};var Lc=rc((function(e,t){var n=t;n.version="6.5.4",n.utils=sc,n.rand=function(){throw new Error("unsupported")},n.curve=Tc,n.curves=wc,n.ec=Fc,n.eddsa=null})),Uc=Lc.ec;const qc=new xn("signing-key/5.7.0");let jc=null;function Gc(){return jc||(jc=new Uc("secp256k1")),jc}class Hc{constructor(e){Or(this,"curve","secp256k1"),Or(this,"privateKey",Vn(e)),32!==Kn(this.privateKey)&&qc.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Gc().keyFromPrivate(qn(this.privateKey));Or(this,"publicKey","0x"+t.getPublic(!1,"hex")),Or(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),Or(this,"_isSigningKey",!0)}_addPoint(e){const t=Gc().keyFromPublic(qn(this.publicKey)),n=Gc().keyFromPublic(qn(e));return"0x"+t.pub.add(n.pub).encodeCompressed("hex")}signDigest(e){const t=Gc().keyFromPrivate(qn(this.privateKey)),n=qn(e);32!==n.length&&qc.throwArgumentError("bad digest length","digest",e);const r=t.sign(n,{canonical:!0});return Zn({recoveryParam:r.recoveryParam,r:$n("0x"+r.r.toString(16),32),s:$n("0x"+r.s.toString(16),32)})}computeSharedSecret(e){const t=Gc().keyFromPrivate(qn(this.privateKey)),n=Gc().keyFromPublic(qn(Wc(e)));return $n("0x"+t.derive(n.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function zc(e,t){const n=Zn(t),r={r:qn(n.r),s:qn(n.s)};return"0x"+Gc().recoverPubKey(qn(e),r,n.recoveryParam).encode("hex",!1)}function Wc(e,t){const n=qn(e);if(32===n.length){const e=new Hc(n);return t?"0x"+Gc().keyFromPrivate(n).getPublic(!0,"hex"):e.publicKey}return 33===n.length?t?Vn(n):"0x"+Gc().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?t?"0x"+Gc().keyFromPublic(n).getPublic(!0,"hex"):Vn(n):qc.throwArgumentError("invalid public or private key","key","[REDACTED]")}var Vc=Object.freeze({__proto__:null,SigningKey:Hc,computePublicKey:Wc,recoverPublicKey:zc});const Kc=new xn("transactions/5.7.0");var Xc;function Jc(e){return"0x"===e?null:Ni(e)}function Yc(e){return"0x"===e?Yi:ur.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Xc||(Xc={}));const Qc=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],$c={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function Zc(e){return Ni(Xn(mi(Xn(Wc(e),1)),12))}function el(e,t){return Zc(zc(qn(e),t))}function tl(e,t){const n=Gn(ur.from(e).toHexString());return n.length>32&&Kc.throwArgumentError("invalid length for "+t,"transaction:"+t,e),n}function nl(e,t){return{address:Ni(e),storageKeys:(t||[]).map(((t,n)=>(32!==Kn(t)&&Kc.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase())))}}function rl(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&Kc.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),nl(e[0],e[1])):nl(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const n=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return nl(t,Object.keys(n).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}function il(e){return rl(e).map((e=>[e.address,e.storageKeys]))}function al(e,t){if(null!=e.gasPrice){const t=ur.from(e.gasPrice),n=ur.from(e.maxFeePerGas||0);t.eq(n)||Kc.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:n})}const n=[tl(e.chainId||0,"chainId"),tl(e.nonce||0,"nonce"),tl(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),tl(e.maxFeePerGas||0,"maxFeePerGas"),tl(e.gasLimit||0,"gasLimit"),null!=e.to?Ni(e.to):"0x",tl(e.value||0,"value"),e.data||"0x",il(e.accessList||[])];if(t){const e=Zn(t);n.push(tl(e.recoveryParam,"recoveryParam")),n.push(Gn(e.r)),n.push(Gn(e.s))}return Jn(["0x02",wi(n)])}function ol(e,t){const n=[tl(e.chainId||0,"chainId"),tl(e.nonce||0,"nonce"),tl(e.gasPrice||0,"gasPrice"),tl(e.gasLimit||0,"gasLimit"),null!=e.to?Ni(e.to):"0x",tl(e.value||0,"value"),e.data||"0x",il(e.accessList||[])];if(t){const e=Zn(t);n.push(tl(e.recoveryParam,"recoveryParam")),n.push(Gn(e.r)),n.push(Gn(e.s))}return Jn(["0x01",wi(n)])}function sl(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&Kc.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){Nr(e,$c);const n=[];Qc.forEach((function(t){let r=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),r=qn(Vn(r,i)),t.length&&r.length!==t.length&&r.length>0&&Kc.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r),t.maxLength&&(r=Gn(r),r.length>t.maxLength&&Kc.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r)),n.push(Vn(r))}));let r=0;if(null!=e.chainId?(r=e.chainId,"number"!=typeof r&&Kc.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Fn(t)&&t.v>28&&(r=Math.floor((t.v-35)/2)),0!==r&&(n.push(Vn(r)),n.push("0x"),n.push("0x")),!t)return wi(n);const i=Zn(t);let a=27+i.recoveryParam;return 0!==r?(n.pop(),n.pop(),n.pop(),a+=2*r+8,i.v>28&&i.v!==a&&Kc.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==a&&Kc.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),n.push(Vn(a)),n.push(Gn(qn(i.r))),n.push(Gn(qn(i.s))),wi(n)}(e,t);switch(e.type){case 1:return ol(e,t);case 2:return al(e,t)}return Kc.throwError(`unsupported transaction type: ${e.type}`,xn.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function ul(e,t,n){try{const n=Yc(t[0]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");e.v=n}catch(e){Kc.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=$n(t[1],32),e.s=$n(t[2],32);try{const t=mi(n(e));e.from=el(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}function cl(e){const t=qn(e);if(t[0]>127)return function(e){const t=_i(e);9!==t.length&&6!==t.length&&Kc.throwArgumentError("invalid raw transaction","rawTransaction",e);const n={nonce:Yc(t[0]).toNumber(),gasPrice:Yc(t[1]),gasLimit:Yc(t[2]),to:Jc(t[3]),value:Yc(t[4]),data:t[5],chainId:0};if(6===t.length)return n;try{n.v=ur.from(t[6]).toNumber()}catch(e){return n}if(n.r=$n(t[7],32),n.s=$n(t[8],32),ur.from(n.r).isZero()&&ur.from(n.s).isZero())n.chainId=n.v,n.v=0;else{n.chainId=Math.floor((n.v-35)/2),n.chainId<0&&(n.chainId=0);let r=n.v-27;const i=t.slice(0,6);0!==n.chainId&&(i.push(Vn(n.chainId)),i.push("0x"),i.push("0x"),r-=2*n.chainId+8);const a=mi(wi(i));try{n.from=el(a,{r:Vn(n.r),s:Vn(n.s),recoveryParam:r})}catch(e){}n.hash=mi(e)}return n.type=null,n}(t);switch(t[0]){case 1:return function(e){const t=_i(e.slice(1));8!==t.length&&11!==t.length&&Kc.throwArgumentError("invalid component count for transaction type: 1","payload",Vn(e));const n={type:1,chainId:Yc(t[0]).toNumber(),nonce:Yc(t[1]).toNumber(),gasPrice:Yc(t[2]),gasLimit:Yc(t[3]),to:Jc(t[4]),value:Yc(t[5]),data:t[6],accessList:rl(t[7])};return 8===t.length||(n.hash=mi(e),ul(n,t.slice(8),ol)),n}(t);case 2:return function(e){const t=_i(e.slice(1));9!==t.length&&12!==t.length&&Kc.throwArgumentError("invalid component count for transaction type: 2","payload",Vn(e));const n=Yc(t[2]),r=Yc(t[3]),i={type:2,chainId:Yc(t[0]).toNumber(),nonce:Yc(t[1]).toNumber(),maxPriorityFeePerGas:n,maxFeePerGas:r,gasPrice:null,gasLimit:Yc(t[4]),to:Jc(t[5]),value:Yc(t[6]),data:t[7],accessList:rl(t[8])};return 9===t.length||(i.hash=mi(e),ul(i,t.slice(9),al)),i}(t)}return Kc.throwError(`unsupported transaction type: ${t[0]}`,xn.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}var ll=Object.freeze({__proto__:null,get TransactionTypes(){return Xc},accessListify:rl,computeAddress:Zc,parse:cl,recoverAddress:el,serialize:sl});var dl=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const fl=new xn("contracts/5.7.0"),pl={chainId:!0,data:!0,from:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0,customData:!0,ccipReadEnabled:!0};function hl(e,t){return dl(this,void 0,void 0,(function*(){const n=yield t;"string"!=typeof n&&fl.throwArgumentError("invalid address or ENS name","name",n);try{return Ni(n)}catch(e){}e||fl.throwError("a provider or signer is needed to resolve ENS names",xn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&fl.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r}))}function ml(e,t,n){return dl(this,void 0,void 0,(function*(){return Array.isArray(n)?yield Promise.all(n.map(((n,r)=>ml(e,Array.isArray(t)?t[r]:t[n.name],n)))):"address"===n.type?yield hl(e,t):"tuple"===n.type?yield ml(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>ml(e,t,n.arrayChildren)))):Promise.reject(fl.makeError("invalid value for array",xn.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function yl(e,t,n){return dl(this,void 0,void 0,(function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=xr(n.pop())),fl.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from?r.from=Sr({override:hl(e.signer,r.from),signer:e.signer.getAddress()}).then((e=>dl(this,void 0,void 0,(function*(){return Ni(e.signer)!==e.override&&fl.throwError("Contract with a Signer cannot override from",xn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):r.from=e.signer.getAddress():r.from&&(r.from=hl(e.provider,r.from));const i=yield Sr({args:ml(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:Sr(r)||{}}),a=e.interface.encodeFunctionData(t,i.args),o={data:a,to:i.address},s=i.overrides;if(null!=s.nonce&&(o.nonce=ur.from(s.nonce).toNumber()),null!=s.gasLimit&&(o.gasLimit=ur.from(s.gasLimit)),null!=s.gasPrice&&(o.gasPrice=ur.from(s.gasPrice)),null!=s.maxFeePerGas&&(o.maxFeePerGas=ur.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(o.maxPriorityFeePerGas=ur.from(s.maxPriorityFeePerGas)),null!=s.from&&(o.from=s.from),null!=s.type&&(o.type=s.type),null!=s.accessList&&(o.accessList=rl(s.accessList)),null==o.gasLimit&&null!=t.gas){let e=21e3;const n=qn(a);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);o.gasLimit=ur.from(t.gas).add(e)}if(s.value){const e=ur.from(s.value);e.isZero()||t.payable||fl.throwError("non-payable method cannot override value",xn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),o.value=e}s.customData&&(o.customData=xr(s.customData)),s.ccipReadEnabled&&(o.ccipReadEnabled=!!s.ccipReadEnabled),delete r.nonce,delete r.gasLimit,delete r.gasPrice,delete r.from,delete r.value,delete r.type,delete r.accessList,delete r.maxFeePerGas,delete r.maxPriorityFeePerGas,delete r.customData,delete r.ccipReadEnabled;const u=Object.keys(r).filter((e=>null!=r[e]));return u.length&&fl.throwError(`cannot override ${u.map((e=>JSON.stringify(e))).join(",")}`,xn.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),o}))}function gl(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then((t=>(t.events=t.logs.map((n=>{let r=Dr(n),i=null;try{i=e.interface.parseLog(n)}catch(e){}return i&&(r.args=i.args,r.decode=(t,n)=>e.interface.decodeEventLog(i.eventFragment,t,n),r.event=i.name,r.eventSignature=i.signature),r.removeListener=()=>e.provider,r.getBlock=()=>e.provider.getBlock(t.blockHash),r.getTransaction=()=>e.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>Promise.resolve(t),r})),t)))}function bl(e,t,n){const r=e.signer||e.provider;return function(...i){return dl(this,void 0,void 0,(function*(){let a;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=xr(i.pop());null!=e.blockTag&&(a=yield e.blockTag),delete e.blockTag,i.push(e)}null!=e.deployTransaction&&(yield e._deployed(a));const o=yield yl(e,t,i),s=yield r.call(o,a);try{let r=e.interface.decodeFunctionResult(t,s);return n&&1===t.outputs.length&&(r=r[0]),r}catch(t){throw t.code===xn.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=o),t}}))}}function vl(e,t,n){return t.constant?bl(e,t,n):function(e,t){return function(...n){return dl(this,void 0,void 0,(function*(){e.signer||fl.throwError("sending a transaction requires a signer",xn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield yl(e,t,n),i=yield e.signer.sendTransaction(r);return gl(e,i),i}))}}(e,t)}function Tl(e){return!e.address||null!=e.topics&&0!==e.topics.length?(e.address||"*")+"@"+(e.topics?e.topics.map((e=>Array.isArray(e)?e.join("|"):e)).join(":"):""):"*"}let wl=class{constructor(e,t){Or(this,"tag",e),Or(this,"filter",t),this._listeners=[]}addListener(e,t){this._listeners.push({listener:e,once:t})}removeListener(e){let t=!1;this._listeners=this._listeners.filter((n=>!(!t&&n.listener===e)||(t=!0,!1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((e=>e.listener))}listenerCount(){return this._listeners.length}run(e){const t=this.listenerCount();return this._listeners=this._listeners.filter((t=>{const n=e.slice();return setTimeout((()=>{t.listener.apply(this,n)}),0),!t.once})),t}prepareEvent(e){}getEmit(e){return[e]}},Al=class extends wl{constructor(){super("error",null)}},El=class extends wl{constructor(e,t,n,r){const i={address:e};let a=t.getEventTopic(n);r?(a!==r[0]&&fl.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[a],super(Tl(i),i),Or(this,"address",e),Or(this,"interface",t),Or(this,"fragment",n)}prepareEvent(e){super.prepareEvent(e),e.event=this.fragment.name,e.eventSignature=this.fragment.format(),e.decode=(e,t)=>this.interface.decodeEventLog(this.fragment,e,t);try{e.args=this.interface.decodeEventLog(this.fragment,e.data,e.topics)}catch(t){e.args=null,e.decodeError=t}}getEmit(e){const t=li(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}},_l=class extends wl{constructor(e,t){super("*",{address:e}),Or(this,"address",e),Or(this,"interface",t)}prepareEvent(e){super.prepareEvent(e);try{const t=this.interface.parseLog(e);e.event=t.name,e.eventSignature=t.signature,e.decode=(e,n)=>this.interface.decodeEventLog(t.eventFragment,e,n),e.args=t.args}catch(e){}}},Il=class{constructor(e,t,n){Or(this,"interface",kr(new.target,"getInterface")(t)),null==n?(Or(this,"provider",null),Or(this,"signer",null)):ts.isSigner(n)?(Or(this,"provider",n.provider||null),Or(this,"signer",n)):Yo.isProvider(n)?(Or(this,"provider",n),Or(this,"signer",null)):fl.throwArgumentError("invalid signer or provider","signerOrProvider",n),Or(this,"callStatic",{}),Or(this,"estimateGas",{}),Or(this,"functions",{}),Or(this,"populateTransaction",{}),Or(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const n=this.interface.events[t];Or(this.filters,t,((...e)=>({address:this.address,topics:this.interface.encodeFilterTopics(n,e)}))),e[n.name]||(e[n.name]=[]),e[n.name].push(t)})),Object.keys(e).forEach((t=>{const n=e[t];1===n.length?Or(this.filters,t,this.filters[n[0]]):fl.warn(`Duplicate definition of ${t} (${n.join(", ")})`)}))}if(Or(this,"_runningEvents",{}),Or(this,"_wrappedEmits",{}),null==e&&fl.throwArgumentError("invalid contract address or ENS name","addressOrName",e),Or(this,"address",e),this.provider)Or(this,"resolvedAddress",hl(this.provider,e));else try{Or(this,"resolvedAddress",Promise.resolve(Ni(e)))}catch(e){fl.throwError("provider is required to use ENS name as contract address",xn.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch((e=>{}));const r={},i={};Object.keys(this.interface.functions).forEach((e=>{const t=this.interface.functions[e];if(i[e])fl.warn(`Duplicate ABI entry for ${JSON.stringify(e)}`);else{i[e]=!0;{const n=t.name;r[`%${n}`]||(r[`%${n}`]=[]),r[`%${n}`].push(e)}null==this[e]&&Or(this,e,vl(this,t,!0)),null==this.functions[e]&&Or(this.functions,e,vl(this,t,!1)),null==this.callStatic[e]&&Or(this.callStatic,e,bl(this,t,!0)),null==this.populateTransaction[e]&&Or(this.populateTransaction,e,function(e,t){return function(...n){return yl(e,t,n)}}(this,t)),null==this.estimateGas[e]&&Or(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return dl(this,void 0,void 0,(function*(){n||fl.throwError("estimate require a provider or signer",xn.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield yl(e,t,r);return yield n.estimateGas(i)}))}}(this,t))}})),Object.keys(r).forEach((e=>{const t=r[e];if(t.length>1)return;e=e.substring(1);const n=t[0];try{null==this[e]&&Or(this,e,this[n])}catch(e){}null==this.functions[e]&&Or(this.functions,e,this.functions[n]),null==this.callStatic[e]&&Or(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&Or(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&Or(this.estimateGas,e,this.estimateGas[n])}))}static getContractAddress(e){return Mi(e)}static getInterface(e){return Wo.isInterface(e)?e:new Wo(e)}deployed(){return this._deployed()}_deployed(e){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,e).then((e=>("0x"===e&&fl.throwError("contract not deployed",xn.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||fl.throwError("sending a transactions require a signer",xn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=xr(e||{});return["from","to"].forEach((function(e){null!=t[e]&&fl.throwError("cannot override "+e,xn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new ns(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&Or(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Go.isIndexed(e)}_normalizeRunningEvent(e){return this._runningEvents[e.tag]?this._runningEvents[e.tag]:e}_getRunningEvent(e){if("string"==typeof e){if("error"===e)return this._normalizeRunningEvent(new Al);if("event"===e)return this._normalizeRunningEvent(new wl("event",null));if("*"===e)return this._normalizeRunningEvent(new _l(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new El(this.address,this.interface,t))}if(e.topics&&e.topics.length>0){try{const t=e.topics[0];if("string"!=typeof t)throw new Error("invalid topic");const n=this.interface.getEvent(t);return this._normalizeRunningEvent(new El(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new wl(Tl(t),t))}return this._normalizeRunningEvent(new _l(this.address,this.interface))}_checkRunningEvents(e){if(0===e.listenerCount()){delete this._runningEvents[e.tag];const t=this._wrappedEmits[e.tag];t&&e.filter&&(this.provider.off(e.filter,t),delete this._wrappedEmits[e.tag])}}_wrapEvent(e,t,n){const r=Dr(t);return r.removeListener=()=>{n&&(e.removeListener(n),this._checkRunningEvents(e))},r.getBlock=()=>this.provider.getBlock(t.blockHash),r.getTransaction=()=>this.provider.getTransaction(t.transactionHash),r.getTransactionReceipt=()=>this.provider.getTransactionReceipt(t.transactionHash),e.prepareEvent(r),r}_addEventListener(e,t,n){if(this.provider||fl.throwError("events require a provider or a signer with a provider",xn.errors.UNSUPPORTED_OPERATION,{operation:"once"}),e.addListener(t,n),this._runningEvents[e.tag]=e,!this._wrappedEmits[e.tag]){const n=n=>{let r=this._wrapEvent(e,n,t);if(null==r.decodeError)try{const t=e.getEmit(r);this.emit(e.filter,...t)}catch(e){r.decodeError=e.error}null!=e.filter&&this.emit("event",r),null!=r.decodeError&&this.emit("error",r.decodeError,r)};this._wrappedEmits[e.tag]=n,null!=e.filter&&this.provider.on(e.filter,n)}}queryFilter(e,t,n){const r=this._getRunningEvent(e),i=xr(r.filter);return"string"==typeof t&&zn(t,32)?(null!=n&&fl.throwArgumentError("cannot specify toBlock with blockhash","toBlock",n),i.blockHash=t):(i.fromBlock=null!=t?t:0,i.toBlock=null!=n?n:"latest"),this.provider.getLogs(i).then((e=>e.map((e=>this._wrapEvent(r,e,null)))))}on(e,t){return this._addEventListener(this._getRunningEvent(e),t,!1),this}once(e,t){return this._addEventListener(this._getRunningEvent(e),t,!0),this}emit(e,...t){if(!this.provider)return!1;const n=this._getRunningEvent(e),r=n.run(t)>0;return this._checkRunningEvents(n),r}listenerCount(e){return this.provider?null==e?Object.keys(this._runningEvents).reduce(((e,t)=>e+this._runningEvents[t].listenerCount()),0):this._getRunningEvent(e).listenerCount():0}listeners(e){if(!this.provider)return[];if(null==e){const e=[];for(let t in this._runningEvents)this._runningEvents[t].listeners().forEach((t=>{e.push(t)}));return e}return this._getRunningEvent(e).listeners()}removeAllListeners(e){if(!this.provider)return this;if(null==e){for(const e in this._runningEvents){const t=this._runningEvents[e];t.removeAllListeners(),this._checkRunningEvents(t)}return this}const t=this._getRunningEvent(e);return t.removeAllListeners(),this._checkRunningEvents(t),this}off(e,t){if(!this.provider)return this;const n=this._getRunningEvent(e);return n.removeListener(t),this._checkRunningEvents(n),this}removeListener(e,t){return this.off(e,t)}},Rl=class extends Il{};class Cl{constructor(e,t,n){let r=null;r="string"==typeof t?t:Un(t)?Vn(t):t&&"string"==typeof t.object?t.object:"!","0x"!==r.substring(0,2)&&(r="0x"+r),(!zn(r)||r.length%2)&&fl.throwArgumentError("invalid bytecode","bytecode",t),n&&!ts.isSigner(n)&&fl.throwArgumentError("invalid signer","signer",n),Or(this,"bytecode",r),Or(this,"interface",kr(new.target,"getInterface")(e)),Or(this,"signer",n||null)}getDeployTransaction(...e){let t={};if(e.length===this.interface.deploy.inputs.length+1&&"object"==typeof e[e.length-1]){t=xr(e.pop());for(const e in t)if(!pl[e])throw new Error("unknown transaction override "+e)}if(["data","from","to"].forEach((e=>{null!=t[e]&&fl.throwError("cannot override "+e,xn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.value){ur.from(t.value).isZero()||this.interface.deploy.payable||fl.throwError("non-payable constructor cannot override value",xn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:t.value})}return fl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor"),t.data=Vn(jn([this.bytecode,this.interface.encodeDeploy(e)])),t}deploy(...e){return dl(this,void 0,void 0,(function*(){let t={};e.length===this.interface.deploy.inputs.length+1&&(t=e.pop()),fl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor");const n=yield ml(this.signer,e,this.interface.deploy.inputs);n.push(t);const r=this.getDeployTransaction(...n),i=yield this.signer.sendTransaction(r),a=kr(this.constructor,"getContractAddress")(i),o=kr(this.constructor,"getContract")(a,this.interface,this.signer);return gl(o,i),Or(o,"deployTransaction",i),o}))}attach(e){return this.constructor.getContract(e,this.interface,this.signer)}connect(e){return new this.constructor(this.interface,this.bytecode,e)}static fromSolidity(e,t){null==e&&fl.throwError("missing compiler output",xn.errors.MISSING_ARGUMENT,{argument:"compilerOutput"}),"string"==typeof e&&(e=JSON.parse(e));const n=e.abi;let r=null;return e.bytecode?r=e.bytecode:e.evm&&e.evm.bytecode&&(r=e.evm.bytecode),new this(n,r,t)}static getInterface(e){return Rl.getInterface(e)}static getContractAddress(e){return Mi(e)}static getContract(e,t,n){return new Rl(e,t,n)}}class Ol{constructor(e){Or(this,"alphabet",e),Or(this,"base",e.length),Or(this,"_alphabetMap",{}),Or(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=qn(e);if(0===t.length)return"";let n=[0];for(let e=0;e<t.length;++e){let r=t[e];for(let e=0;e<n.length;++e)r+=n[e]<<8,n[e]=r%this.base,r=r/this.base|0;for(;r>0;)n.push(r%this.base),r=r/this.base|0}let r="";for(let e=0;0===t[e]&&e<t.length-1;++e)r+=this._leader;for(let e=n.length-1;e>=0;--e)r+=this.alphabet[n[e]];return r}decode(e){if("string"!=typeof e)throw new TypeError("Expected String");let t=[];if(0===e.length)return new Uint8Array(t);t.push(0);for(let n=0;n<e.length;n++){let r=this._alphabetMap[e[n]];if(void 0===r)throw new Error("Non-base"+this.base+" character");let i=r;for(let e=0;e<t.length;++e)i+=t[e]*this.base,t[e]=255&i,i>>=8;for(;i>0;)t.push(255&i),i>>=8}for(let n=0;e[n]===this._leader&&n<e.length-1;++n)t.push(0);return qn(new Uint8Array(t.reverse()))}}const kl=new Ol("abcdefghijklmnopqrstuvwxyz234567"),Sl=new Ol("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");var Nl,xl=Object.freeze({__proto__:null,Base32:kl,Base58:Sl,BaseX:Ol});!function(e){e.sha256="sha256",e.sha512="sha512"}(Nl||(Nl={}));const Pl=new xn("sha2/5.7.0");function Ml(e){return"0x"+nc.ripemd160().update(qn(e)).digest("hex")}function Bl(e){return"0x"+nc.sha256().update(qn(e)).digest("hex")}function Dl(e){return"0x"+nc.sha512().update(qn(e)).digest("hex")}function Fl(e,t,n){return Nl[e]||Pl.throwError("unsupported algorithm "+e,xn.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+nc.hmac(nc[e],qn(t)).update(qn(n)).digest("hex")}var Ll=Object.freeze({__proto__:null,get SupportedAlgorithm(){return Nl},computeHmac:Fl,ripemd160:Ml,sha256:Bl,sha512:Dl});function Ul(e,t,n,r,i){let a;e=qn(e),t=qn(t);let o=1;const s=new Uint8Array(r),u=new Uint8Array(t.length+4);let c,l;u.set(t);for(let d=1;d<=o;d++){u[t.length]=d>>24&255,u[t.length+1]=d>>16&255,u[t.length+2]=d>>8&255,u[t.length+3]=255&d;let f=qn(Fl(i,e,u));a||(a=f.length,l=new Uint8Array(a),o=Math.ceil(r/a),c=r-(o-1)*a),l.set(f);for(let t=1;t<n;t++){f=qn(Fl(i,e,f));for(let e=0;e<a;e++)l[e]^=f[e]}const p=(d-1)*a,h=d===o?c:a;s.set(qn(l).slice(0,h),p)}return Vn(s)}const ql=new xn("wordlists/5.7.0");class jl{constructor(e){ql.checkAbstract(new.target,jl),Or(this,"locale",e)}split(e){return e.toLowerCase().split(/ +/g)}join(e){return e.join(" ")}static check(e){const t=[];for(let n=0;n<2048;n++){const r=e.getWord(n);if(n!==e.getWordIndex(r))return"0x";t.push(r)}return Ua(t.join("\n")+"\n")}static register(e,t){t||(t=e.locale)}}let Gl=null;function Hl(e){if(null==Gl&&(Gl="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo".replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==jl.check(e)))throw Gl=null,new Error("BIP39 Wordlist for en (English) FAILED")}const zl=new class extends jl{constructor(){super("en")}getWord(e){return Hl(this),Gl[e]}getWordIndex(e){return Hl(this),Gl.indexOf(e)}};jl.register(zl);const Wl={en:zl},Vl=new xn("hdnode/5.7.0"),Kl=ur.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Xl=fa("Bitcoin seed"),Jl=2147483648;function Yl(e){return(1<<e)-1<<8-e}function Ql(e){return $n(Vn(e),32)}function $l(e){return Sl.encode(jn([e,Xn(Bl(Bl(e)),0,4)]))}function Zl(e){if(null==e)return Wl.en;if("string"==typeof e){const t=Wl[e];return null==t&&Vl.throwArgumentError("unknown locale","wordlist",e),t}return e}const ed={},td="m/44'/60'/0'/0/0";class nd{constructor(e,t,n,r,i,a,o,s){if(e!==ed)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new Hc(t);Or(this,"privateKey",e.privateKey),Or(this,"publicKey",e.compressedPublicKey)}else Or(this,"privateKey",null),Or(this,"publicKey",Vn(n));Or(this,"parentFingerprint",r),Or(this,"fingerprint",Xn(Ml(Bl(this.publicKey)),0,4)),Or(this,"address",Zc(this.publicKey)),Or(this,"chainCode",i),Or(this,"index",a),Or(this,"depth",o),null==s?(Or(this,"mnemonic",null),Or(this,"path",null)):"string"==typeof s?(Or(this,"mnemonic",null),Or(this,"path",s)):(Or(this,"mnemonic",s),Or(this,"path",s.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return $l(jn([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Vn(this.depth),this.parentFingerprint,$n(Vn(this.index),4),this.chainCode,null!=this.privateKey?jn(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new nd(ed,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(e){if(e>4294967295)throw new Error("invalid index - "+String(e));let t=this.path;t&&(t+="/"+(2147483647&e));const n=new Uint8Array(37);if(e&Jl){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(qn(this.privateKey),1),t&&(t+="'")}else n.set(qn(this.publicKey));for(let t=24;t>=0;t-=8)n[33+(t>>3)]=e>>24-t&255;const r=qn(Fl(Nl.sha512,this.chainCode,n)),i=r.slice(0,32),a=r.slice(32);let o=null,s=null;if(this.privateKey)o=Ql(ur.from(i).add(this.privateKey).mod(Kl));else{s=new Hc(Vn(i))._addPoint(this.publicKey)}let u=t;const c=this.mnemonic;return c&&(u=Object.freeze({phrase:c.phrase,path:t,locale:c.locale||"en"})),new nd(ed,o,s,this.fingerprint,Ql(a),e,this.depth+1,u)}derivePath(e){const t=e.split("/");if(0===t.length||"m"===t[0]&&0!==this.depth)throw new Error("invalid path - "+e);"m"===t[0]&&t.shift();let n=this;for(let e=0;e<t.length;e++){const r=t[e];if(r.match(/^[0-9]+'$/)){const e=parseInt(r.substring(0,r.length-1));if(e>=Jl)throw new Error("invalid path index - "+r);n=n._derive(Jl+e)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const e=parseInt(r);if(e>=Jl)throw new Error("invalid path index - "+r);n=n._derive(e)}}}return n}static _fromSeed(e,t){const n=qn(e);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=qn(Fl(Nl.sha512,Xl,n));return new nd(ed,Ql(r.slice(0,32)),null,"0x00000000",Ql(r.slice(32)),0,0,t)}static fromMnemonic(e,t,n){return e=ad(id(e,n=Zl(n)),n),nd._fromSeed(rd(e,t),{phrase:e,path:"m",locale:n.locale})}static fromSeed(e){return nd._fromSeed(e,null)}static fromExtendedKey(e){const t=Sl.decode(e);82===t.length&&$l(t.slice(0,78))===e||Vl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=t[4],r=Vn(t.slice(5,9)),i=parseInt(Vn(t.slice(9,13)).substring(2),16),a=Vn(t.slice(13,45)),o=t.slice(45,78);switch(Vn(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new nd(ed,null,Vn(o),r,a,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==o[0])break;return new nd(ed,Vn(o.slice(1)),null,r,a,i,n,null)}return Vl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function rd(e,t){t||(t="");const n=fa("mnemonic"+t,sa.NFKD);return Ul(fa(e,sa.NFKD),n,2048,64,"sha512")}function id(e,t){t=Zl(t),Vl.checkNormalize();const n=t.split(e);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=qn(new Uint8Array(Math.ceil(11*n.length/8)));let i=0;for(let e=0;e<n.length;e++){let a=t.getWordIndex(n[e].normalize("NFKD"));if(-1===a)throw new Error("invalid mnemonic");for(let e=0;e<11;e++)a&1<<10-e&&(r[i>>3]|=1<<7-i%8),i++}const a=32*n.length/3,o=Yl(n.length/3);if((qn(Bl(r.slice(0,a/8)))[0]&o)!==(r[r.length-1]&o))throw new Error("invalid checksum");return Vn(r.slice(0,a/8))}function ad(e,t){if(t=Zl(t),(e=qn(e)).length%4!=0||e.length<16||e.length>32)throw new Error("invalid entropy");const n=[0];let r=11;for(let t=0;t<e.length;t++)r>8?(n[n.length-1]<<=8,n[n.length-1]|=e[t],r-=8):(n[n.length-1]<<=r,n[n.length-1]|=e[t]>>8-r,n.push(e[t]&(1<<8-r)-1),r+=3);const i=e.length/4,a=qn(Bl(e))[0]&Yl(i);return n[n.length-1]<<=i,n[n.length-1]|=a>>8-i,t.join(n.map((e=>t.getWord(e))))}function od(e,t){try{return id(e,t),!0}catch(e){}return!1}function sd(e){return("number"!=typeof e||e<0||e>=Jl||e%1)&&Vl.throwArgumentError("invalid account index","index",e),`m/44'/60'/${e}'/0/0`}var ud=Object.freeze({__proto__:null,HDNode:nd,defaultPath:td,entropyToMnemonic:ad,getAccountPath:sd,isValidMnemonic:od,mnemonicToEntropy:id,mnemonicToSeed:rd});const cd=new xn("random/5.7.0");const ld=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let dd=ld.crypto||ld.msCrypto;function fd(e){(e<=0||e>1024||e%1||e!=e)&&cd.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return dd.getRandomValues(t),qn(t)}function pd(e){for(let t=(e=e.slice()).length-1;t>0;t--){const n=Math.floor(Math.random()*(t+1)),r=e[t];e[t]=e[n],e[n]=r}return e}dd&&dd.getRandomValues||(cd.warn("WARNING: Missing strong random number source"),dd={getRandomValues:function(e){return cd.throwError("no secure random source avaialble",xn.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});var hd=Object.freeze({__proto__:null,randomBytes:fd,shuffled:pd}),md={exports:{}};!function(e,t){!function(t){function n(e){return parseInt(e)===e}function r(e){if(!n(e.length))return!1;for(var t=0;t<e.length;t++)if(!n(e[t])||e[t]<0||e[t]>255)return!1;return!0}function i(e,t){if(e.buffer&&ArrayBuffer.isView(e)&&"Uint8Array"===e.name)return t&&(e=e.slice?e.slice():Array.prototype.slice.call(e)),e;if(Array.isArray(e)){if(!r(e))throw new Error("Array contains invalid value: "+e);return new Uint8Array(e)}if(n(e.length)&&r(e))return new Uint8Array(e);throw new Error("unsupported array-like object")}function a(e){return new Uint8Array(e)}function o(e,t,n,r,i){null==r&&null==i||(e=e.slice?e.slice(r,i):Array.prototype.slice.call(e,r,i)),t.set(e,n)}var s,u={toBytes:function(e){var t=[],n=0;for(e=encodeURI(e);n<e.length;){var r=e.charCodeAt(n++);37===r?(t.push(parseInt(e.substr(n,2),16)),n+=2):t.push(r)}return i(t)},fromBytes:function(e){for(var t=[],n=0;n<e.length;){var r=e[n];r<128?(t.push(String.fromCharCode(r)),n++):r>191&&r<224?(t.push(String.fromCharCode((31&r)<<6|63&e[n+1])),n+=2):(t.push(String.fromCharCode((15&r)<<12|(63&e[n+1])<<6|63&e[n+2])),n+=3)}return t.join("")}},c=(s="0123456789abcdef",{toBytes:function(e){for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substr(n,2),16));return t},fromBytes:function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n];t.push(s[(240&r)>>4]+s[15&r])}return t.join("")}}),l={16:10,24:12,32:14},d=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],f=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],p=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],h=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],m=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],y=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],g=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],b=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],v=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],T=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],w=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],A=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],E=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],_=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],I=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function R(e){for(var t=[],n=0;n<e.length;n+=4)t.push(e[n]<<24|e[n+1]<<16|e[n+2]<<8|e[n+3]);return t}var C=function(e){if(!(this instanceof C))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:i(e,!0)}),this._prepare()};C.prototype._prepare=function(){var e=l[this.key.length];if(null==e)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var t=0;t<=e;t++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var n,r=4*(e+1),i=this.key.length/4,a=R(this.key);for(t=0;t<i;t++)n=t>>2,this._Ke[n][t%4]=a[t],this._Kd[e-n][t%4]=a[t];for(var o,s=0,u=i;u<r;){if(o=a[i-1],a[0]^=f[o>>16&255]<<24^f[o>>8&255]<<16^f[255&o]<<8^f[o>>24&255]^d[s]<<24,s+=1,8!=i)for(t=1;t<i;t++)a[t]^=a[t-1];else{for(t=1;t<i/2;t++)a[t]^=a[t-1];o=a[i/2-1],a[i/2]^=f[255&o]^f[o>>8&255]<<8^f[o>>16&255]<<16^f[o>>24&255]<<24;for(t=i/2+1;t<i;t++)a[t]^=a[t-1]}for(t=0;t<i&&u<r;)c=u>>2,p=u%4,this._Ke[c][p]=a[t],this._Kd[e-c][p]=a[t++],u++}for(var c=1;c<e;c++)for(var p=0;p<4;p++)o=this._Kd[c][p],this._Kd[c][p]=A[o>>24&255]^E[o>>16&255]^_[o>>8&255]^I[255&o]},C.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,n=[0,0,0,0],r=R(e),i=0;i<4;i++)r[i]^=this._Ke[0][i];for(var o=1;o<t;o++){for(i=0;i<4;i++)n[i]=h[r[i]>>24&255]^m[r[(i+1)%4]>>16&255]^y[r[(i+2)%4]>>8&255]^g[255&r[(i+3)%4]]^this._Ke[o][i];r=n.slice()}var s,u=a(16);for(i=0;i<4;i++)s=this._Ke[t][i],u[4*i]=255&(f[r[i]>>24&255]^s>>24),u[4*i+1]=255&(f[r[(i+1)%4]>>16&255]^s>>16),u[4*i+2]=255&(f[r[(i+2)%4]>>8&255]^s>>8),u[4*i+3]=255&(f[255&r[(i+3)%4]]^s);return u},C.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,n=[0,0,0,0],r=R(e),i=0;i<4;i++)r[i]^=this._Kd[0][i];for(var o=1;o<t;o++){for(i=0;i<4;i++)n[i]=b[r[i]>>24&255]^v[r[(i+3)%4]>>16&255]^T[r[(i+2)%4]>>8&255]^w[255&r[(i+1)%4]]^this._Kd[o][i];r=n.slice()}var s,u=a(16);for(i=0;i<4;i++)s=this._Kd[t][i],u[4*i]=255&(p[r[i]>>24&255]^s>>24),u[4*i+1]=255&(p[r[(i+3)%4]>>16&255]^s>>16),u[4*i+2]=255&(p[r[(i+2)%4]>>8&255]^s>>8),u[4*i+3]=255&(p[255&r[(i+1)%4]]^s);return u};var O=function(e){if(!(this instanceof O))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new C(e)};O.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16)o(e,n,0,r,r+16),o(n=this._aes.encrypt(n),t,r);return t},O.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16)o(e,n,0,r,r+16),o(n=this._aes.decrypt(n),t,r);return t};var k=function(e,t){if(!(this instanceof k))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=a(16);this._lastCipherblock=i(t,!0),this._aes=new C(e)};k.prototype.encrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16){o(e,n,0,r,r+16);for(var s=0;s<16;s++)n[s]^=this._lastCipherblock[s];this._lastCipherblock=this._aes.encrypt(n),o(this._lastCipherblock,t,r)}return t},k.prototype.decrypt=function(e){if((e=i(e)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var t=a(e.length),n=a(16),r=0;r<e.length;r+=16){o(e,n,0,r,r+16),n=this._aes.decrypt(n);for(var s=0;s<16;s++)t[r+s]=n[s]^this._lastCipherblock[s];o(e,this._lastCipherblock,0,r,r+16)}return t};var S=function(e,t,n){if(!(this instanceof S))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 size)")}else t=a(16);n||(n=1),this.segmentSize=n,this._shiftRegister=i(t,!0),this._aes=new C(e)};S.prototype.encrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(n,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n},S.prototype.decrypt=function(e){if(e.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var t,n=i(e,!0),r=0;r<n.length;r+=this.segmentSize){t=this._aes.encrypt(this._shiftRegister);for(var a=0;a<this.segmentSize;a++)n[r+a]^=t[a];o(this._shiftRegister,this._shiftRegister,0,this.segmentSize),o(e,this._shiftRegister,16-this.segmentSize,r,r+this.segmentSize)}return n};var N=function(e,t){if(!(this instanceof N))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",t){if(16!=t.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else t=a(16);this._lastPrecipher=i(t,!0),this._lastPrecipherIndex=16,this._aes=new C(e)};N.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),t[n]^=this._lastPrecipher[this._lastPrecipherIndex++];return t},N.prototype.decrypt=N.prototype.encrypt;var x=function(e){if(!(this instanceof x))throw Error("Counter must be instanitated with `new`");0===e||e||(e=1),"number"==typeof e?(this._counter=a(16),this.setValue(e)):this.setBytes(e)};x.prototype.setValue=function(e){if("number"!=typeof e||parseInt(e)!=e)throw new Error("invalid counter value (must be an integer)");for(var t=15;t>=0;--t)this._counter[t]=e%256,e>>=8},x.prototype.setBytes=function(e){if(16!=(e=i(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},x.prototype.increment=function(){for(var e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};var P=function(e,t){if(!(this instanceof P))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof x||(t=new x(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new C(e)};P.prototype.encrypt=function(e){for(var t=i(e,!0),n=0;n<t.length;n++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),t[n]^=this._remainingCounter[this._remainingCounterIndex++];return t},P.prototype.decrypt=P.prototype.encrypt;var M={AES:C,Counter:x,ModeOfOperation:{ecb:O,cbc:k,cfb:S,ofb:N,ctr:P},utils:{hex:c,utf8:u},padding:{pkcs7:{pad:function(e){var t=16-(e=i(e,!0)).length%16,n=a(e.length+t);o(e,n);for(var r=e.length;r<n.length;r++)n[r]=t;return n},strip:function(e){if((e=i(e,!0)).length<16)throw new Error("PKCS#7 invalid length");var t=e[e.length-1];if(t>16)throw new Error("PKCS#7 padding byte out of range");for(var n=e.length-t,r=0;r<t;r++)if(e[n+r]!==t)throw new Error("PKCS#7 invalid padding byte");var s=a(n);return o(e,s,0,0,n),s}}},_arrayTest:{coerceArray:i,createArray:a,copyArray:o}};e.exports=M}()}(md);var yd=gt(md.exports);const gd="json-wallets/5.7.0";function bd(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),qn(e)}function vd(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function Td(e){return"string"==typeof e?fa(e,sa.NFKC):qn(e)}function wd(e,t){let n=e;const r=t.toLowerCase().split("/");for(let e=0;e<r.length;e++){let t=null;for(const i in n)if(i.toLowerCase()===r[e]){t=n[i];break}if(null===t)return null;n=t}return n}function Ad(e){const t=qn(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=Vn(t);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const Ed=new xn(gd);class _d extends Fr{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function Id(e,t){const n=JSON.parse(e);t=Td(t);const r=Ni(wd(n,"ethaddr")),i=bd(wd(n,"encseed"));i&&i.length%16==0||Ed.throwArgumentError("invalid encseed","json",e);const a=qn(Ul(t,t,2e3,32,"sha256")).slice(0,16),o=i.slice(0,16),s=i.slice(16),u=new yd.ModeOfOperation.cbc(a,o),c=yd.padding.pkcs7.strip(qn(u.decrypt(s)));let l="";for(let e=0;e<c.length;e++)l+=String.fromCharCode(c[e]);const d=mi(fa(l));return new _d({_isCrowdsaleAccount:!0,address:r,privateKey:d})}function Rd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Cd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return!(!t.version||parseInt(t.version)!==t.version||3!==parseInt(t.version))}function Od(e){if(Rd(e))try{return Ni(JSON.parse(e).ethaddr)}catch(e){return null}if(Cd(e))try{return Ni(JSON.parse(e).address)}catch(e){return null}return null}var kd={exports:{}};!function(e,t){!function(t){const n=2147483647;function r(e){const t=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]);let n=1779033703,r=3144134277,i=1013904242,a=2773480762,o=1359893119,s=2600822924,u=528734635,c=1541459225;const l=new Uint32Array(64);function d(e){let d=0,f=e.length;for(;f>=64;){let p,h,m,y,g,b=n,v=r,T=i,w=a,A=o,E=s,_=u,I=c;for(h=0;h<16;h++)m=d+4*h,l[h]=(255&e[m])<<24|(255&e[m+1])<<16|(255&e[m+2])<<8|255&e[m+3];for(h=16;h<64;h++)p=l[h-2],y=(p>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,p=l[h-15],g=(p>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,l[h]=(y+l[h-7]|0)+(g+l[h-16]|0)|0;for(h=0;h<64;h++)y=(((A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))+(A&E^~A&_)|0)+(I+(t[h]+l[h]|0)|0)|0,g=((b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10))+(b&v^b&T^v&T)|0,I=_,_=E,E=A,A=w+y|0,w=T,T=v,v=b,b=y+g|0;n=n+b|0,r=r+v|0,i=i+T|0,a=a+w|0,o=o+A|0,s=s+E|0,u=u+_|0,c=c+I|0,d+=64,f-=64}}d(e);let f,p=e.length%64,h=e.length/536870912|0,m=e.length<<3,y=p<56?56:120,g=e.slice(e.length-p,e.length);for(g.push(128),f=p+1;f<y;f++)g.push(0);return g.push(h>>>24&255),g.push(h>>>16&255),g.push(h>>>8&255),g.push(h>>>0&255),g.push(m>>>24&255),g.push(m>>>16&255),g.push(m>>>8&255),g.push(m>>>0&255),d(g),[n>>>24&255,n>>>16&255,n>>>8&255,n>>>0&255,r>>>24&255,r>>>16&255,r>>>8&255,r>>>0&255,i>>>24&255,i>>>16&255,i>>>8&255,i>>>0&255,a>>>24&255,a>>>16&255,a>>>8&255,a>>>0&255,o>>>24&255,o>>>16&255,o>>>8&255,o>>>0&255,s>>>24&255,s>>>16&255,s>>>8&255,s>>>0&255,u>>>24&255,u>>>16&255,u>>>8&255,u>>>0&255,c>>>24&255,c>>>16&255,c>>>8&255,c>>>0&255]}function i(e,t,n){e=e.length<=64?e:r(e);const i=64+t.length+4,a=new Array(i),o=new Array(64);let s,u=[];for(s=0;s<64;s++)a[s]=54;for(s=0;s<e.length;s++)a[s]^=e[s];for(s=0;s<t.length;s++)a[64+s]=t[s];for(s=i-4;s<i;s++)a[s]=0;for(s=0;s<64;s++)o[s]=92;for(s=0;s<e.length;s++)o[s]^=e[s];function c(){for(let e=i-1;e>=i-4;e--){if(a[e]++,a[e]<=255)return;a[e]=0}}for(;n>=32;)c(),u=u.concat(r(o.concat(r(a)))),n-=32;return n>0&&(c(),u=u.concat(r(o.concat(r(a))).slice(0,n))),u}function a(e,t,n,r,i){let a;for(c(e,16*(2*n-1),i,0,16),a=0;a<2*n;a++)u(e,16*a,i,16),s(i,r),c(i,0,e,t+16*a,16);for(a=0;a<n;a++)c(e,t+2*a*16,e,16*a,16);for(a=0;a<n;a++)c(e,t+16*(2*a+1),e,16*(a+n),16)}function o(e,t){return e<<t|e>>>32-t}function s(e,t){c(e,0,t,0,16);for(let e=8;e>0;e-=2)t[4]^=o(t[0]+t[12],7),t[8]^=o(t[4]+t[0],9),t[12]^=o(t[8]+t[4],13),t[0]^=o(t[12]+t[8],18),t[9]^=o(t[5]+t[1],7),t[13]^=o(t[9]+t[5],9),t[1]^=o(t[13]+t[9],13),t[5]^=o(t[1]+t[13],18),t[14]^=o(t[10]+t[6],7),t[2]^=o(t[14]+t[10],9),t[6]^=o(t[2]+t[14],13),t[10]^=o(t[6]+t[2],18),t[3]^=o(t[15]+t[11],7),t[7]^=o(t[3]+t[15],9),t[11]^=o(t[7]+t[3],13),t[15]^=o(t[11]+t[7],18),t[1]^=o(t[0]+t[3],7),t[2]^=o(t[1]+t[0],9),t[3]^=o(t[2]+t[1],13),t[0]^=o(t[3]+t[2],18),t[6]^=o(t[5]+t[4],7),t[7]^=o(t[6]+t[5],9),t[4]^=o(t[7]+t[6],13),t[5]^=o(t[4]+t[7],18),t[11]^=o(t[10]+t[9],7),t[8]^=o(t[11]+t[10],9),t[9]^=o(t[8]+t[11],13),t[10]^=o(t[9]+t[8],18),t[12]^=o(t[15]+t[14],7),t[13]^=o(t[12]+t[15],9),t[14]^=o(t[13]+t[12],13),t[15]^=o(t[14]+t[13],18);for(let n=0;n<16;++n)e[n]+=t[n]}function u(e,t,n,r){for(let i=0;i<r;i++)n[i]^=e[t+i]}function c(e,t,n,r,i){for(;i--;)n[r++]=e[t++]}function l(e){if(!e||"number"!=typeof e.length)return!1;for(let t=0;t<e.length;t++){const n=e[t];if("number"!=typeof n||n%1||n<0||n>=256)return!1}return!0}function d(e,t){if("number"!=typeof e||e%1)throw new Error("invalid "+t);return e}function f(e,t,r,o,s,f,p){if(r=d(r,"N"),o=d(o,"r"),s=d(s,"p"),f=d(f,"dkLen"),0===r||0!=(r&r-1))throw new Error("N must be power of 2");if(r>n/128/o)throw new Error("N too large");if(o>n/128/s)throw new Error("r too large");if(!l(e))throw new Error("password must be an array or buffer");if(e=Array.prototype.slice.call(e),!l(t))throw new Error("salt must be an array or buffer");t=Array.prototype.slice.call(t);let h=i(e,t,128*s*o);const m=new Uint32Array(32*s*o);for(let e=0;e<m.length;e++){const t=4*e;m[e]=(255&h[t+3])<<24|(255&h[t+2])<<16|(255&h[t+1])<<8|(255&h[t+0])<<0}const y=new Uint32Array(64*o),g=new Uint32Array(32*o*r),b=32*o,v=new Uint32Array(16),T=new Uint32Array(16),w=s*r*2;let A,E,_=0,I=null,R=!1,C=0,O=0;const k=p?parseInt(1e3/o):4294967295,S="undefined"!=typeof setImmediate?setImmediate:setTimeout,N=function(){if(R)return p(new Error("cancelled"),_/w);let t;switch(C){case 0:E=32*O*o,c(m,E,y,0,b),C=1,A=0;case 1:t=r-A,t>k&&(t=k);for(let e=0;e<t;e++)c(y,0,g,(A+e)*b,b),a(y,b,o,v,T);if(A+=t,_+=t,p){const e=parseInt(1e3*_/w);if(e!==I){if(R=p(null,_/w),R)break;I=e}}if(A<r)break;A=0,C=2;case 2:t=r-A,t>k&&(t=k);for(let e=0;e<t;e++){const e=y[16*(2*o-1)]&r-1;u(g,e*b,y,b),a(y,b,o,v,T)}if(A+=t,_+=t,p){const e=parseInt(1e3*_/w);if(e!==I){if(R=p(null,_/w),R)break;I=e}}if(A<r)break;if(c(y,0,m,E,b),O++,O<s){C=0;break}h=[];for(let e=0;e<m.length;e++)h.push(m[e]>>0&255),h.push(m[e]>>8&255),h.push(m[e]>>16&255),h.push(m[e]>>24&255);const n=i(e,h,f);return p&&p(null,1,n),n}p&&S(N)};if(!p)for(;;){const e=N();if(null!=e)return e}N()}const p={scrypt:function(e,t,n,r,i,a,o){return new Promise((function(s,u){let c=0;o&&o(0),f(e,t,n,r,i,a,(function(e,t,n){if(e)u(e);else if(n)o&&1!==c&&o(1),s(new Uint8Array(n));else if(o&&t!==c)return c=t,o(t)}))}))},syncScrypt:function(e,t,n,r,i,a){return new Uint8Array(f(e,t,n,r,i,a))}};e.exports=p}()}(kd);var Sd=gt(kd.exports),Nd=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const xd=new xn(gd);function Pd(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Md extends Fr{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Bd(e,t){const n=bd(wd(e,"crypto/ciphertext"));if(Vn(mi(jn([t.slice(16,32),n]))).substring(2)!==wd(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(e,t,n){if("aes-128-ctr"===wd(e,"crypto/cipher")){const r=bd(wd(e,"crypto/cipherparams/iv")),i=new yd.Counter(r);return qn(new yd.ModeOfOperation.ctr(t,i).decrypt(n))}return null}(e,t.slice(0,16),n);r||xd.throwError("unsupported cipher",xn.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),a=Zc(r);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),Ni(t)!==a)throw new Error("address mismatch")}const o={_isKeystoreAccount:!0,address:a,privateKey:Vn(r)};if("0.1"===wd(e,"x-ethers/version")){const t=bd(wd(e,"x-ethers/mnemonicCiphertext")),n=bd(wd(e,"x-ethers/mnemonicCounter")),r=new yd.Counter(n),a=new yd.ModeOfOperation.ctr(i,r),s=wd(e,"x-ethers/path")||td,u=wd(e,"x-ethers/locale")||"en",c=qn(a.decrypt(t));try{const e=ad(c,u),t=nd.fromMnemonic(e,null,u).derivePath(s);if(t.privateKey!=o.privateKey)throw new Error("mnemonic mismatch");o.mnemonic=t.mnemonic}catch(e){if(e.code!==xn.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Md(o)}function Dd(e,t,n,r,i){return qn(Ul(e,t,n,r,i))}function Fd(e,t,n,r,i){return Promise.resolve(Dd(e,t,n,r,i))}function Ld(e,t,n,r,i){const a=Td(t),o=wd(e,"crypto/kdf");if(o&&"string"==typeof o){const t=function(e,t){return xd.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===o.toLowerCase()){const n=bd(wd(e,"crypto/kdfparams/salt")),s=parseInt(wd(e,"crypto/kdfparams/n")),u=parseInt(wd(e,"crypto/kdfparams/r")),c=parseInt(wd(e,"crypto/kdfparams/p"));s&&u&&c||t("kdf",o),0!=(s&s-1)&&t("N",s);const l=parseInt(wd(e,"crypto/kdfparams/dklen"));return 32!==l&&t("dklen",l),r(a,n,s,u,c,64,i)}if("pbkdf2"===o.toLowerCase()){const r=bd(wd(e,"crypto/kdfparams/salt"));let i=null;const o=wd(e,"crypto/kdfparams/prf");"hmac-sha256"===o?i="sha256":"hmac-sha512"===o?i="sha512":t("prf",o);const s=parseInt(wd(e,"crypto/kdfparams/c")),u=parseInt(wd(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),n(a,r,s,u,i)}}return xd.throwArgumentError("unsupported key-derivation function","kdf",o)}function Ud(e,t){const n=JSON.parse(e);return Bd(n,Ld(n,t,Dd,Sd.syncScrypt))}function qd(e,t,n){return Nd(this,void 0,void 0,(function*(){const r=JSON.parse(e);return Bd(r,yield Ld(r,t,Fd,Sd.scrypt,n))}))}function jd(e,t,n,r){try{if(Ni(e.address)!==Zc(e.privateKey))throw new Error("address/privateKey mismatch");if(Pd(e)){const t=e.mnemonic;if(nd.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||td).privateKey!=e.privateKey)throw new Error("mnemonic mismatch")}}catch(e){return Promise.reject(e)}"function"!=typeof n||r||(r=n,n={}),n||(n={});const i=qn(e.privateKey),a=Td(t);let o=null,s=null,u=null;if(Pd(e)){const t=e.mnemonic;o=qn(id(t.phrase,t.locale||"en")),s=t.path||td,u=t.locale||"en"}let c=n.client;c||(c="ethers.js");let l=null;l=n.salt?qn(n.salt):fd(32);let d=null;if(n.iv){if(d=qn(n.iv),16!==d.length)throw new Error("invalid iv")}else d=fd(16);let f=null;if(n.uuid){if(f=qn(n.uuid),16!==f.length)throw new Error("invalid uuid")}else f=fd(16);let p=1<<17,h=8,m=1;return n.scrypt&&(n.scrypt.N&&(p=n.scrypt.N),n.scrypt.r&&(h=n.scrypt.r),n.scrypt.p&&(m=n.scrypt.p)),Sd.scrypt(a,l,p,h,m,64,r).then((t=>{const n=(t=qn(t)).slice(0,16),r=t.slice(16,32),a=t.slice(32,64),y=new yd.Counter(d),g=qn(new yd.ModeOfOperation.ctr(n,y).encrypt(i)),b=mi(jn([r,g])),v={address:e.address.substring(2).toLowerCase(),id:Ad(f),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Vn(d).substring(2)},ciphertext:Vn(g).substring(2),kdf:"scrypt",kdfparams:{salt:Vn(l).substring(2),n:p,dklen:32,p:m,r:h},mac:b.substring(2)}};if(o){const e=fd(16),t=new yd.Counter(e),n=qn(new yd.ModeOfOperation.ctr(a,t).encrypt(o)),r=new Date,i=r.getUTCFullYear()+"-"+vd(r.getUTCMonth()+1,2)+"-"+vd(r.getUTCDate(),2)+"T"+vd(r.getUTCHours(),2)+"-"+vd(r.getUTCMinutes(),2)+"-"+vd(r.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:c,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Vn(e).substring(2),mnemonicCiphertext:Vn(n).substring(2),path:s,locale:u,version:"0.1"}}return JSON.stringify(v)}))}function Gd(e,t,n){if(Rd(e)){n&&n(0);const r=Id(e,t);return n&&n(1),Promise.resolve(r)}return Cd(e)?qd(e,t,n):Promise.reject(new Error("invalid JSON wallet"))}function Hd(e,t){if(Rd(e))return Id(e,t);if(Cd(e))return Ud(e,t);throw new Error("invalid JSON wallet")}var zd=Object.freeze({__proto__:null,decryptCrowdsale:Id,decryptJsonWallet:Gd,decryptJsonWalletSync:Hd,decryptKeystore:qd,decryptKeystoreSync:Ud,encryptKeystore:jd,getJsonWalletAddress:Od,isCrowdsaleWallet:Rd,isKeystoreWallet:Cd});var Wd=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Vd=new xn("wallet/5.7.0");class Kd extends ts{constructor(e,t){if(super(),null!=(n=e)&&zn(n.privateKey,32)&&null!=n.address){const t=new Hc(e.privateKey);if(Or(this,"_signingKey",(()=>t)),Or(this,"address",Zc(this.publicKey)),this.address!==Ni(e.address)&&Vd.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;Or(this,"_mnemonic",(()=>({phrase:t.phrase,path:t.path||td,locale:t.locale||"en"})));const n=this.mnemonic;Zc(nd.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&Vd.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else Or(this,"_mnemonic",(()=>null))}else{if(Hc.isSigningKey(e))"secp256k1"!==e.curve&&Vd.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),Or(this,"_signingKey",(()=>e));else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new Hc(e);Or(this,"_signingKey",(()=>t))}Or(this,"_mnemonic",(()=>null)),Or(this,"address",Zc(this.publicKey))}var n;t&&!Yo.isProvider(t)&&Vd.throwArgumentError("invalid provider","provider",t),Or(this,"provider",t||null)}get mnemonic(){return this._mnemonic()}get privateKey(){return this._signingKey().privateKey}get publicKey(){return this._signingKey().publicKey}getAddress(){return Promise.resolve(this.address)}connect(e){return new Kd(this,e)}signTransaction(e){return Sr(e).then((t=>{null!=t.from&&(Ni(t.from)!==this.address&&Vd.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const n=this._signingKey().signDigest(mi(sl(t)));return sl(t,n)}))}signMessage(e){return Wd(this,void 0,void 0,(function*(){return er(this._signingKey().signDigest(To(e)))}))}_signTypedData(e,t,n){return Wd(this,void 0,void 0,(function*(){const r=yield Do.resolveNames(e,t,n,(e=>(null==this.provider&&Vd.throwError("cannot resolve ENS names without a provider",xn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e))));return er(this._signingKey().signDigest(Do.hash(r.domain,t,r.value)))}))}encrypt(e,t,n){if("function"!=typeof t||n||(n=t,t={}),n&&"function"!=typeof n)throw new Error("invalid callback");return t||(t={}),jd(this,e,t,n)}static createRandom(e){let t=fd(16);e||(e={}),e.extraEntropy&&(t=qn(Xn(mi(jn([t,e.extraEntropy])),0,16)));const n=ad(t,e.locale);return Kd.fromMnemonic(n,e.path,e.locale)}static fromEncryptedJson(e,t,n){return Gd(e,t,n).then((e=>new Kd(e)))}static fromEncryptedJsonSync(e,t){return new Kd(Hd(e,t))}static fromMnemonic(e,t,n){return t||(t=td),new Kd(nd.fromMnemonic(e,null,n).derivePath(t))}}function Xd(e,t){return el(To(e),t)}function Jd(e,t,n,r){return el(Do.hash(e,t,n),r)}var Yd=Object.freeze({__proto__:null,Wallet:Kd,verifyMessage:Xd,verifyTypedData:Jd});const Qd=new xn("networks/5.7.1");function $d(e){const t=function(t,n){null==n&&(n={});const r=[];if(t.InfuraProvider&&"-"!==n.infura)try{r.push(new t.InfuraProvider(e,n.infura))}catch(e){}if(t.EtherscanProvider&&"-"!==n.etherscan)try{r.push(new t.EtherscanProvider(e,n.etherscan))}catch(e){}if(t.AlchemyProvider&&"-"!==n.alchemy)try{r.push(new t.AlchemyProvider(e,n.alchemy))}catch(e){}if(t.PocketProvider&&"-"!==n.pocket){const i=["goerli","ropsten","rinkeby","sepolia"];try{const a=new t.PocketProvider(e,n.pocket);a.network&&-1===i.indexOf(a.network.name)&&r.push(a)}catch(e){}}if(t.CloudflareProvider&&"-"!==n.cloudflare)try{r.push(new t.CloudflareProvider(e))}catch(e){}if(t.AnkrProvider&&"-"!==n.ankr)try{const i=["ropsten"],a=new t.AnkrProvider(e,n.ankr);a.network&&-1===i.indexOf(a.network.name)&&r.push(a)}catch(e){}if(0===r.length)return null;if(t.FallbackProvider){let i=1;return null!=n.quorum?i=n.quorum:"homestead"===e&&(i=2),new t.FallbackProvider(r,i)}return r[0]};return t.renetwork=function(e){return $d(e)},t}function Zd(e,t){const n=function(n,r){return n.JsonRpcProvider?new n.JsonRpcProvider(e,t):null};return n.renetwork=function(t){return Zd(e,t)},n}const ef={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:$d("homestead")},tf={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:$d("ropsten")},nf={chainId:63,name:"classicMordor",_defaultProvider:Zd("https://www.ethercluster.com/mordor","classicMordor")},rf={unspecified:{chainId:0,name:"unspecified"},homestead:ef,mainnet:ef,morden:{chainId:2,name:"morden"},ropsten:tf,testnet:tf,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:$d("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:$d("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:$d("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:$d("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:Zd("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:nf,classicTestnet:nf,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:Zd("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:$d("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:$d("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};function af(e){if(null==e)return null;if("number"==typeof e){for(const t in rf){const n=rf[t];if(n.chainId===e)return{name:n.name,chainId:n.chainId,ensAddress:n.ensAddress||null,_defaultProvider:n._defaultProvider||null}}return{chainId:e,name:"unknown"}}if("string"==typeof e){const t=rf[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=rf[e.name];if(!t)return"number"!=typeof e.chainId&&Qd.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&Qd.throwArgumentError("network chainId mismatch","network",e);let n=e._defaultProvider||null;var r;return null==n&&t._defaultProvider&&(n=(r=t._defaultProvider)&&"function"==typeof r.renetwork?t._defaultProvider.renetwork(e):t._defaultProvider),{name:e.name,chainId:t.chainId,ensAddress:e.ensAddress||t.ensAddress||null,_defaultProvider:n}}var of=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};function sf(e,t){return of(this,void 0,void 0,(function*(){null==t&&(t={});const n={method:t.method||"GET",headers:t.headers||{},body:t.body||void 0};if(!0!==t.skipFetchSetup&&(n.mode="cors",n.cache="no-cache",n.credentials="same-origin",n.redirect="follow",n.referrer="client"),null!=t.fetchOptions){const e=t.fetchOptions;e.mode&&(n.mode=e.mode),e.cache&&(n.cache=e.cache),e.credentials&&(n.credentials=e.credentials),e.redirect&&(n.redirect=e.redirect),e.referrer&&(n.referrer=e.referrer)}const r=yield fetch(e,n),i=yield r.arrayBuffer(),a={};return r.headers.forEach?r.headers.forEach(((e,t)=>{a[t.toLowerCase()]=e})):r.headers.keys().forEach((e=>{a[e.toLowerCase()]=r.headers.get(e)})),{headers:a,statusCode:r.status,statusMessage:r.statusText,body:qn(new Uint8Array(i))}}))}var uf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const cf=new xn("web/5.7.1");function lf(e){return new Promise((t=>{setTimeout(t,e)}))}function df(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Fn(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return ya(e)}catch(e){}return Vn(e)}return e}function ff(e,t,n){const r="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;cf.assertArgument(r>0&&r%1==0,"invalid connection throttle limit","connection.throttleLimit",r);const i="object"==typeof e?e.throttleCallback:null,a="object"==typeof e&&"number"==typeof e.throttleSlotInterval?e.throttleSlotInterval:100;cf.assertArgument(a>0&&a%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",a);const o="object"==typeof e&&!!e.errorPassThrough,s={};let u=null;const c={method:"GET"};let l=!1,d=12e4;if("string"==typeof e)u=e;else if("object"==typeof e){if(null!=e&&null!=e.url||cf.throwArgumentError("missing URL","connection.url",e),u=e.url,"number"==typeof e.timeout&&e.timeout>0&&(d=e.timeout),e.headers)for(const t in e.headers)s[t.toLowerCase()]={key:t,value:String(e.headers[t])},["if-none-match","if-modified-since"].indexOf(t.toLowerCase())>=0&&(l=!0);if(c.allowGzip=!!e.allowGzip,null!=e.user&&null!=e.password){"https:"!==u.substring(0,6)&&!0!==e.allowInsecureAuthentication&&cf.throwError("basic authentication requires a secure https url",xn.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"});const t=e.user+":"+e.password;s.authorization={key:"Authorization",value:"Basic "+Ga(fa(t))}}null!=e.skipFetchSetup&&(c.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(c.fetchOptions=xr(e.fetchOptions))}const f=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),p=u?u.match(f):null;if(p)try{const e={statusCode:200,statusMessage:"OK",headers:{"content-type":p[1]||"text/plain"},body:p[2]?ja(p[3]):(h=p[3],fa(h.replace(/%([0-9a-f][0-9a-f])/gi,((e,t)=>String.fromCharCode(parseInt(t,16))))))};let t=e.body;return n&&(t=n(e.body,e)),Promise.resolve(t)}catch(e){cf.throwError("processing response error",xn.errors.SERVER_ERROR,{body:df(p[1],p[2]),error:e,requestBody:null,requestMethod:"GET",url:u})}var h;t&&(c.method="POST",c.body=t,null==s["content-type"]&&(s["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==s["content-length"]&&(s["content-length"]={key:"Content-Length",value:String(t.length)}));const m={};Object.keys(s).forEach((e=>{const t=s[e];m[t.key]=t.value})),c.headers=m;const y=function(){let e=null;return{promise:new Promise((function(t,n){d&&(e=setTimeout((()=>{null!=e&&(e=null,n(cf.makeError("timeout",xn.errors.TIMEOUT,{requestBody:df(c.body,m["content-type"]),requestMethod:c.method,timeout:d,url:u})))}),d))})),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return uf(this,void 0,void 0,(function*(){for(let e=0;e<r;e++){let t=null;try{if(t=yield sf(u,c),e<r)if(301===t.statusCode||302===t.statusCode){const e=t.headers.location||"";if("GET"===c.method&&e.match(/^https:/)){u=t.headers.location;continue}}else if(429===t.statusCode){let n=!0;if(i&&(n=yield i(e,u)),n){let n=0;const r=t.headers["retry-after"];n="string"==typeof r&&r.match(/^[1-9][0-9]*$/)?1e3*parseInt(r):a*parseInt(String(Math.random()*Math.pow(2,e))),yield lf(n);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),cf.throwError("missing response",xn.errors.SERVER_ERROR,{requestBody:df(c.body,m["content-type"]),requestMethod:c.method,serverError:e,url:u}))}let s=t.body;if(l&&304===t.statusCode?s=null:!o&&(t.statusCode<200||t.statusCode>=300)&&(y.cancel(),cf.throwError("bad response",xn.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:df(s,t.headers?t.headers["content-type"]:null),requestBody:df(c.body,m["content-type"]),requestMethod:c.method,url:u})),n)try{const e=yield n(s,t);return y.cancel(),e}catch(n){if(n.throttleRetry&&e<r){let t=!0;if(i&&(t=yield i(e,u)),t){const t=a*parseInt(String(Math.random()*Math.pow(2,e)));yield lf(t);continue}}y.cancel(),cf.throwError("processing response error",xn.errors.SERVER_ERROR,{body:df(s,t.headers?t.headers["content-type"]:null),error:n,requestBody:df(c.body,m["content-type"]),requestMethod:c.method,url:u})}return y.cancel(),s}return cf.throwError("failed response",xn.errors.SERVER_ERROR,{requestBody:df(c.body,m["content-type"]),requestMethod:c.method,url:u})}))}();return Promise.race([y.promise,g])}function pf(e,t,n){let r=null;if(null!=t){r=fa(t);const n="string"==typeof e?{url:e}:xr(e);if(n.headers){0!==Object.keys(n.headers).filter((e=>"content-type"===e.toLowerCase())).length||(n.headers=xr(n.headers),n.headers["content-type"]="application/json")}else n.headers={"content-type":"application/json"};e=n}return ff(e,r,((e,t)=>{let r=null;if(null!=e)try{r=JSON.parse(ya(e))}catch(t){cf.throwError("invalid JSON",xn.errors.SERVER_ERROR,{body:e,error:t})}return n&&(r=n(r,t)),r}))}function hf(e,t){return t||(t={}),null==(t=xr(t)).floor&&(t.floor=0),null==t.ceiling&&(t.ceiling=1e4),null==t.interval&&(t.interval=250),new Promise((function(n,r){let i=null,a=!1;const o=()=>!a&&(a=!0,i&&clearTimeout(i),!0);t.timeout&&(i=setTimeout((()=>{o()&&r(new Error("timeout"))}),t.timeout));const s=t.retryLimit;let u=0;!function i(){return e().then((function(e){if(void 0!==e)o()&&n(e);else if(t.oncePoll)t.oncePoll.once("poll",i);else if(t.onceBlock)t.onceBlock.once("block",i);else if(!a){if(u++,u>s)return void(o()&&r(new Error("retry limit reached")));let e=t.interval*parseInt(String(Math.random()*Math.pow(2,u)));e<t.floor&&(e=t.floor),e>t.ceiling&&(e=t.ceiling),setTimeout(i,e)}return null}),(function(e){o()&&r(e)}))}()}))}for(var mf=Object.freeze({__proto__:null,_fetchData:ff,fetchJson:pf,poll:hf}),yf="qpzry9x8gf2tvdw0s3jn54khce6mua7l",gf={},bf=0;bf<32;bf++){var vf=yf.charAt(bf);if(void 0!==gf[vf])throw new TypeError(vf+" is ambiguous");gf[vf]=bf}function Tf(e){var t=e>>25;return(33554431&e)<<5^996825010&-(t>>0&1)^642813549&-(t>>1&1)^513874426&-(t>>2&1)^1027748829&-(t>>3&1)^705979059&-(t>>4&1)}function wf(e){for(var t=1,n=0;n<e.length;++n){var r=e.charCodeAt(n);if(r<33||r>126)return"Invalid prefix ("+e+")";t=Tf(t)^r>>5}for(t=Tf(t),n=0;n<e.length;++n){var i=e.charCodeAt(n);t=Tf(t)^31&i}return t}function Af(e,t){if(t=t||90,e.length<8)return e+" too short";if(e.length>t)return"Exceeds length limit";var n=e.toLowerCase(),r=e.toUpperCase();if(e!==n&&e!==r)return"Mixed-case string "+e;var i=(e=n).lastIndexOf("1");if(-1===i)return"No separator character for "+e;if(0===i)return"Missing prefix for "+e;var a=e.slice(0,i),o=e.slice(i+1);if(o.length<6)return"Data too short";var s=wf(a);if("string"==typeof s)return s;for(var u=[],c=0;c<o.length;++c){var l=o.charAt(c),d=gf[l];if(void 0===d)return"Unknown character "+l;s=Tf(s)^d,c+6>=o.length||u.push(d)}return 1!==s?"Invalid checksum for "+e:{prefix:a,words:u}}function Ef(e,t,n,r){for(var i=0,a=0,o=(1<<n)-1,s=[],u=0;u<e.length;++u)for(i=i<<t|e[u],a+=t;a>=n;)a-=n,s.push(i>>a&o);if(r)a>0&&s.push(i<<n-a&o);else{if(a>=t)return"Excess padding";if(i<<n-a&o)return"Non-zero padding"}return s}var _f={decodeUnsafe:function(){var e=Af.apply(null,arguments);if("object"==typeof e)return e},decode:function(e){var t=Af.apply(null,arguments);if("object"==typeof t)return t;throw new Error(t)},encode:function(e,t,n){if(n=n||90,e.length+7+t.length>n)throw new TypeError("Exceeds length limit");var r=wf(e=e.toLowerCase());if("string"==typeof r)throw new Error(r);for(var i=e+"1",a=0;a<t.length;++a){var o=t[a];if(o>>5!=0)throw new Error("Non 5-bit word");r=Tf(r)^o,i+=yf.charAt(o)}for(a=0;a<6;++a)r=Tf(r);for(r^=1,a=0;a<6;++a){i+=yf.charAt(r>>5*(5-a)&31)}return i},toWordsUnsafe:function(e){var t=Ef(e,8,5,!0);if(Array.isArray(t))return t},toWords:function(e){var t=Ef(e,8,5,!0);if(Array.isArray(t))return t;throw new Error(t)},fromWordsUnsafe:function(e){var t=Ef(e,5,8,!1);if(Array.isArray(t))return t},fromWords:function(e){var t=Ef(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}},If=gt(_f);const Rf="providers/5.7.2",Cf=new xn(Rf);class Of{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const e={},t=this.address.bind(this),n=this.bigNumber.bind(this),r=this.blockTag.bind(this),i=this.data.bind(this),a=this.hash.bind(this),o=this.hex.bind(this),s=this.number.bind(this),u=this.type.bind(this);return e.transaction={hash:a,type:u,accessList:Of.allowNull(this.accessList.bind(this),null),blockHash:Of.allowNull(a,null),blockNumber:Of.allowNull(s,null),transactionIndex:Of.allowNull(s,null),confirmations:Of.allowNull(s,null),from:t,gasPrice:Of.allowNull(n),maxPriorityFeePerGas:Of.allowNull(n),maxFeePerGas:Of.allowNull(n),gasLimit:n,to:Of.allowNull(t,null),value:n,nonce:s,data:i,r:Of.allowNull(this.uint256),s:Of.allowNull(this.uint256),v:Of.allowNull(s),creates:Of.allowNull(t,null),raw:Of.allowNull(i)},e.transactionRequest={from:Of.allowNull(t),nonce:Of.allowNull(s),gasLimit:Of.allowNull(n),gasPrice:Of.allowNull(n),maxPriorityFeePerGas:Of.allowNull(n),maxFeePerGas:Of.allowNull(n),to:Of.allowNull(t),value:Of.allowNull(n),data:Of.allowNull((e=>this.data(e,!0))),type:Of.allowNull(s),accessList:Of.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:s,blockNumber:s,transactionHash:a,address:t,topics:Of.arrayOf(a),data:i,logIndex:s,blockHash:a},e.receipt={to:Of.allowNull(this.address,null),from:Of.allowNull(this.address,null),contractAddress:Of.allowNull(t,null),transactionIndex:s,root:Of.allowNull(o),gasUsed:n,logsBloom:Of.allowNull(i),blockHash:a,transactionHash:a,logs:Of.arrayOf(this.receiptLog.bind(this)),blockNumber:s,confirmations:Of.allowNull(s,null),cumulativeGasUsed:n,effectiveGasPrice:Of.allowNull(n),status:Of.allowNull(s),type:u},e.block={hash:Of.allowNull(a),parentHash:a,number:s,timestamp:s,nonce:Of.allowNull(o),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:Of.allowNull(t),extraData:i,transactions:Of.allowNull(Of.arrayOf(a)),baseFeePerGas:Of.allowNull(n)},e.blockWithTransactions=xr(e.block),e.blockWithTransactions.transactions=Of.allowNull(Of.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:Of.allowNull(r,void 0),toBlock:Of.allowNull(r,void 0),blockHash:Of.allowNull(a,void 0),address:Of.allowNull(t,void 0),topics:Of.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:Of.allowNull(s),blockHash:Of.allowNull(a),transactionIndex:s,removed:Of.allowNull(this.boolean.bind(this)),address:t,data:Of.allowFalsish(i,"0x"),topics:Of.arrayOf(a),transactionHash:a,logIndex:s},e}accessList(e){return rl(e||[])}number(e){return"0x"===e?0:ur.from(e).toNumber()}type(e){return"0x"===e||null==e?0:ur.from(e).toNumber()}bigNumber(e){return ur.from(e)}boolean(e){if("boolean"==typeof e)return e;if("string"==typeof e){if("true"===(e=e.toLowerCase()))return!0;if("false"===e)return!1}throw new Error("invalid boolean - "+e)}hex(e,t){return"string"==typeof e&&(t||"0x"===e.substring(0,2)||(e="0x"+e),zn(e))?e.toLowerCase():Cf.throwArgumentError("invalid hash","value",e)}data(e,t){const n=this.hex(e,t);if(n.length%2!=0)throw new Error("invalid data; odd-length - "+e);return n}address(e){return Ni(e)}callAddress(e){if(!zn(e,32))return null;const t=Ni(Xn(e,12));return t===Xi?null:t}contractAddress(e){return Mi(e)}blockTag(e){if(null==e)return"latest";if("earliest"===e)return"0x0";switch(e){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return e}if("number"==typeof e||zn(e))return Yn(e);throw new Error("invalid blockTag")}hash(e,t){const n=this.hex(e,t);return 32!==Kn(n)?Cf.throwArgumentError("invalid hash","value",e):n}difficulty(e){if(null==e)return null;const t=ur.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!zn(e))throw new Error("invalid uint256");return $n(e,32)}_block(e,t){null!=e.author&&null==e.miner&&(e.miner=e.author);const n=null!=e._difficulty?e._difficulty:e.difficulty,r=Of.check(t,e);return r._difficulty=null==n?null:ur.from(n),r}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return Of.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&ur.from(e.to).isZero()&&(e.to="0x0000000000000000000000000000000000000000"),null!=e.input&&null==e.data&&(e.data=e.input),null==e.to&&null==e.creates&&(e.creates=this.contractAddress(e)),1!==e.type&&2!==e.type||null!=e.accessList||(e.accessList=[]);const t=Of.check(this.formats.transaction,e);if(null!=e.chainId){let n=e.chainId;zn(n)&&(n=ur.from(n).toNumber()),t.chainId=n}else{let n=e.networkId;null==n&&null==t.v&&(n=e.chainId),zn(n)&&(n=ur.from(n).toNumber()),"number"!=typeof n&&null!=t.v&&(n=(t.v-35)/2,n<0&&(n=0),n=parseInt(n)),"number"!=typeof n&&(n=0),t.chainId=n}return t.blockHash&&"x"===t.blockHash.replace(/0/g,"")&&(t.blockHash=null),t}transaction(e){return cl(e)}receiptLog(e){return Of.check(this.formats.receiptLog,e)}receipt(e){const t=Of.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=ur.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&Cf.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):Cf.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&Cf.throwArgumentError("invalid root hash","value.root",t.root);return null!=t.status&&(t.byzantium=!0),t}topics(e){return Array.isArray(e)?e.map((e=>this.topics(e))):null!=e?this.hash(e,!0):null}filter(e){return Of.check(this.formats.filter,e)}filterLog(e){return Of.check(this.formats.filterLog,e)}static check(e,t){const n={};for(const r in e)try{const i=e[r](t[r]);void 0!==i&&(n[r]=i)}catch(e){throw e.checkKey=r,e.checkValue=t[r],e}return n}static allowNull(e,t){return function(n){return null==n?t:e(n)}}static allowFalsish(e,t){return function(n){return n?e(n):t}}static arrayOf(e){return function(t){if(!Array.isArray(t))throw new Error("not an array");const n=[];return t.forEach((function(t){n.push(e(t))})),n}}}function kf(e){return e&&"function"==typeof e.isCommunityResource}function Sf(e){return kf(e)&&e.isCommunityResource()}let Nf=!1;function xf(){Nf||(Nf=!0,console.log("========= NOTICE ========="),console.log("Request-Rate Exceeded (this message will not be repeated)"),console.log(""),console.log("The default API keys for each service are provided as a highly-throttled,"),console.log("community resource for low-traffic projects and early prototyping."),console.log(""),console.log("While your application will continue to function, we highly recommended"),console.log("signing up for your own API keys to improve performance, increase your"),console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."),console.log(""),console.log("For more details: https://docs.ethers.io/api-keys/"),console.log("=========================="))}var Pf=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Mf=new xn(Rf);function Bf(e){return null==e?"null":(32!==Kn(e)&&Mf.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function Df(e){for(e=e.slice();e.length>0&&null==e[e.length-1];)e.pop();return e.map((e=>{if(Array.isArray(e)){const t={};e.forEach((e=>{t[Bf(e)]=!0}));const n=Object.keys(t);return n.sort(),n.join("|")}return Bf(e)})).join("&")}function Ff(e){if("string"==typeof e){if(32===Kn(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+Df(e);if(Jo.isForkEvent(e))throw Mf.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+Df(e.topics||[])}throw new Error("invalid event - "+e)}function Lf(){return(new Date).getTime()}function Uf(e){return new Promise((t=>{setTimeout(t,e)}))}const qf=["block","network","pending","poll"];class jf{constructor(e,t,n){Or(this,"tag",e),Or(this,"listener",t),Or(this,"once",n),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const e=this.tag.split(":");return"tx"!==e[0]?null:e[1]}get filter(){const e=this.tag.split(":");if("filter"!==e[0])return null;const t=e[1],n=""===(r=e[2])?[]:r.split(/&/g).map((e=>{if(""===e)return[];const t=e.split("|").map((e=>"null"===e?null:e));return 1===t.length?t[0]:t}));var r;const i={};return n.length>0&&(i.topics=n),t&&"*"!==t&&(i.address=t),i}pollable(){return this.tag.indexOf(":")>=0||qf.indexOf(this.tag)>=0}}const Gf={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function Hf(e){return $n(ur.from(e).toHexString(),32)}function zf(e){return Sl.encode(jn([e,Xn(Bl(Bl(e)),0,4)]))}const Wf=new RegExp("^(ipfs)://(.*)$","i"),Vf=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Wf,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Kf(e,t){try{return ya(Xf(e,t))}catch(e){}return null}function Xf(e,t){if("0x"===e)return null;const n=ur.from(Xn(e,t,t+32)).toNumber(),r=ur.from(Xn(e,n,n+32)).toNumber();return Xn(e,n+32,n+32+r)}function Jf(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):Mf.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function Yf(e){const t=qn(e);if(t.length>32)throw new Error("internal; should not happen");const n=new Uint8Array(32);return n.set(t,32-t.length),n}function Qf(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function $f(e){const t=[];let n=0;for(let r=0;r<e.length;r++)t.push(null),n+=32;for(let r=0;r<e.length;r++){const i=qn(e[r]);t[r]=Yf(n),t.push(Yf(i.length)),t.push(Qf(i)),n+=32+32*Math.ceil(i.length/32)}return Jn(t)}class Zf{constructor(e,t,n,r){Or(this,"provider",e),Or(this,"name",n),Or(this,"address",e.formatter.address(t)),Or(this,"_resolvedAddress",r)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then((e=>ur.from(e).eq(1))).catch((e=>{if(e.code===xn.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e}))),this._supportsEip2544}_fetch(e,t){return Pf(this,void 0,void 0,(function*(){const n={to:this.address,ccipReadEnabled:!0,data:Jn([e,go(this.name),t||"0x"])};let r=!1;(yield this.supportsWildcard())&&(r=!0,n.data=Jn(["0x9061b923",$f([bo(this.name),n.data])]));try{let e=yield this.provider.call(n);return qn(e).length%32==4&&Mf.throwError("resolver threw error",xn.errors.CALL_EXCEPTION,{transaction:n,data:e}),r&&(e=Xf(e,0)),e}catch(e){if(e.code===xn.errors.CALL_EXCEPTION)return null;throw e}}))}_fetchBytes(e,t){return Pf(this,void 0,void 0,(function*(){const n=yield this._fetch(e,t);return null!=n?Xf(n,0):null}))}_getAddress(e,t){const n=Gf[String(e)];if(null==n&&Mf.throwError(`unsupported coin type: ${e}`,xn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===n.ilk)return this.provider.formatter.address(t);const r=qn(t);if(null!=n.p2pkh){const e=t.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return zf(jn([[n.p2pkh],"0x"+e[2]]))}}if(null!=n.p2sh){const e=t.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(e){const t=parseInt(e[1],16);if(e[2].length===2*t&&t>=1&&t<=75)return zf(jn([[n.p2sh],"0x"+e[2]]))}}if(null!=n.prefix){const e=r[1];let t=r[0];if(0===t?20!==e&&32!==e&&(t=-1):t=-1,t>=0&&r.length===2+e&&e>=1&&e<=75){const e=If.toWords(r.slice(2));return e.unshift(t),If.encode(n.prefix,e)}}return null}getAddress(e){return Pf(this,void 0,void 0,(function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||e===ra?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===xn.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",Hf(e));if(null==t||"0x"===t)return null;const n=this._getAddress(e,t);return null==n&&Mf.throwError("invalid or unsupported coin data",xn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),n}))}getAvatar(){return Pf(this,void 0,void 0,(function*(){const e=[{type:"name",content:this.name}];try{const t=yield this.getText("avatar");if(null==t)return null;for(let n=0;n<Vf.length;n++){const r=t.match(Vf[n]);if(null==r)continue;const i=r[1].toLowerCase();switch(i){case"https":return e.push({type:"url",content:t}),{linkage:e,url:t};case"data":return e.push({type:"data",content:t}),{linkage:e,url:t};case"ipfs":return e.push({type:"ipfs",content:t}),{linkage:e,url:Jf(t)};case"erc721":case"erc1155":{const n="erc721"===i?"0xc87b56dd":"0x0e89341c";e.push({type:i,content:t});const a=this._resolvedAddress||(yield this.getAddress()),o=(r[2]||"").split("/");if(2!==o.length)return null;const s=yield this.provider.formatter.address(o[0]),u=$n(ur.from(o[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:s,data:Jn(["0x6352211e",u])}));if(a!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=ur.from(yield this.provider.call({to:s,data:Jn(["0x00fdd58e",$n(a,32),u])}));if(t.isZero())return null;e.push({type:"balance",content:t.toString()})}const c={to:this.provider.formatter.address(o[0]),data:Jn([n,u])};let l=Kf(yield this.provider.call(c),0);if(null==l)return null;e.push({type:"metadata-url-base",content:l}),"erc1155"===i&&(l=l.replace("{id}",u.substring(2)),e.push({type:"metadata-url-expanded",content:l})),l.match(/^ipfs:/i)&&(l=Jf(l)),e.push({type:"metadata-url",content:l});const d=yield pf(l);if(!d)return null;e.push({type:"metadata",content:JSON.stringify(d)});let f=d.image;if("string"!=typeof f)return null;if(f.match(/^(https:\/\/|data:)/i));else{if(null==f.match(Wf))return null;e.push({type:"url-ipfs",content:f}),f=Jf(f)}return e.push({type:"url",content:f}),{linkage:e,url:f}}}}}catch(e){}return null}))}getContentHash(){return Pf(this,void 0,void 0,(function*(){const e=yield this._fetchBytes("0xbc1c58d1");if(null==e||"0x"===e)return null;const t=e.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const e=parseInt(t[3],16);if(t[4].length===2*e)return"ipfs://"+Sl.encode("0x"+t[1])}const n=e.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(n){const e=parseInt(n[3],16);if(n[4].length===2*e)return"ipns://"+Sl.encode("0x"+n[1])}const r=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(r&&64===r[1].length)return"bzz://"+r[1];const i=e.match(/^0x90b2c605([0-9a-f]*)$/);if(i&&68===i[1].length){const e={"=":"","+":"-","/":"_"};return"sia://"+Ga("0x"+i[1]).replace(/[=+\/]/g,(t=>e[t]))}return Mf.throwError("invalid or unsupported content hash data",xn.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})}))}getText(e){return Pf(this,void 0,void 0,(function*(){let t=fa(e);t=jn([Hf(64),Hf(t.length),t]),t.length%32!=0&&(t=jn([t,$n("0x",32-e.length%32)]));const n=yield this._fetchBytes("0x59d1d43c",Vn(t));return null==n||"0x"===n?null:ya(n)}))}}let ep=null,tp=1;class np extends Yo{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),Or(this,"anyNetwork","any"===e),this.anyNetwork&&(e=this.detectNetwork()),e instanceof Promise)this._networkPromise=e,e.catch((e=>{})),this._ready().catch((e=>{}));else{const t=kr(new.target,"getNetwork")(e);t?(Or(this,"_network",t),this.emit("network",t,null)):Mf.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return Pf(this,void 0,void 0,(function*(){if(null==this._network){let e=null;if(this._networkPromise)try{e=yield this._networkPromise}catch(e){}null==e&&(e=yield this.detectNetwork()),e||Mf.throwError("no network detected",xn.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:Or(this,"_network",e),this.emit("network",e,null))}return this._network}))}get ready(){return hf((()=>this._ready().then((e=>e),(e=>{if(e.code!==xn.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))))}static getFormatter(){return null==ep&&(ep=new Of),ep}static getNetwork(e){return af(null==e?"homestead":e)}ccipReadFetch(e,t,n){return Pf(this,void 0,void 0,(function*(){if(this.disableCcipRead||0===n.length)return null;const r=e.to.toLowerCase(),i=t.toLowerCase(),a=[];for(let e=0;e<n.length;e++){const t=n[e],o=t.replace("{sender}",r).replace("{data}",i),s=t.indexOf("{data}")>=0?null:JSON.stringify({data:i,sender:r}),u=yield pf({url:o,errorPassThrough:!0},s,((e,t)=>(e.status=t.statusCode,e)));if(u.data)return u.data;const c=u.message||"unknown error";if(u.status>=400&&u.status<500)return Mf.throwError(`response not found during CCIP fetch: ${c}`,xn.errors.SERVER_ERROR,{url:t,errorMessage:c});a.push(c)}return Mf.throwError(`error encountered during CCIP fetch: ${a.map((e=>JSON.stringify(e))).join(", ")}`,xn.errors.SERVER_ERROR,{urls:n,errorMessages:a})}))}_getInternalBlockNumber(e){return Pf(this,void 0,void 0,(function*(){if(yield this._ready(),e>0)for(;this._internalBlockNumber;){const t=this._internalBlockNumber;try{const n=yield t;if(Lf()-n.respTime<=e)return n.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=Lf(),n=Sr({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then((e=>null),(e=>e))}).then((({blockNumber:e,networkError:r})=>{if(r)throw this._internalBlockNumber===n&&(this._internalBlockNumber=null),r;const i=Lf();return(e=ur.from(e).toNumber())<this._maxInternalBlockNumber&&(e=this._maxInternalBlockNumber),this._maxInternalBlockNumber=e,this._setFastBlockNumber(e),{blockNumber:e,reqTime:t,respTime:i}}));return this._internalBlockNumber=n,n.catch((e=>{this._internalBlockNumber===n&&(this._internalBlockNumber=null)})),(yield n).blockNumber}))}poll(){return Pf(this,void 0,void 0,(function*(){const e=tp++,t=[];let n=null;try{n=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(e){return void this.emit("error",e)}if(this._setFastBlockNumber(n),this.emit("poll",e,n),n!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=n-1),Math.abs(this._emitted.block-n)>1e3)Mf.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${n})`),this.emit("error",Mf.makeError("network block skew detected",xn.errors.NETWORK_ERROR,{blockNumber:n,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",n);else for(let e=this._emitted.block+1;e<=n;e++)this.emit("block",e);this._emitted.block!==n&&(this._emitted.block=n,Object.keys(this._emitted).forEach((e=>{if("block"===e)return;const t=this._emitted[e];"pending"!==t&&n-t>12&&delete this._emitted[e]}))),-2===this._lastBlockNumber&&(this._lastBlockNumber=n-1),this._events.forEach((e=>{switch(e.type){case"tx":{const n=e.hash;let r=this.getTransactionReceipt(n).then((e=>e&&null!=e.blockNumber?(this._emitted["t:"+n]=e.blockNumber,this.emit(n,e),null):null)).catch((e=>{this.emit("error",e)}));t.push(r);break}case"filter":if(!e._inflight){e._inflight=!0,-2===e._lastBlockNumber&&(e._lastBlockNumber=n-1);const r=e.filter;r.fromBlock=e._lastBlockNumber+1,r.toBlock=n;const i=r.toBlock-this._maxFilterBlockRange;i>r.fromBlock&&(r.fromBlock=i),r.fromBlock<0&&(r.fromBlock=0);const a=this.getLogs(r).then((t=>{e._inflight=!1,0!==t.length&&t.forEach((t=>{t.blockNumber>e._lastBlockNumber&&(e._lastBlockNumber=t.blockNumber),this._emitted["b:"+t.blockHash]=t.blockNumber,this._emitted["t:"+t.transactionHash]=t.blockNumber,this.emit(r,t)}))})).catch((t=>{this.emit("error",t),e._inflight=!1}));t.push(a)}}})),this._lastBlockNumber=n,Promise.all(t).then((()=>{this.emit("didPoll",e)})).catch((e=>{this.emit("error",e)}))}else this.emit("didPoll",e)}))}resetEventsBlock(e){this._lastBlockNumber=e-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return Pf(this,void 0,void 0,(function*(){return Mf.throwError("provider does not support network detection",xn.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})}))}getNetwork(){return Pf(this,void 0,void 0,(function*(){const e=yield this._ready(),t=yield this.detectNetwork();if(e.chainId!==t.chainId){if(this.anyNetwork)return this._network=t,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",t,e),yield Uf(0),this._network;const n=Mf.makeError("underlying network changed",xn.errors.NETWORK_ERROR,{event:"changed",network:e,detectedNetwork:t});throw this.emit("error",n),n}return e}))}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then((e=>{this._setFastBlockNumber(e)}),(e=>{})),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(e){e&&!this._poller?(this._poller=setInterval((()=>{this.poll()}),this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout((()=>{this.poll(),this._bootstrapPoll=setTimeout((()=>{this._poller||this.poll(),this._bootstrapPoll=null}),this.pollingInterval)}),0))):!e&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(e){if("number"!=typeof e||e<=0||parseInt(String(e))!=e)throw new Error("invalid polling interval");this._pollingInterval=e,this._poller&&(clearInterval(this._poller),this._poller=setInterval((()=>{this.poll()}),this._pollingInterval))}_getFastBlockNumber(){const e=Lf();return e-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=e,this._fastBlockNumberPromise=this.getBlockNumber().then((e=>((null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e),this._fastBlockNumber)))),this._fastBlockNumberPromise}_setFastBlockNumber(e){null!=this._fastBlockNumber&&e<this._fastBlockNumber||(this._fastQueryDate=Lf(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,n){return Pf(this,void 0,void 0,(function*(){return this._waitForTransaction(e,null==t?1:t,n||0,null)}))}_waitForTransaction(e,t,n,r){return Pf(this,void 0,void 0,(function*(){const i=yield this.getTransactionReceipt(e);return(i?i.confirmations:0)>=t?i:new Promise(((i,a)=>{const o=[];let s=!1;const u=function(){return!!s||(s=!0,o.forEach((e=>{e()})),!1)},c=e=>{e.confirmations<t||u()||i(e)};if(this.on(e,c),o.push((()=>{this.removeListener(e,c)})),r){let n=r.startBlock,i=null;const c=o=>Pf(this,void 0,void 0,(function*(){s||(yield Uf(1e3),this.getTransactionCount(r.from).then((l=>Pf(this,void 0,void 0,(function*(){if(!s){if(l<=r.nonce)n=o;else{{const t=yield this.getTransaction(e);if(t&&null!=t.blockNumber)return}for(null==i&&(i=n-3,i<r.startBlock&&(i=r.startBlock));i<=o;){if(s)return;const n=yield this.getBlockWithTransactions(i);for(let i=0;i<n.transactions.length;i++){const o=n.transactions[i];if(o.hash===e)return;if(o.from===r.from&&o.nonce===r.nonce){if(s)return;const n=yield this.waitForTransaction(o.hash,t);if(u())return;let i="replaced";return o.data===r.data&&o.to===r.to&&o.value.eq(r.value)?i="repriced":"0x"===o.data&&o.from===o.to&&o.value.isZero()&&(i="cancelled"),void a(Mf.makeError("transaction was replaced",xn.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===i||"cancelled"===i,reason:i,replacement:this._wrapTransaction(o),hash:e,receipt:n}))}}i++}}s||this.once("block",c)}}))),(e=>{s||this.once("block",c)})))}));if(s)return;this.once("block",c),o.push((()=>{this.removeListener("block",c)}))}if("number"==typeof n&&n>0){const e=setTimeout((()=>{u()||a(Mf.makeError("timeout exceeded",xn.errors.TIMEOUT,{timeout:n}))}),n);e.unref&&e.unref(),o.push((()=>{clearTimeout(e)}))}}))}))}getBlockNumber(){return Pf(this,void 0,void 0,(function*(){return this._getInternalBlockNumber(0)}))}getGasPrice(){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return ur.from(e)}catch(t){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}}))}getBalance(e,t){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Sr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getBalance",n);try{return ur.from(r)}catch(e){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"getBalance",params:n,result:r,error:e})}}))}getTransactionCount(e,t){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Sr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getTransactionCount",n);try{return ur.from(r).toNumber()}catch(e){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:r,error:e})}}))}getCode(e,t){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Sr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getCode",n);try{return Vn(r)}catch(e){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"getCode",params:n,result:r,error:e})}}))}getStorageAt(e,t,n){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield Sr({address:this._getAddress(e),blockTag:this._getBlockTag(n),position:Promise.resolve(t).then((e=>Yn(e)))}),i=yield this.perform("getStorageAt",r);try{return Vn(i)}catch(e){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"getStorageAt",params:r,result:i,error:e})}}))}_wrapTransaction(e,t,n){if(null!=t&&32!==Kn(t))throw new Error("invalid response - sendTransaction");const r=e;return null!=t&&e.hash!==t&&Mf.throwError("Transaction hash mismatch from Provider.sendTransaction.",xn.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),r.wait=(t,r)=>Pf(this,void 0,void 0,(function*(){let i;null==t&&(t=1),null==r&&(r=0),0!==t&&null!=n&&(i={data:e.data,from:e.from,nonce:e.nonce,to:e.to,value:e.value,startBlock:n});const a=yield this._waitForTransaction(e.hash,t,r,i);return null==a&&0===t?null:(this._emitted["t:"+e.hash]=a.blockNumber,0===a.status&&Mf.throwError("transaction failed",xn.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:a}),a)})),r}sendTransaction(e){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then((e=>Vn(e))),n=this.formatter.transaction(e);null==n.confirmations&&(n.confirmations=0);const r=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const e=yield this.perform("sendTransaction",{signedTransaction:t});return this._wrapTransaction(n,e,r)}catch(e){throw e.transaction=n,e.transactionHash=n.hash,e}}))}_getTransactionRequest(e){return Pf(this,void 0,void 0,(function*(){const t=yield e,n={};return["from","to"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?this._getAddress(e):null)))})),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?ur.from(e):null)))})),["type"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>null!=e?e:null)))})),t.accessList&&(n.accessList=this.formatter.accessList(t.accessList)),["data"].forEach((e=>{null!=t[e]&&(n[e]=Promise.resolve(t[e]).then((e=>e?Vn(e):null)))})),this.formatter.transactionRequest(yield Sr(n))}))}_getFilter(e){return Pf(this,void 0,void 0,(function*(){e=yield e;const t={};return null!=e.address&&(t.address=this._getAddress(e.address)),["blockHash","topics"].forEach((n=>{null!=e[n]&&(t[n]=e[n])})),["fromBlock","toBlock"].forEach((n=>{null!=e[n]&&(t[n]=this._getBlockTag(e[n]))})),this.formatter.filter(yield Sr(t))}))}_call(e,t,n){return Pf(this,void 0,void 0,(function*(){n>=10&&Mf.throwError("CCIP read exceeded maximum redirections",xn.errors.SERVER_ERROR,{redirects:n,transaction:e});const r=e.to,i=yield this.perform("call",{transaction:e,blockTag:t});if(n>=0&&"latest"===t&&null!=r&&"0x556f1830"===i.substring(0,10)&&Kn(i)%32==4)try{const a=Xn(i,4),o=Xn(a,0,32);ur.from(o).eq(r)||Mf.throwError("CCIP Read sender did not match",xn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const s=[],u=ur.from(Xn(a,32,64)).toNumber(),c=ur.from(Xn(a,u,u+32)).toNumber(),l=Xn(a,u+32);for(let t=0;t<c;t++){const n=Kf(l,32*t);null==n&&Mf.throwError("CCIP Read contained corrupt URL string",xn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),s.push(n)}const d=Xf(a,64);ur.from(Xn(a,100,128)).isZero()||Mf.throwError("CCIP Read callback selector included junk",xn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const f=Xn(a,96,100),p=Xf(a,128),h=yield this.ccipReadFetch(e,d,s);null==h&&Mf.throwError("CCIP Read disabled or provided no URLs",xn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:r,data:Jn([f,$f([h,p])])};return this._call(m,t,n+1)}catch(e){if(e.code===xn.errors.SERVER_ERROR)throw e}try{return Vn(i)}catch(n){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:n})}}))}call(e,t){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Sr({transaction:this._getTransactionRequest(e),blockTag:this._getBlockTag(t),ccipReadEnabled:Promise.resolve(e.ccipReadEnabled)});return this._call(n.transaction,n.blockTag,n.ccipReadEnabled?0:-1)}))}estimateGas(e){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Sr({transaction:this._getTransactionRequest(e)}),n=yield this.perform("estimateGas",t);try{return ur.from(n)}catch(e){return Mf.throwError("bad result from backend",xn.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:n,error:e})}}))}_getAddress(e){return Pf(this,void 0,void 0,(function*(){"string"!=typeof(e=yield e)&&Mf.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&Mf.throwError("ENS name not configured",xn.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t}))}_getBlock(e,t){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;let n=-128;const r={includeTransactions:!!t};if(zn(e,32))r.blockHash=e;else try{r.blockTag=yield this._getBlockTag(e),zn(r.blockTag)&&(n=parseInt(r.blockTag.substring(2),16))}catch(t){Mf.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return hf((()=>Pf(this,void 0,void 0,(function*(){const e=yield this.perform("getBlock",r);if(null==e)return null!=r.blockHash&&null==this._emitted["b:"+r.blockHash]||null!=r.blockTag&&n>this._emitted.block?null:void 0;if(t){let t=null;for(let n=0;n<e.transactions.length;n++){const r=e.transactions[n];if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){null==t&&(t=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let e=t-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}}const n=this.formatter.blockWithTransactions(e);return n.transactions=n.transactions.map((e=>this._wrapTransaction(e))),n}return this.formatter.block(e)}))),{oncePoll:this})}))}getBlock(e){return this._getBlock(e,!1)}getBlockWithTransactions(e){return this._getBlock(e,!0)}getTransaction(e){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return hf((()=>Pf(this,void 0,void 0,(function*(){const n=yield this.perform("getTransaction",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;const r=this.formatter.transactionResponse(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return this._wrapTransaction(r)}))),{oncePoll:this})}))}getTransactionReceipt(e){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return hf((()=>Pf(this,void 0,void 0,(function*(){const n=yield this.perform("getTransactionReceipt",t);if(null==n)return null==this._emitted["t:"+e]?null:void 0;if(null==n.blockHash)return;const r=this.formatter.receipt(n);if(null==r.blockNumber)r.confirmations=0;else if(null==r.confirmations){let e=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-r.blockNumber+1;e<=0&&(e=1),r.confirmations=e}return r}))),{oncePoll:this})}))}getLogs(e){return Pf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Sr({filter:this._getFilter(e)}),n=yield this.perform("getLogs",t);return n.forEach((e=>{null==e.removed&&(e.removed=!1)})),Of.arrayOf(this.formatter.filterLog.bind(this.formatter))(n)}))}getEtherPrice(){return Pf(this,void 0,void 0,(function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})}))}_getBlockTag(e){return Pf(this,void 0,void 0,(function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&Mf.throwArgumentError("invalid BlockTag","blockTag",e);let t=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return t+=e,t<0&&(t=0),this.formatter.blockTag(t)}return this.formatter.blockTag(e)}))}getResolver(e){return Pf(this,void 0,void 0,(function*(){let t=e;for(;;){if(""===t||"."===t)return null;if("eth"!==e&&"eth"===t)return null;const n=yield this._getResolver(t,"getResolver");if(null!=n){const r=new Zf(this,n,e);return t===e||(yield r.supportsWildcard())?r:null}t=t.split(".").slice(1).join(".")}}))}_getResolver(e,t){return Pf(this,void 0,void 0,(function*(){null==t&&(t="ENS");const n=yield this.getNetwork();n.ensAddress||Mf.throwError("network does not support ENS",xn.errors.UNSUPPORTED_OPERATION,{operation:t,network:n.name});try{const t=yield this.call({to:n.ensAddress,data:"0x0178b8bf"+go(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null}))}resolveName(e){return Pf(this,void 0,void 0,(function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(zn(e))throw t}"string"!=typeof e&&Mf.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null}))}lookupAddress(e){return Pf(this,void 0,void 0,(function*(){e=yield e;const t=(e=this.formatter.address(e)).substring(2).toLowerCase()+".addr.reverse",n=yield this._getResolver(t,"lookupAddress");if(null==n)return null;const r=Kf(yield this.call({to:n,data:"0x691f3431"+go(t).substring(2)}),0);return(yield this.resolveName(r))!=e?null:r}))}getAvatar(e){return Pf(this,void 0,void 0,(function*(){let t=null;if(zn(e)){const n=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(n,"getAvatar");if(!r)return null;t=new Zf(this,r,n);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==xn.errors.CALL_EXCEPTION)throw e}try{const e=Kf(yield this.call({to:r,data:"0x691f3431"+go(n).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==xn.errors.CALL_EXCEPTION)throw e;return null}}else if(t=yield this.getResolver(e),!t)return null;const n=yield t.getAvatar();return null==n?null:n.url}))}perform(e,t){return Mf.throwError(e+" not implemented",xn.errors.NOT_IMPLEMENTED,{operation:e})}_startEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_stopEvent(e){this.polling=this._events.filter((e=>e.pollable())).length>0}_addEventListener(e,t,n){const r=new jf(Ff(e),t,n);return this._events.push(r),this._startEvent(r),this}on(e,t){return this._addEventListener(e,t,!1)}once(e,t){return this._addEventListener(e,t,!0)}emit(e,...t){let n=!1,r=[],i=Ff(e);return this._events=this._events.filter((e=>e.tag!==i||(setTimeout((()=>{e.listener.apply(this,t)}),0),n=!0,!e.once||(r.push(e),!1)))),r.forEach((e=>{this._stopEvent(e)})),n}listenerCount(e){if(!e)return this._events.length;let t=Ff(e);return this._events.filter((e=>e.tag===t)).length}listeners(e){if(null==e)return this._events.map((e=>e.listener));let t=Ff(e);return this._events.filter((e=>e.tag===t)).map((e=>e.listener))}off(e,t){if(null==t)return this.removeAllListeners(e);const n=[];let r=!1,i=Ff(e);return this._events=this._events.filter((e=>e.tag!==i||e.listener!=t||(!!r||(r=!0,n.push(e),!1)))),n.forEach((e=>{this._stopEvent(e)})),this}removeAllListeners(e){let t=[];if(null==e)t=this._events,this._events=[];else{const n=Ff(e);this._events=this._events.filter((e=>e.tag!==n||(t.push(e),!1)))}return t.forEach((e=>{this._stopEvent(e)})),this}}var rp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const ip=new xn(Rf),ap=["call","estimateGas"];function op(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const n=zn(e.data)?e.data:null;if(!t||n)return{message:e.message,data:n}}if("object"==typeof e){for(const n in e){const r=op(e[n],t);if(r)return r}return null}if("string"==typeof e)try{return op(JSON.parse(e),t)}catch(e){}return null}function sp(e,t,n){const r=n.transaction||n.signedTransaction;if("call"===e){const e=op(t,!0);if(e)return e.data;ip.throwError("missing revert data in call exception; Transaction reverted without a reason string",xn.errors.CALL_EXCEPTION,{data:"0x",transaction:r,error:t})}if("estimateGas"===e){let n=op(t.body,!1);null==n&&(n=op(t,!1)),n&&ip.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",xn.errors.UNPREDICTABLE_GAS_LIMIT,{reason:n.message,method:e,transaction:r,error:t})}let i=t.message;throw t.code===xn.errors.SERVER_ERROR&&t.error&&"string"==typeof t.error.message?i=t.error.message:"string"==typeof t.body?i=t.body:"string"==typeof t.responseText&&(i=t.responseText),i=(i||"").toLowerCase(),i.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&ip.throwError("insufficient funds for intrinsic transaction cost",xn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),i.match(/nonce (is )?too low/i)&&ip.throwError("nonce has already been used",xn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&ip.throwError("replacement fee too low",xn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),i.match(/only replay-protected/i)&&ip.throwError("legacy pre-eip-155 transactions not supported",xn.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:r}),ap.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&ip.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",xn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}function up(e){return new Promise((function(t){setTimeout(t,e)}))}function cp(e){if(e.error){const t=new Error(e.error.message);throw t.code=e.error.code,t.data=e.error.data,t}return e.result}function lp(e){return e?e.toLowerCase():e}const dp={};class fp extends ts{constructor(e,t,n){if(super(),e!==dp)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");Or(this,"provider",t),null==n&&(n=0),"string"==typeof n?(Or(this,"_address",this.provider.formatter.address(n)),Or(this,"_index",null)):"number"==typeof n?(Or(this,"_index",n),Or(this,"_address",null)):ip.throwArgumentError("invalid address or index","addressOrIndex",n)}connect(e){return ip.throwError("cannot alter JSON-RPC Signer connection",xn.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new pp(dp,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then((e=>(e.length<=this._index&&ip.throwError("unknown account #"+this._index,xn.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index]))))}sendUncheckedTransaction(e){e=xr(e);const t=this.getAddress().then((e=>(e&&(e=e.toLowerCase()),e)));if(null==e.gasLimit){const n=xr(e);n.from=t,e.gasLimit=this.provider.estimateGas(n)}return null!=e.to&&(e.to=Promise.resolve(e.to).then((e=>rp(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&ip.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))))),Sr({tx:Sr(e),sender:t}).then((({tx:t,sender:n})=>{null!=t.from?t.from.toLowerCase()!==n&&ip.throwArgumentError("from address mismatch","transaction",e):t.from=n;const r=this.provider.constructor.hexlifyTransaction(t,{from:!0});return this.provider.send("eth_sendTransaction",[r]).then((e=>e),(e=>("string"==typeof e.message&&e.message.match(/user denied/i)&&ip.throwError("user rejected transaction",xn.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),sp("sendTransaction",e,r))))}))}signTransaction(e){return ip.throwError("signing transactions is unsupported",xn.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return rp(this,void 0,void 0,(function*(){const t=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),n=yield this.sendUncheckedTransaction(e);try{return yield hf((()=>rp(this,void 0,void 0,(function*(){const e=yield this.provider.getTransaction(n);if(null!==e)return this.provider._wrapTransaction(e,n,t)}))),{oncePoll:this.provider})}catch(e){throw e.transactionHash=n,e}}))}signMessage(e){return rp(this,void 0,void 0,(function*(){const t="string"==typeof e?fa(e):e,n=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Vn(t),n.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&ip.throwError("user rejected signing",xn.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:e}),t}}))}_legacySignMessage(e){return rp(this,void 0,void 0,(function*(){const t="string"==typeof e?fa(e):e,n=yield this.getAddress();try{return yield this.provider.send("eth_sign",[n.toLowerCase(),Vn(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&ip.throwError("user rejected signing",xn.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:e}),t}}))}_signTypedData(e,t,n){return rp(this,void 0,void 0,(function*(){const r=yield Do.resolveNames(e,t,n,(e=>this.provider.resolveName(e))),i=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[i.toLowerCase(),JSON.stringify(Do.getPayload(r.domain,t,r.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&ip.throwError("user rejected signing",xn.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:r.domain,types:t,value:r.value}}),e}}))}unlock(e){return rp(this,void 0,void 0,(function*(){const t=this.provider,n=yield this.getAddress();return t.send("personal_unlockAccount",[n.toLowerCase(),e,null])}))}}class pp extends fp{sendTransaction(e){return this.sendUncheckedTransaction(e).then((e=>({hash:e,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:t=>this.provider.waitForTransaction(e,t)})))}}const hp={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};let mp=class extends np{constructor(e,t){let n=t;null==n&&(n=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then((t=>{e(t)}),(e=>{t(e)}))}),0)}))),super(n),e||(e=kr(this.constructor,"defaultUrl")()),Or(this,"connection","string"==typeof e?Object.freeze({url:e}):Object.freeze(xr(e))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout((()=>{this._cache.detectNetwork=null}),0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return rp(this,void 0,void 0,(function*(){yield up(0);let e=null;try{e=yield this.send("eth_chainId",[])}catch(t){try{e=yield this.send("net_version",[])}catch(e){}}if(null!=e){const t=kr(this.constructor,"getNetwork");try{return t(ur.from(e).toNumber())}catch(t){return ip.throwError("could not detect network",xn.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return ip.throwError("could not detect network",xn.errors.NETWORK_ERROR,{event:"noNetwork"})}))}getSigner(e){return new fp(dp,this,e)}getUncheckedSigner(e){return this.getSigner(e).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then((e=>e.map((e=>this.formatter.address(e)))))}send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:Dr(n),provider:this});const r=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(r&&this._cache[e])return this._cache[e];const i=pf(this.connection,JSON.stringify(n),cp).then((e=>(this.emit("debug",{action:"response",request:n,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",error:e,request:n,provider:this}),e}));return r&&(this._cache[e]=i,setTimeout((()=>{this._cache[e]=null}),0)),i}prepareRequest(e,t){switch(e){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[lp(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[lp(t.address),t.blockTag]];case"getCode":return["eth_getCode",[lp(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[lp(t.address),$n(t.position,32),t.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[t.signedTransaction]];case"getBlock":return t.blockTag?["eth_getBlockByNumber",[t.blockTag,!!t.includeTransactions]]:t.blockHash?["eth_getBlockByHash",[t.blockHash,!!t.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[t.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[t.transactionHash]];case"call":return["eth_call",[kr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[kr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=lp(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return rp(this,void 0,void 0,(function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&ur.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=yield this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&((t=xr(t)).transaction=xr(e),delete t.transaction.type)}}const n=this.prepareRequest(e,t);null==n&&ip.throwError(e+" not implemented",xn.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(n[0],n[1])}catch(n){return sp(e,n,t)}}))}_startEvent(e){"pending"===e.tag&&this._startPending(),super._startEvent(e)}_startPending(){if(null!=this._pendingFilter)return;const e=this,t=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=t,t.then((function(n){return function r(){e.send("eth_getFilterChanges",[n]).then((function(n){if(e._pendingFilter!=t)return null;let r=Promise.resolve();return n.forEach((function(t){e._emitted["t:"+t.toLowerCase()]="pending",r=r.then((function(){return e.getTransaction(t).then((function(t){return e.emit("pending",t),null}))}))})),r.then((function(){return up(1e3)}))})).then((function(){if(e._pendingFilter==t)return setTimeout((function(){r()}),0),null;e.send("eth_uninstallFilter",[n])})).catch((e=>{}))}(),n})).catch((e=>{}))}_stopEvent(e){"pending"===e.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(e)}static hexlifyTransaction(e,t){const n=xr(hp);if(t)for(const e in t)t[e]&&(n[e]=!0);Nr(e,n);const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((function(t){if(null==e[t])return;const n=Yn(ur.from(e[t]));"gasLimit"===t&&(t="gas"),r[t]=n})),["from","to","data"].forEach((function(t){null!=e[t]&&(r[t]=Vn(e[t]))})),e.accessList&&(r.accessList=rl(e.accessList)),r}},yp=null;try{if(yp=WebSocket,null==yp)throw new Error("inject please")}catch(e){const t=new xn(Rf);yp=function(){t.throwError("WebSockets not supported in this environment",xn.errors.UNSUPPORTED_OPERATION,{operation:"new WebSocket()"})}}var gp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const bp=new xn(Rf);let vp=1;class Tp extends mp{constructor(e,t){"any"===t&&bp.throwError("WebSocketProvider does not support 'any' network yet",xn.errors.UNSUPPORTED_OPERATION,{operation:"network:any"}),super("string"==typeof e?e:"_websocket",t),this._pollingInterval=-1,this._wsReady=!1,Or(this,"_websocket","string"==typeof e?new yp(this.connection.url):e),Or(this,"_requests",{}),Or(this,"_subs",{}),Or(this,"_subIds",{}),Or(this,"_detectNetwork",super.detectNetwork()),this.websocket.onopen=()=>{this._wsReady=!0,Object.keys(this._requests).forEach((e=>{this.websocket.send(this._requests[e].payload)}))},this.websocket.onmessage=e=>{const t=e.data,n=JSON.parse(t);if(null!=n.id){const e=String(n.id),r=this._requests[e];if(delete this._requests[e],void 0!==n.result)r.callback(null,n.result),this.emit("debug",{action:"response",request:JSON.parse(r.payload),response:n.result,provider:this});else{let e=null;n.error?(e=new Error(n.error.message||"unknown error"),Or(e,"code",n.error.code||null),Or(e,"response",t)):e=new Error("unknown error"),r.callback(e,void 0),this.emit("debug",{action:"response",error:e,request:JSON.parse(r.payload),provider:this})}}else if("eth_subscription"===n.method){const e=this._subs[n.params.subscription];e&&e.processFunc(n.params.result)}else console.warn("this should not happen")};const n=setInterval((()=>{this.emit("poll")}),1e3);n.unref&&n.unref()}get websocket(){return this._websocket}detectNetwork(){return this._detectNetwork}get pollingInterval(){return 0}resetEventsBlock(e){bp.throwError("cannot reset events block on WebSocketProvider",xn.errors.UNSUPPORTED_OPERATION,{operation:"resetEventBlock"})}set pollingInterval(e){bp.throwError("cannot set polling interval on WebSocketProvider",xn.errors.UNSUPPORTED_OPERATION,{operation:"setPollingInterval"})}poll(){return gp(this,void 0,void 0,(function*(){return null}))}set polling(e){e&&bp.throwError("cannot set polling on WebSocketProvider",xn.errors.UNSUPPORTED_OPERATION,{operation:"setPolling"})}send(e,t){const n=vp++;return new Promise(((r,i)=>{const a=JSON.stringify({method:e,params:t,id:n,jsonrpc:"2.0"});this.emit("debug",{action:"request",request:JSON.parse(a),provider:this}),this._requests[String(n)]={callback:function(e,t){return e?i(e):r(t)},payload:a},this._wsReady&&this.websocket.send(a)}))}static defaultUrl(){return"ws://localhost:8546"}_subscribe(e,t,n){return gp(this,void 0,void 0,(function*(){let r=this._subIds[e];null==r&&(r=Promise.all(t).then((e=>this.send("eth_subscribe",e))),this._subIds[e]=r);const i=yield r;this._subs[i]={tag:e,processFunc:n}}))}_startEvent(e){switch(e.type){case"block":this._subscribe("block",["newHeads"],(e=>{const t=ur.from(e.number).toNumber();this._emitted.block=t,this.emit("block",t)}));break;case"pending":this._subscribe("pending",["newPendingTransactions"],(e=>{this.emit("pending",e)}));break;case"filter":this._subscribe(e.tag,["logs",this._getFilter(e.filter)],(t=>{null==t.removed&&(t.removed=!1),this.emit(e.filter,this.formatter.filterLog(t))}));break;case"tx":{const t=e=>{const t=e.hash;this.getTransactionReceipt(t).then((e=>{e&&this.emit(t,e)}))};t(e),this._subscribe("tx",["newHeads"],(e=>{this._events.filter((e=>"tx"===e.type)).forEach(t)}));break}case"debug":case"poll":case"willPoll":case"didPoll":case"error":break;default:console.log("unhandled:",e)}}_stopEvent(e){let t=e.tag;if("tx"===e.type){if(this._events.filter((e=>"tx"===e.type)).length)return;t="tx"}else if(this.listenerCount(e.event))return;const n=this._subIds[t];n&&(delete this._subIds[t],n.then((e=>{this._subs[e]&&(delete this._subs[e],this.send("eth_unsubscribe",[e]))})))}destroy(){return gp(this,void 0,void 0,(function*(){this.websocket.readyState===yp.CONNECTING&&(yield new Promise((e=>{this.websocket.onopen=function(){e(!0)},this.websocket.onerror=function(){e(!1)}}))),this.websocket.close(1e3)}))}}var wp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Ap=new xn(Rf);class Ep extends mp{detectNetwork(){const e=Object.create(null,{detectNetwork:{get:()=>super.detectNetwork}});return wp(this,void 0,void 0,(function*(){let t=this.network;return null==t&&(t=yield e.detectNetwork.call(this),t||Ap.throwError("no network detected",xn.errors.UNKNOWN_ERROR,{}),null==this._network&&(Or(this,"_network",t),this.emit("network",t,null))),t}))}}class _p extends Ep{constructor(e,t){Ap.checkAbstract(new.target,_p),e=kr(new.target,"getNetwork")(e),t=kr(new.target,"getApiKey")(t);super(kr(new.target,"getUrl")(e,t),e),"string"==typeof t?Or(this,"apiKey",t):null!=t&&Object.keys(t).forEach((e=>{Or(this,e,t[e])}))}_startPending(){Ap.warn("WARNING: API provider does not support pending filters")}isCommunityResource(){return!1}getSigner(e){return Ap.throwError("API provider does not support signing",xn.errors.UNSUPPORTED_OPERATION,{operation:"getSigner"})}listAccounts(){return Promise.resolve([])}static getApiKey(e){return e}static getUrl(e,t){return Ap.throwError("not implemented; sub-classes must override getUrl",xn.errors.NOT_IMPLEMENTED,{operation:"getUrl"})}}const Ip=new xn(Rf),Rp="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";class Cp extends Tp{constructor(e,t){const n=new Op(e,t);super(n.connection.url.replace(/^http/i,"ws").replace(".alchemyapi.",".ws.alchemyapi."),n.network),Or(this,"apiKey",n.apiKey)}isCommunityResource(){return this.apiKey===Rp}}class Op extends _p{static getWebSocketProvider(e,t){return new Cp(e,t)}static getApiKey(e){return null==e?Rp:(e&&"string"!=typeof e&&Ip.throwArgumentError("invalid apiKey","apiKey",e),e)}static getUrl(e,t){let n=null;switch(e.name){case"homestead":n="eth-mainnet.alchemyapi.io/v2/";break;case"goerli":n="eth-goerli.g.alchemy.com/v2/";break;case"matic":n="polygon-mainnet.g.alchemy.com/v2/";break;case"maticmum":n="polygon-mumbai.g.alchemy.com/v2/";break;case"arbitrum":n="arb-mainnet.g.alchemy.com/v2/";break;case"arbitrum-goerli":n="arb-goerli.g.alchemy.com/v2/";break;case"optimism":n="opt-mainnet.g.alchemy.com/v2/";break;case"optimism-goerli":n="opt-goerli.g.alchemy.com/v2/";break;default:Ip.throwArgumentError("unsupported network","network",arguments[0])}return{allowGzip:!0,url:"https://"+n+t,throttleCallback:(e,n)=>(t===Rp&&xf(),Promise.resolve(!0))}}isCommunityResource(){return this.apiKey===Rp}}const kp=new xn(Rf),Sp="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function Np(e){switch(e){case"homestead":return"rpc.ankr.com/eth/";case"ropsten":return"rpc.ankr.com/eth_ropsten/";case"rinkeby":return"rpc.ankr.com/eth_rinkeby/";case"goerli":return"rpc.ankr.com/eth_goerli/";case"matic":return"rpc.ankr.com/polygon/";case"arbitrum":return"rpc.ankr.com/arbitrum/"}return kp.throwArgumentError("unsupported network","name",e)}class xp extends _p{isCommunityResource(){return this.apiKey===Sp}static getApiKey(e){return null==e?Sp:e}static getUrl(e,t){null==t&&(t=Sp);const n={allowGzip:!0,url:"https://"+Np(e.name)+t,throttleCallback:(e,n)=>(t.apiKey===Sp&&xf(),Promise.resolve(!0))};return null!=t.projectSecret&&(n.user="",n.password=t.projectSecret),n}}var Pp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Mp=new xn(Rf);class Bp extends _p{static getApiKey(e){return null!=e&&Mp.throwArgumentError("apiKey not supported for cloudflare","apiKey",e),null}static getUrl(e,t){let n=null;if("homestead"===e.name)n="https://cloudflare-eth.com/";else Mp.throwArgumentError("unsupported network","network",arguments[0]);return n}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return Pp(this,void 0,void 0,(function*(){if("getBlockNumber"===e){return(yield n.perform.call(this,"getBlock",{blockTag:"latest"})).number}return n.perform.call(this,e,t)}))}}var Dp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Fp=new xn(Rf);function Lp(e){const t={};for(let n in e){if(null==e[n])continue;let r=e[n];"type"===n&&0===r||(r={type:!0,gasLimit:!0,gasPrice:!0,maxFeePerGs:!0,maxPriorityFeePerGas:!0,nonce:!0,value:!0}[n]?Yn(Vn(r)):"accessList"===n?"["+rl(r).map((e=>`{address:"${e.address}",storageKeys:["${e.storageKeys.join('","')}"]}`)).join(",")+"]":Vn(r),t[n]=r)}return t}function Up(e){if(0==e.status&&("No records found"===e.message||"No transactions found"===e.message))return e.result;if(1!=e.status||"string"!=typeof e.message||!e.message.match(/^OK/)){const t=new Error("invalid response");throw t.result=JSON.stringify(e),(e.result||"").toLowerCase().indexOf("rate limit")>=0&&(t.throttleRetry=!0),t}return e.result}function qp(e){if(e&&0==e.status&&"NOTOK"==e.message&&(e.result||"").toLowerCase().indexOf("rate limit")>=0){const t=new Error("throttled response");throw t.result=JSON.stringify(e),t.throttleRetry=!0,t}if("2.0"!=e.jsonrpc){const t=new Error("invalid response");throw t.result=JSON.stringify(e),t}if(e.error){const t=new Error(e.error.message||"unknown error");throw e.error.code&&(t.code=e.error.code),e.error.data&&(t.data=e.error.data),t}return e.result}function jp(e){if("pending"===e)throw new Error("pending not supported");return"latest"===e?e:parseInt(e.substring(2),16)}function Gp(e,t,n){if("call"===e&&t.code===xn.errors.SERVER_ERROR){const e=t.error;if(e&&(e.message.match(/reverted/i)||e.message.match(/VM execution error/i))){let n=e.data;if(n&&(n="0x"+n.replace(/^.*0x/i,"")),zn(n))return n;Fp.throwError("missing revert data in call exception",xn.errors.CALL_EXCEPTION,{error:t,data:"0x"})}}let r=t.message;throw t.code===xn.errors.SERVER_ERROR&&(t.error&&"string"==typeof t.error.message?r=t.error.message:"string"==typeof t.body?r=t.body:"string"==typeof t.responseText&&(r=t.responseText)),r=(r||"").toLowerCase(),r.match(/insufficient funds/)&&Fp.throwError("insufficient funds for intrinsic transaction cost",xn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),r.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&Fp.throwError("nonce has already been used",xn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),r.match(/another transaction with same nonce/)&&Fp.throwError("replacement fee too low",xn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),r.match(/execution failed due to an exception|execution reverted/)&&Fp.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",xn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}class Hp extends np{constructor(e,t){super(e),Or(this,"baseUrl",this.getBaseUrl()),Or(this,"apiKey",t||null)}getBaseUrl(){switch(this.network?this.network.name:"invalid"){case"homestead":return"https://api.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"sepolia":return"https://api-sepolia.etherscan.io";case"matic":return"https://api.polygonscan.com";case"maticmum":return"https://api-testnet.polygonscan.com";case"arbitrum":return"https://api.arbiscan.io";case"arbitrum-goerli":return"https://api-goerli.arbiscan.io";case"optimism":return"https://api-optimistic.etherscan.io";case"optimism-goerli":return"https://api-goerli-optimistic.etherscan.io"}return Fp.throwArgumentError("unsupported network","network",this.network.name)}getUrl(e,t){const n=Object.keys(t).reduce(((e,n)=>{const r=t[n];return null!=r&&(e+=`&${n}=${r}`),e}),""),r=this.apiKey?`&apikey=${this.apiKey}`:"";return`${this.baseUrl}/api?module=${e}${n}${r}`}getPostUrl(){return`${this.baseUrl}/api`}getPostData(e,t){return t.module=e,t.apikey=this.apiKey,t}fetch(e,t,n){return Dp(this,void 0,void 0,(function*(){const r=n?this.getPostUrl():this.getUrl(e,t),i=n?this.getPostData(e,t):null,a="proxy"===e?qp:Up;this.emit("debug",{action:"request",request:r,provider:this});const o={url:r,throttleSlotInterval:1e3,throttleCallback:(e,t)=>(this.isCommunityResource()&&xf(),Promise.resolve(!0))};let s=null;i&&(o.headers={"content-type":"application/x-www-form-urlencoded; charset=UTF-8"},s=Object.keys(i).map((e=>`${e}=${i[e]}`)).join("&"));const u=yield pf(o,s,a||qp);return this.emit("debug",{action:"response",request:r,response:Dr(u),provider:this}),u}))}detectNetwork(){return Dp(this,void 0,void 0,(function*(){return this.network}))}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return Dp(this,void 0,void 0,(function*(){switch(e){case"getBlockNumber":return this.fetch("proxy",{action:"eth_blockNumber"});case"getGasPrice":return this.fetch("proxy",{action:"eth_gasPrice"});case"getBalance":return this.fetch("account",{action:"balance",address:t.address,tag:t.blockTag});case"getTransactionCount":return this.fetch("proxy",{action:"eth_getTransactionCount",address:t.address,tag:t.blockTag});case"getCode":return this.fetch("proxy",{action:"eth_getCode",address:t.address,tag:t.blockTag});case"getStorageAt":return this.fetch("proxy",{action:"eth_getStorageAt",address:t.address,position:t.position,tag:t.blockTag});case"sendTransaction":return this.fetch("proxy",{action:"eth_sendRawTransaction",hex:t.signedTransaction},!0).catch((e=>Gp("sendTransaction",e,t.signedTransaction)));case"getBlock":if(t.blockTag)return this.fetch("proxy",{action:"eth_getBlockByNumber",tag:t.blockTag,boolean:t.includeTransactions?"true":"false"});throw new Error("getBlock by blockHash not implemented");case"getTransaction":return this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:t.transactionHash});case"getTransactionReceipt":return this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:t.transactionHash});case"call":{if("latest"!==t.blockTag)throw new Error("EtherscanProvider does not support blockTag for call");const e=Lp(t.transaction);e.module="proxy",e.action="eth_call";try{return yield this.fetch("proxy",e,!0)}catch(e){return Gp("call",e,t.transaction)}}case"estimateGas":{const e=Lp(t.transaction);e.module="proxy",e.action="eth_estimateGas";try{return yield this.fetch("proxy",e,!0)}catch(e){return Gp("estimateGas",e,t.transaction)}}case"getLogs":{const e={action:"getLogs"};if(t.filter.fromBlock&&(e.fromBlock=jp(t.filter.fromBlock)),t.filter.toBlock&&(e.toBlock=jp(t.filter.toBlock)),t.filter.address&&(e.address=t.filter.address),t.filter.topics&&t.filter.topics.length>0&&(t.filter.topics.length>1&&Fp.throwError("unsupported topic count",xn.errors.UNSUPPORTED_OPERATION,{topics:t.filter.topics}),1===t.filter.topics.length)){const n=t.filter.topics[0];"string"==typeof n&&66===n.length||Fp.throwError("unsupported topic format",xn.errors.UNSUPPORTED_OPERATION,{topic0:n}),e.topic0=n}const n=yield this.fetch("logs",e);let r={};for(let e=0;e<n.length;e++){const t=n[e];if(null==t.blockHash){if(null==r[t.blockNumber]){const e=yield this.getBlock(t.blockNumber);e&&(r[t.blockNumber]=e.hash)}t.blockHash=r[t.blockNumber]}}return n}case"getEtherPrice":return"homestead"!==this.network.name?0:parseFloat((yield this.fetch("stats",{action:"ethprice"})).ethusd)}return n.perform.call(this,e,t)}))}getHistory(e,t,n){return Dp(this,void 0,void 0,(function*(){const r={action:"txlist",address:yield this.resolveName(e),startblock:null==t?0:t,endblock:null==n?99999999:n,sort:"asc"};return(yield this.fetch("account",r)).map((e=>{["contractAddress","to"].forEach((function(t){""==e[t]&&delete e[t]})),null==e.creates&&null!=e.contractAddress&&(e.creates=e.contractAddress);const t=this.formatter.transactionResponse(e);return e.timeStamp&&(t.timestamp=parseInt(e.timeStamp)),t}))}))}isCommunityResource(){return null==this.apiKey}}var zp=window&&window.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const Wp=new xn(Rf);function Vp(){return(new Date).getTime()}function Kp(e){let t=null;for(let n=0;n<e.length;n++){const r=e[n];if(null==r)return null;t?t.name===r.name&&t.chainId===r.chainId&&(t.ensAddress===r.ensAddress||null==t.ensAddress&&null==r.ensAddress)||Wp.throwArgumentError("provider mismatch","networks",e):t=r}return t}function Xp(e,t){e=e.slice().sort();const n=Math.floor(e.length/2);if(e.length%2)return e[n];const r=e[n-1],i=e[n];return null!=t&&Math.abs(r-i)>t?null:(r+i)/2}function Jp(e){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return JSON.stringify(e);if("string"==typeof e)return e;if(ur.isBigNumber(e))return e.toString();if(Array.isArray(e))return JSON.stringify(e.map((e=>Jp(e))));if("object"==typeof e){const t=Object.keys(e);return t.sort(),"{"+t.map((t=>{let n=e[t];return n="function"==typeof n?"[function]":Jp(n),JSON.stringify(t)+":"+n})).join(",")+"}"}throw new Error("unknown value type: "+typeof e)}let Yp=1;function Qp(e){let t=null,n=null,r=new Promise((r=>{t=function(){n&&(clearTimeout(n),n=null),r()},n=setTimeout(t,e)}));return{cancel:t,getPromise:function(){return r},wait:e=>(r=r.then(e),r)}}const $p=[xn.errors.CALL_EXCEPTION,xn.errors.INSUFFICIENT_FUNDS,xn.errors.NONCE_EXPIRED,xn.errors.REPLACEMENT_UNDERPRICED,xn.errors.UNPREDICTABLE_GAS_LIMIT],Zp=["address","args","errorArgs","errorSignature","method","transaction"];function eh(e,t){const n={weight:e.weight};return Object.defineProperty(n,"provider",{get:()=>e.provider}),e.start&&(n.start=e.start),t&&(n.duration=t-e.start),e.done&&(e.error?n.error=e.error:n.result=e.result||null),n}function th(e,t,n){let r=Jp;switch(t){case"getBlockNumber":return function(t){const n=t.map((e=>e.result));let r=Xp(t.map((e=>e.result)),2);if(null!=r)return r=Math.ceil(r),n.indexOf(r+1)>=0&&r++,r>=e._highestBlockNumber&&(e._highestBlockNumber=r),e._highestBlockNumber};case"getGasPrice":return function(e){const t=e.map((e=>e.result));return t.sort(),t[Math.floor(t.length/2)]};case"getEtherPrice":return function(e){return Xp(e.map((e=>e.result)))};case"getBalance":case"getTransactionCount":case"getCode":case"getStorageAt":case"call":case"estimateGas":case"getLogs":break;case"getTransaction":case"getTransactionReceipt":r=function(e){return null==e?null:((e=xr(e)).confirmations=-1,Jp(e))};break;case"getBlock":r=n.includeTransactions?function(e){return null==e?null:((e=xr(e)).transactions=e.transactions.map((e=>((e=xr(e)).confirmations=-1,e))),Jp(e))}:function(e){return null==e?null:Jp(e)};break;default:throw new Error("unknown method: "+t)}return function(e,t){return function(n){const r={};n.forEach((t=>{const n=e(t.result);r[n]||(r[n]={count:0,result:t.result}),r[n].count++}));const i=Object.keys(r);for(let e=0;e<i.length;e++){const n=r[i[e]];if(n.count>=t)return n.result}}}(r,e.quorum)}function nh(e,t){return zp(this,void 0,void 0,(function*(){const n=e.provider;return null!=n.blockNumber&&n.blockNumber>=t||-1===t?n:hf((()=>new Promise(((r,i)=>{setTimeout((function(){return n.blockNumber>=t?r(n):e.cancelled?r(null):r(void 0)}),0)}))),{oncePoll:n})}))}function rh(e,t,n,r){return zp(this,void 0,void 0,(function*(){let i=e.provider;switch(n){case"getBlockNumber":case"getGasPrice":return i[n]();case"getEtherPrice":if(i.getEtherPrice)return i.getEtherPrice();break;case"getBalance":case"getTransactionCount":case"getCode":return r.blockTag&&zn(r.blockTag)&&(i=yield nh(e,t)),i[n](r.address,r.blockTag||"latest");case"getStorageAt":return r.blockTag&&zn(r.blockTag)&&(i=yield nh(e,t)),i.getStorageAt(r.address,r.position,r.blockTag||"latest");case"getBlock":return r.blockTag&&zn(r.blockTag)&&(i=yield nh(e,t)),i[r.includeTransactions?"getBlockWithTransactions":"getBlock"](r.blockTag||r.blockHash);case"call":case"estimateGas":return r.blockTag&&zn(r.blockTag)&&(i=yield nh(e,t)),"call"===n&&r.blockTag?i[n](r.transaction,r.blockTag):i[n](r.transaction);case"getTransaction":case"getTransactionReceipt":return i[n](r.transactionHash);case"getLogs":{let n=r.filter;return(n.fromBlock&&zn(n.fromBlock)||n.toBlock&&zn(n.toBlock))&&(i=yield nh(e,t)),i.getLogs(n)}}return Wp.throwError("unknown method error",xn.errors.UNKNOWN_ERROR,{method:n,params:r})}))}class ih extends np{constructor(e,t){0===e.length&&Wp.throwArgumentError("missing providers","providers",e);const n=e.map(((e,t)=>{if(Yo.isProvider(e)){const t=Sf(e)?2e3:750,n=1;return Object.freeze({provider:e,weight:1,stallTimeout:t,priority:n})}const n=xr(e);null==n.priority&&(n.priority=1),null==n.stallTimeout&&(n.stallTimeout=Sf(e)?2e3:750),null==n.weight&&(n.weight=1);const r=n.weight;return(r%1||r>512||r<1)&&Wp.throwArgumentError("invalid weight; must be integer in [1, 512]",`providers[${t}].weight`,r),Object.freeze(n)})),r=n.reduce(((e,t)=>e+t.weight),0);null==t?t=r/2:t>r&&Wp.throwArgumentError("quorum will always fail; larger than total weight","quorum",t);let i=Kp(n.map((e=>e.provider.network)));null==i&&(i=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then(e,t)}),0)}))),super(i),Or(this,"providerConfigs",Object.freeze(n)),Or(this,"quorum",t),this._highestBlockNumber=-1}detectNetwork(){return zp(this,void 0,void 0,(function*(){return Kp(yield Promise.all(this.providerConfigs.map((e=>e.provider.getNetwork()))))}))}perform(e,t){return zp(this,void 0,void 0,(function*(){if("sendTransaction"===e){const e=yield Promise.all(this.providerConfigs.map((e=>e.provider.sendTransaction(t.signedTransaction).then((e=>e.hash),(e=>e)))));for(let t=0;t<e.length;t++){const n=e[t];if("string"==typeof n)return n}throw e[0]}-1===this._highestBlockNumber&&"getBlockNumber"!==e&&(yield this.getBlockNumber());const n=th(this,e,t),r=pd(this.providerConfigs.map(xr));r.sort(((e,t)=>e.priority-t.priority));const i=this._highestBlockNumber;let a=0,o=!0;for(;;){const s=Vp();let u=r.filter((e=>e.runner&&s-e.start<e.stallTimeout)).reduce(((e,t)=>e+t.weight),0);for(;u<this.quorum&&a<r.length;){const n=r[a++],o=Yp++;n.start=Vp(),n.staller=Qp(n.stallTimeout),n.staller.wait((()=>{n.staller=null})),n.runner=rh(n,i,e,t).then((r=>{n.done=!0,n.result=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:eh(n,Vp()),request:{method:e,params:Dr(t)},provider:this})}),(r=>{n.done=!0,n.error=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:eh(n,Vp()),request:{method:e,params:Dr(t)},provider:this})})),this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:eh(n,null),request:{method:e,params:Dr(t)},provider:this}),u+=n.weight}const c=[];r.forEach((e=>{!e.done&&e.runner&&(c.push(e.runner),e.staller&&c.push(e.staller.getPromise()))})),c.length&&(yield Promise.race(c));const l=r.filter((e=>e.done&&null==e.error));if(l.length>=this.quorum){const e=n(l);if(void 0!==e)return r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),e;o||(yield Qp(100).getPromise()),o=!1}const d=r.reduce(((e,t)=>{if(!t.done||null==t.error)return e;const n=t.error.code;return $p.indexOf(n)>=0&&(e[n]||(e[n]={error:t.error,weight:0}),e[n].weight+=t.weight),e}),{});if(Object.keys(d).forEach((e=>{const t=d[e];if(t.weight<this.quorum)return;r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0}));const n=t.error,i={};Zp.forEach((e=>{null!=n[e]&&(i[e]=n[e])})),Wp.throwError(n.reason||n.message,e,i)})),0===r.filter((e=>!e.done)).length)break}return r.forEach((e=>{e.staller&&e.staller.cancel(),e.cancelled=!0})),Wp.throwError("failed to meet quorum",xn.errors.SERVER_ERROR,{method:e,params:t,results:r.map((e=>eh(e))),provider:this})}))}}const ah=new xn(Rf),oh="84842078b09946638c03157f83405213";class sh extends Tp{constructor(e,t){const n=new uh(e,t),r=n.connection;r.password&&ah.throwError("INFURA WebSocket project secrets unsupported",xn.errors.UNSUPPORTED_OPERATION,{operation:"InfuraProvider.getWebSocketProvider()"});super(r.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/"),e),Or(this,"apiKey",n.projectId),Or(this,"projectId",n.projectId),Or(this,"projectSecret",n.projectSecret)}isCommunityResource(){return this.projectId===oh}}class uh extends _p{static getWebSocketProvider(e,t){return new sh(e,t)}static getApiKey(e){const t={apiKey:oh,projectId:oh,projectSecret:null};return null==e||("string"==typeof e?t.projectId=e:null!=e.projectSecret?(ah.assertArgument("string"==typeof e.projectId,"projectSecret requires a projectId","projectId",e.projectId),ah.assertArgument("string"==typeof e.projectSecret,"invalid projectSecret","projectSecret","[REDACTED]"),t.projectId=e.projectId,t.projectSecret=e.projectSecret):e.projectId&&(t.projectId=e.projectId),t.apiKey=t.projectId),t}static getUrl(e,t){let n=null;switch(e?e.name:"unknown"){case"homestead":n="mainnet.infura.io";break;case"goerli":n="goerli.infura.io";break;case"sepolia":n="sepolia.infura.io";break;case"matic":n="polygon-mainnet.infura.io";break;case"maticmum":n="polygon-mumbai.infura.io";break;case"optimism":n="optimism-mainnet.infura.io";break;case"optimism-goerli":n="optimism-goerli.infura.io";break;case"arbitrum":n="arbitrum-mainnet.infura.io";break;case"arbitrum-goerli":n="arbitrum-goerli.infura.io";break;default:ah.throwError("unsupported network",xn.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={allowGzip:!0,url:"https://"+n+"/v3/"+t.projectId,throttleCallback:(e,n)=>(t.projectId===oh&&xf(),Promise.resolve(!0))};return null!=t.projectSecret&&(r.user="",r.password=t.projectSecret),r}isCommunityResource(){return this.projectId===oh}}class ch extends mp{send(e,t){const n={method:e,params:t,id:this._nextId++,jsonrpc:"2.0"};null==this._pendingBatch&&(this._pendingBatch=[]);const r={request:n,resolve:null,reject:null},i=new Promise(((e,t)=>{r.resolve=e,r.reject=t}));return this._pendingBatch.push(r),this._pendingBatchAggregator||(this._pendingBatchAggregator=setTimeout((()=>{const e=this._pendingBatch;this._pendingBatch=null,this._pendingBatchAggregator=null;const t=e.map((e=>e.request));return this.emit("debug",{action:"requestBatch",request:Dr(t),provider:this}),pf(this.connection,JSON.stringify(t)).then((n=>{this.emit("debug",{action:"response",request:t,response:n,provider:this}),e.forEach(((e,t)=>{const r=n[t];if(r.error){const t=new Error(r.error.message);t.code=r.error.code,t.data=r.error.data,e.reject(t)}else e.resolve(r.result)}))}),(n=>{this.emit("debug",{action:"response",error:n,request:t,provider:this}),e.forEach((e=>{e.reject(n)}))}))}),10)),i}}const lh=new xn(Rf);class dh extends _p{static getApiKey(e){return e&&"string"!=typeof e&&lh.throwArgumentError("invalid apiKey","apiKey",e),e||"ETHERS_JS_SHARED"}static getUrl(e,t){lh.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.");let n=null;switch(e.name){case"homestead":n="https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc";break;case"ropsten":n="https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc";break;case"rinkeby":n="https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc";break;case"goerli":n="https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc";break;case"kovan":n="https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc";break;default:lh.throwArgumentError("unsupported network","network",arguments[0])}return n+"?apiKey="+t}}const fh=new xn(Rf),ph="62e1ad51b37b8e00394bda3b";class hh extends _p{static getApiKey(e){const t={applicationId:null,loadBalancer:!0,applicationSecretKey:null};return null==e?t.applicationId=ph:"string"==typeof e?t.applicationId=e:null!=e.applicationSecretKey?(t.applicationId=e.applicationId,t.applicationSecretKey=e.applicationSecretKey):e.applicationId?t.applicationId=e.applicationId:fh.throwArgumentError("unsupported PocketProvider apiKey","apiKey",e),t}static getUrl(e,t){let n=null;switch(e?e.name:"unknown"){case"goerli":n="eth-goerli.gateway.pokt.network";break;case"homestead":n="eth-mainnet.gateway.pokt.network";break;case"kovan":n="poa-kovan.gateway.pokt.network";break;case"matic":n="poly-mainnet.gateway.pokt.network";break;case"maticmum":n="polygon-mumbai-rpc.gateway.pokt.network";break;case"rinkeby":n="eth-rinkeby.gateway.pokt.network";break;case"ropsten":n="eth-ropsten.gateway.pokt.network";break;default:fh.throwError("unsupported network",xn.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={headers:{},url:`https://${n}/v1/lb/${t.applicationId}`};return null!=t.applicationSecretKey&&(r.user="",r.password=t.applicationSecretKey),r}isCommunityResource(){return this.applicationId===ph}}const mh=new xn(Rf);let yh=1;function gh(e,t){const n="Web3LegacyFetcher";return function(e,r){const i={method:e,params:r,id:yh++,jsonrpc:"2.0"};return new Promise(((e,r)=>{this.emit("debug",{action:"request",fetcher:n,request:Dr(i),provider:this}),t(i,((t,a)=>{if(t)return this.emit("debug",{action:"response",fetcher:n,error:t,request:i,provider:this}),r(t);if(this.emit("debug",{action:"response",fetcher:n,request:i,response:a,provider:this}),a.error){const e=new Error(a.error.message);return e.code=a.error.code,e.data=a.error.data,r(e)}e(a.result)}))}))}}class bh extends mp{constructor(e,t){null==e&&mh.throwArgumentError("missing provider","provider",e);let n=null,r=null,i=null;"function"==typeof e?(n="unknown:",r=e):(n=e.host||e.path||"",!n&&e.isMetaMask&&(n="metamask"),i=e,e.request?(""===n&&(n="eip-1193:"),r=function(e){return function(t,n){null==n&&(n=[]);const r={method:t,params:n};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:Dr(r),provider:this}),e.request(r).then((e=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,response:e,provider:this}),e)),(e=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:r,error:e,provider:this}),e}))}}(e)):e.sendAsync?r=gh(0,e.sendAsync.bind(e)):e.send?r=gh(0,e.send.bind(e)):mh.throwArgumentError("unsupported provider","provider",e),n||(n="unknown:")),super(n,t),Or(this,"jsonRpcFetchFunc",r),Or(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}const vh=new xn(Rf);function Th(e,t){if(null==e&&(e="homestead"),"string"==typeof e){const t=e.match(/^(ws|http)s?:/i);if(t)switch(t[1].toLowerCase()){case"http":case"https":return new mp(e);case"ws":case"wss":return new Tp(e);default:vh.throwArgumentError("unsupported URL scheme","network",e)}}const n=af(e);return n&&n._defaultProvider||vh.throwError("unsupported getDefaultProvider network",xn.errors.NETWORK_ERROR,{operation:"getDefaultProvider",network:e}),n._defaultProvider({FallbackProvider:ih,AlchemyProvider:Op,AnkrProvider:xp,CloudflareProvider:Bp,EtherscanProvider:Hp,InfuraProvider:uh,JsonRpcProvider:mp,NodesmithProvider:dh,PocketProvider:hh,Web3Provider:bh,IpcProvider:null},t)}var wh=Object.freeze({__proto__:null,AlchemyProvider:Op,AlchemyWebSocketProvider:Cp,AnkrProvider:xp,BaseProvider:np,CloudflareProvider:Bp,EtherscanProvider:Hp,FallbackProvider:ih,Formatter:Of,InfuraProvider:uh,InfuraWebSocketProvider:sh,IpcProvider:null,JsonRpcBatchProvider:ch,JsonRpcProvider:mp,JsonRpcSigner:fp,NodesmithProvider:dh,PocketProvider:hh,Provider:Yo,Resolver:Zf,StaticJsonRpcProvider:Ep,UrlJsonRpcProvider:_p,Web3Provider:bh,WebSocketProvider:Tp,getDefaultProvider:Th,getNetwork:af,isCommunityResourcable:kf,isCommunityResource:Sf,showThrottleMessage:xf});const Ah=new RegExp("^bytes([0-9]+)$"),Eh=new RegExp("^(u?int)([0-9]*)$"),_h=new RegExp("^(.*)\\[([0-9]*)\\]$"),Ih="0000000000000000000000000000000000000000000000000000000000000000",Rh=new xn("solidity/5.7.0");function Ch(e,t,n){switch(e){case"address":return n?Hn(t,32):qn(t);case"string":return fa(t);case"bytes":return qn(t);case"bool":return t=t?"0x01":"0x00",n?Hn(t,32):qn(t)}let r=e.match(Eh);if(r){let i=parseInt(r[2]||"256");return(r[2]&&String(i)!==r[2]||i%8!=0||0===i||i>256)&&Rh.throwArgumentError("invalid number type","type",e),n&&(i=256),Hn(t=ur.from(t).toTwos(i),i/8)}if(r=e.match(Ah),r){const i=parseInt(r[1]);return(String(i)!==r[1]||0===i||i>32)&&Rh.throwArgumentError("invalid bytes type","type",e),qn(t).byteLength!==i&&Rh.throwArgumentError(`invalid value for ${e}`,"value",t),n?qn((t+Ih).substring(0,66)):t}if(r=e.match(_h),r&&Array.isArray(t)){const n=r[1];parseInt(r[2]||String(t.length))!=t.length&&Rh.throwArgumentError(`invalid array length for ${e}`,"value",t);const i=[];return t.forEach((function(e){i.push(Ch(n,e,!0))})),jn(i)}return Rh.throwArgumentError("invalid type","type",e)}function Oh(e,t){e.length!=t.length&&Rh.throwArgumentError("wrong number of values; expected ${ types.length }","values",t);const n=[];return e.forEach((function(e,r){n.push(Ch(e,t[r]))})),Vn(jn(n))}function kh(e,t){return mi(Oh(e,t))}function Sh(e,t){return Bl(Oh(e,t))}var Nh=Object.freeze({__proto__:null,keccak256:kh,pack:Oh,sha256:Sh});const xh=new xn("units/5.7.0"),Ph=["wei","kwei","mwei","gwei","szabo","finney","ether"];function Mh(e){const t=String(e).split(".");(t.length>2||!t[0].match(/^-?[0-9]*$/)||t[1]&&!t[1].match(/^[0-9]*$/)||"."===e||"-."===e)&&xh.throwArgumentError("invalid value","value",e);let n=t[0],r="";for("-"===n.substring(0,1)&&(r="-",n=n.substring(1));"0"===n.substring(0,1);)n=n.substring(1);""===n&&(n="0");let i="";for(2===t.length&&(i="."+(t[1]||"0"));i.length>2&&"0"===i[i.length-1];)i=i.substring(0,i.length-1);const a=[];for(;n.length;){if(n.length<=3){a.unshift(n);break}{const e=n.length-3;a.unshift(n.substring(e)),n=n.substring(0,e)}}return r+a.join(",")+i}function Bh(e,t){if("string"==typeof t){const e=Ph.indexOf(t);-1!==e&&(t=3*e)}return Tr(e,null!=t?t:18)}function Dh(e,t){if("string"!=typeof e&&xh.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Ph.indexOf(t);-1!==e&&(t=3*e)}return wr(e,null!=t?t:18)}function Fh(e){return Bh(e,18)}function Lh(e){return Dh(e,18)}var Uh=Object.freeze({__proto__:null,commify:Mh,formatEther:Fh,formatUnits:Bh,parseEther:Lh,parseUnits:Dh}),qh=Object.freeze({__proto__:null,AbiCoder:Fa,ConstructorFragment:ti,ErrorFragment:ii,EventFragment:Qr,FormatTypes:Vr,Fragment:Yr,FunctionFragment:ni,HDNode:nd,Indexed:Go,Interface:Wo,LogDescription:Uo,Logger:xn,ParamType:Xr,RLP:Ii,SigningKey:Hc,get SupportedAlgorithm(){return Nl},TransactionDescription:qo,get TransactionTypes(){return Xc},get UnicodeNormalizationForm(){return sa},Utf8ErrorFuncs:la,get Utf8ErrorReason(){return ua},_TypedDataEncoder:Do,_fetchData:ff,_toEscapedUtf8String:ha,accessListify:rl,arrayify:qn,base58:Sl,base64:Ha,checkProperties:Nr,checkResultErrors:li,commify:Mh,computeAddress:Zc,computeHmac:Fl,computePublicKey:Wc,concat:jn,deepCopy:Dr,defaultAbiCoder:La,defaultPath:td,defineReadOnly:Or,dnsEncode:bo,entropyToMnemonic:ad,fetchJson:pf,formatBytes32String:ba,formatEther:Fh,formatUnits:Bh,getAccountPath:sd,getAddress:Ni,getContractAddress:Mi,getCreate2Address:Bi,getIcapAddress:Pi,getJsonWalletAddress:Od,getStatic:kr,hashMessage:To,hexConcat:Jn,hexDataLength:Kn,hexDataSlice:Xn,hexStripZeros:Qn,hexValue:Yn,hexZeroPad:$n,hexlify:Vn,id:Ua,isAddress:xi,isBytes:Un,isBytesLike:Fn,isHexString:zn,isValidMnemonic:od,isValidName:yo,joinSignature:er,keccak256:mi,mnemonicToEntropy:id,mnemonicToSeed:rd,namehash:go,nameprep:Sa,parseBytes32String:va,parseEther:Lh,parseTransaction:cl,parseUnits:Dh,poll:hf,randomBytes:fd,recoverAddress:el,recoverPublicKey:zc,resolveProperties:Sr,ripemd160:Ml,serializeTransaction:sl,sha256:Bl,sha512:Dl,shallowCopy:xr,shuffled:pd,solidityKeccak256:kh,solidityPack:Oh,soliditySha256:Sh,splitSignature:Zn,stripZeros:Gn,toUtf8Bytes:fa,toUtf8CodePoints:ga,toUtf8String:ya,verifyMessage:Xd,verifyTypedData:Jd,zeroPad:Hn});const jh="ethers/5.7.2",Gh=new xn(jh);var Hh=Object.freeze({__proto__:null,BaseContract:Il,BigNumber:ur,Contract:Rl,ContractFactory:Cl,FixedNumber:Er,Signer:ts,VoidSigner:ns,Wallet:Kd,Wordlist:jl,constants:ia,get errors(){return Sn},getDefaultProvider:Th,logger:Gh,providers:wh,utils:qh,version:jh,wordlists:Wl});try{const e=window;null==e._ethers&&(e._ethers=Hh)}catch(e){}var zh,Wh,Vh,Kh,Xh,Jh,Yh,Qh=Object.freeze({__proto__:null,BaseContract:Il,BigNumber:ur,Contract:Rl,ContractFactory:Cl,FixedNumber:Er,Signer:ts,VoidSigner:ns,Wallet:Kd,Wordlist:jl,constants:ia,get errors(){return Sn},ethers:Hh,getDefaultProvider:Th,logger:Gh,providers:wh,utils:qh,version:jh,wordlists:Wl});e.ChainId=void 0,function(e){e[e.IMTBL_ZKEVM_MAINNET=13371]="IMTBL_ZKEVM_MAINNET",e[e.IMTBL_ZKEVM_TESTNET=13473]="IMTBL_ZKEVM_TESTNET",e[e.IMTBL_ZKEVM_DEVNET=13433]="IMTBL_ZKEVM_DEVNET",e[e.ETHEREUM=1]="ETHEREUM",e[e.SEPOLIA=11155111]="SEPOLIA"}(e.ChainId||(e.ChainId={})),e.ChainName=void 0,(zh=e.ChainName||(e.ChainName={})).ETHEREUM="Ethereum",zh.SEPOLIA="Sepolia",zh.IMTBL_ZKEVM_TESTNET="Immutable zkEVM Test",zh.IMTBL_ZKEVM_DEVNET="Immutable zkEVM Dev",zh.IMTBL_ZKEVM_MAINNET="Immutable zkEVM",e.ChainSlug=void 0,(Wh=e.ChainSlug||(e.ChainSlug={})).ETHEREUM="ethereum",Wh.SEPOLIA="sepolia",Wh.IMTBL_ZKEVM_MAINNET="imtbl-zkevm-mainnet",Wh.IMTBL_ZKEVM_TESTNET="imtbl-zkevm-testnet",Wh.IMTBL_ZKEVM_DEVNET="imtbl-zkevm-devnet",function(e){e.TRANSAK="201811419111"}(Vh||(Vh={})),e.GasEstimateType=void 0,(Kh=e.GasEstimateType||(e.GasEstimateType={})).BRIDGE_TO_L2="BRIDGE_TO_L2",Kh.SWAP="SWAP",e.NetworkFilterTypes=void 0,(e.NetworkFilterTypes||(e.NetworkFilterTypes={})).ALL="all",e.TokenFilterTypes=void 0,(Xh=e.TokenFilterTypes||(e.TokenFilterTypes={})).ALL="all",Xh.SWAP="swap",Xh.BRIDGE="bridge",Xh.ONRAMP="onramp",function(e){e.CHECK_CONNECTION="eth_accounts",e.CONNECT="eth_requestAccounts",e.ADD_NETWORK="wallet_addEthereumChain",e.SWITCH_NETWORK="wallet_switchEthereumChain",e.GET_CHAINID="eth_chainId"}(Jh||(Jh={})),e.WalletFilterTypes=void 0,(e.WalletFilterTypes||(e.WalletFilterTypes={})).ALL="all",e.WalletProviderName=void 0,(Yh=e.WalletProviderName||(e.WalletProviderName={})).PASSPORT="passport",Yh.METAMASK="metamask";const $h={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1};var Zh,em,tm,nm,rm,im,am;e.CheckoutStatus=void 0,(Zh=e.CheckoutStatus||(e.CheckoutStatus={})).SUCCESS="SUCCESS",Zh.FAILED="FAILED",Zh.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.ItemType=void 0,function(e){e.NATIVE="NATIVE",e.ERC20="ERC20",e.ERC721="ERC721"}(e.ItemType||(e.ItemType={})),e.TransactionOrGasType=void 0,(em=e.TransactionOrGasType||(e.TransactionOrGasType={})).TRANSACTION="TRANSACTION",em.GAS="GAS",e.GasTokenType=void 0,(tm=e.GasTokenType||(e.GasTokenType={})).NATIVE="NATIVE",tm.ERC20="ERC20",e.RoutingOutcomeType=void 0,(nm=e.RoutingOutcomeType||(e.RoutingOutcomeType={})).ROUTES_FOUND="ROUTES_FOUND",nm.NO_ROUTES_FOUND="NO_ROUTES_FOUND",nm.NO_ROUTE_OPTIONS="NO_ROUTE_OPTIONS",e.FeeType=void 0,function(e){e.GAS="GAS",e.BRIDGE_FEE="BRIDGE_FEE",e.SWAP_FEE="SWAP_FEE",e.IMMUTABLE_FEE="IMMUTABLE_FEE"}(e.FeeType||(e.FeeType={})),e.FundingStepType=void 0,(rm=e.FundingStepType||(e.FundingStepType={})).BRIDGE="BRIDGE",rm.SWAP="SWAP",rm.ONRAMP="ONRAMP",e.ExchangeType=void 0,(e.ExchangeType||(e.ExchangeType={})).ONRAMP="onramp",e.CheckoutErrorType=void 0,(im=e.CheckoutErrorType||(e.CheckoutErrorType={})).MISSING_PARAMS="MISSING_PARAMS",im.WEB3_PROVIDER_ERROR="WEB3_PROVIDER_ERROR",im.PROVIDER_ERROR="PROVIDER_ERROR",im.DEFAULT_PROVIDER_ERROR="DEFAULT_PROVIDER_ERROR",im.CONNECT_PROVIDER_ERROR="CONNECT_PROVIDER_ERROR",im.GET_BALANCE_ERROR="GET_BALANCE_ERROR",im.GET_INDEXER_BALANCE_ERROR="GET_INDEXER_BALANCE_ERROR",im.GET_ERC20_INFO_ERROR="GET_ERC20_INFO_ERROR",im.GET_ERC20_BALANCE_ERROR="GET_ERC20_BALANCE_ERROR",im.GET_ERC721_BALANCE_ERROR="GET_ERC721_BALANCE_ERROR",im.GET_NETWORK_INFO_ERROR="GET_NETWORK_INFO_ERROR",im.METAMASK_PROVIDER_ERROR="METAMASK_PROVIDER_ERROR",im.CHAIN_NOT_SUPPORTED_ERROR="CHAIN_NOT_SUPPORTED_ERROR",im.PROVIDER_REQUEST_MISSING_ERROR="PROVIDER_REQUEST_MISSING_ERROR",im.PROVIDER_REQUEST_FAILED_ERROR="PROVIDER_REQUEST_FAILED_ERROR",im.USER_REJECTED_REQUEST_ERROR="USER_REJECTED_REQUEST_ERROR",im.TRANSACTION_FAILED="TRANSACTION_FAILED",im.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",im.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",im.INVALID_GAS_ESTIMATE_TYPE="INVALID_GAS_ESTIMATE_TYPE",im.UNSUPPORTED_TOKEN_TYPE_ERROR="UNSUPPORTED_TOKEN_TYPE_ERROR",im.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR="UNSUPPORTED_BALANCE_REQUIREMENT_ERROR",im.GET_ORDER_LISTING_ERROR="GET_ORDER_LISTING_ERROR",im.CANCEL_ORDER_LISTING_ERROR="CANCEL_ORDER_LISTING_ERROR",im.PREPARE_ORDER_LISTING_ERROR="PREPARE_ORDER_LISTING_ERROR",im.CREATE_ORDER_LISTING_ERROR="CREATE_ORDER_LISTING_ERROR",im.FULFILL_ORDER_LISTING_ERROR="FULFILL_ORDER_LISTING_ERROR",im.SWITCH_NETWORK_UNSUPPORTED="SWITCH_NETWORK_UNSUPPORTED",im.GET_ERC20_ALLOWANCE_ERROR="GET_ERC20_ALLOWANCE_ERROR",im.GET_ERC721_ALLOWANCE_ERROR="GET_ERC721_ALLOWANCE_ERROR",im.EXECUTE_APPROVAL_TRANSACTION_ERROR="EXECUTE_APPROVAL_TRANSACTION_ERROR",im.EXECUTE_FULFILLMENT_TRANSACTION_ERROR="EXECUTE_FULFILLMENT_TRANSACTION_ERROR",im.SIGN_MESSAGE_ERROR="SIGN_MESSAGE_ERROR",im.BRIDGE_GAS_ESTIMATE_ERROR="BRIDGE_GAS_ESTIMATE_ERROR",im.ORDER_FEE_ERROR="ORDER_FEE_ERROR",im.ITEM_REQUIREMENTS_ERROR="ITEM_REQUIREMENTS_ERROR",im.API_ERROR="API_ERROR",im.ORDER_EXPIRED_ERROR="ORDER_EXPIRED_ERROR",im.WIDGETS_SCRIPT_LOAD_ERROR="WIDGETS_SCRIPT_LOAD_ERROR";class om extends Error{message;type;data;constructor(e,t,n){super(e),this.message=e,this.type=t,this.data=n}}!function(e){e.REJECTED_SWITCH_AFTER_ADDING_NETWORK="REJECTED_SWITCH_AFTER_ADDING_NETWORK"}(am||(am={}));const sm=async(e,t)=>{try{return await e()}catch(e){const n=`${e.message}`||"UnknownError",r=t.message?`[${t.type}]:${t.message}. Cause:${n}`:`[${t.type}] Cause:${n}`;if(e instanceof om)throw new om(r,t.type,{...t.data,innerErrorType:e.type,...e.data});throw new om(r,t.type,{...t.data})}};async function um(t){if(!t.provider?.request)throw new om("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const n=await t.provider.request({method:Jh.GET_CHAINID,params:[]});return parseInt(n,16)}async function cm(t,{type:n=e.NetworkFilterTypes.ALL,exclude:r}){const{networkMap:i}=t,a=await t.remote.getConfig("allowedNetworks");a||console.warn("No allowed networks configured");const o=(a||[]).filter((t=>{const i=n===e.NetworkFilterTypes.ALL,a=!(r||[]).map((e=>e.chainId)).includes(t.chainId);return i&&a})),s=[];return o.forEach((e=>{const t=i.get(e.chainId);t&&s.push({name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0})})),{networks:s}}async function lm(t,n){const{networkMap:r}=t;return sm((async()=>{try{const e=await n.getNetwork();if(Array.from(r.keys()).includes(e.chainId)){const t=r.get(e.chainId);return{name:t.chainName,chainId:parseInt(t.chainIdHex,16),nativeCurrency:t.nativeCurrency,isSupported:!0}}return{chainId:e.chainId,name:e.name,isSupported:!1}}catch(e){const t=await um(n);return{chainId:t,isSupported:Array.from(r.keys()).includes(t)}}}),{type:e.CheckoutErrorType.GET_NETWORK_INFO_ERROR})}async function dm(t,n,r){const{networkMap:i}=t;if(!(await cm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===r)))throw new om(`Chain:${r} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(n.provider?.isPassport)throw new om("Switching networks with Passport provider is not supported",e.CheckoutErrorType.SWITCH_NETWORK_UNSUPPORTED);try{await async function(e,t,n){if(t.provider?.request)return await t.provider.request({method:Jh.SWITCH_NETWORK,params:[{chainId:e.get(n)?.chainIdHex}]})}(i,n,r)}catch(t){if(4902!==t.code)throw new om("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);try{await async function(e,t,n){if(t.provider?.request){const r=e.get(n),i={chainId:r?.chainIdHex,chainName:r?.chainName,rpcUrls:r?.rpcUrls,nativeCurrency:r?.nativeCurrency,blockExplorerUrls:r?.blockExplorerUrls};return await t.provider.request({method:Jh.ADD_NETWORK,params:[i]})}}(i,n,r)}catch(t){throw new om("User cancelled add network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR)}}const a=new bh(n.provider);if((await a.getNetwork()).chainId!==r)throw new om("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);return{network:await lm(t,a),provider:a}}const fm="development",pm=18,hm="native",mm={name:"IMX",symbol:"IMX",decimals:pm,address:hm},ym={[fm]:"https://api.dev.immutable.com",[ht.SANDBOX]:"https://api.sandbox.immutable.com",[ht.PRODUCTION]:"https://api.immutable.com"},gm={[fm]:"https://checkout-api.dev.immutable.com",[ht.SANDBOX]:"https://checkout-api.sandbox.immutable.com",[ht.PRODUCTION]:"https://checkout-api.immutable.com"},bm={[ht.SANDBOX]:"https://global-stg.transak.com",[ht.PRODUCTION]:"https://global.transak.com/"},vm=new Map([[e.ChainId.ETHEREUM,{chainIdHex:`0x${e.ChainId.ETHEREUM.toString(16)}`,chainName:e.ChainName.ETHEREUM,rpcUrls:["https://checkout-api.immutable.com/v1/rpc/eth-mainnet"],nativeCurrency:{name:e.ChainName.ETHEREUM,symbol:"ETH",decimals:18},blockExplorerUrls:["https://etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_MAINNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_MAINNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_MAINNET,rpcUrls:["https://rpc.immutable.com"],nativeCurrency:mm}]]),Tm=new Map([[e.ChainId.SEPOLIA,{chainIdHex:`0x${e.ChainId.SEPOLIA.toString(16)}`,chainName:e.ChainName.SEPOLIA,rpcUrls:["https://checkout-api.sandbox.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_TESTNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_TESTNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_TESTNET,rpcUrls:["https://rpc.testnet.immutable.com"],nativeCurrency:mm}]]),wm=new Map([[e.ChainId.SEPOLIA,{chainIdHex:`0x${e.ChainId.SEPOLIA.toString(16)}`,chainName:e.ChainName.SEPOLIA,rpcUrls:["https://checkout-api.dev.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[e.ChainId.IMTBL_ZKEVM_DEVNET,{chainIdHex:`0x${e.ChainId.IMTBL_ZKEVM_DEVNET.toString(16)}`,chainName:e.ChainName.IMTBL_ZKEVM_DEVNET,rpcUrls:["https://rpc.dev.immutable.com"],nativeCurrency:mm}]]),Am={[e.ChainId.IMTBL_ZKEVM_TESTNET]:{url:"https://explorer.testnet.immutable.com",nativeToken:Tm.get(e.ChainId.IMTBL_ZKEVM_TESTNET).nativeCurrency},[e.ChainId.IMTBL_ZKEVM_MAINNET]:{url:"https://explorer.immutable.com",nativeToken:vm.get(e.ChainId.IMTBL_ZKEVM_MAINNET).nativeCurrency},[e.ChainId.SEPOLIA]:{url:"https://eth-sepolia.blockscout.com",nativeToken:Tm.get(e.ChainId.SEPOLIA).nativeCurrency},[e.ChainId.ETHEREUM]:{url:"https://eth.blockscout.com/",nativeToken:vm.get(e.ChainId.ETHEREUM).nativeCurrency}},Em=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],_m=[{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],Im={maxFeePerGas:ur.from(102e9),maxPriorityFeePerGas:ur.from(101e9)},Rm=()=>"0.42.0";class Cm{httpClient;isDevelopment;isProduction;configCache;tokensCache;version="v1";constructor(e,t){this.isDevelopment=t.isDevelopment,this.isProduction=t.isProduction,this.httpClient=e}getEndpoint=()=>this.isDevelopment?gm[fm]:this.isProduction?gm[ht.PRODUCTION]:gm[ht.SANDBOX];parseResponse(t){let n=t.data;if(t.data&&"object"!=typeof t.data)try{n=JSON.parse(t.data)}catch(t){throw new om("Invalid configuration",e.CheckoutErrorType.API_ERROR)}return n}async loadConfig(){if(this.configCache)return this.configCache;let t;try{t=await this.httpClient.get(`${this.getEndpoint()}/${this.version}/config`)}catch(t){throw new om(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR)}return this.configCache=this.parseResponse(t),this.configCache}async loadConfigTokens(){if(this.tokensCache)return this.tokensCache;let t;try{t=await this.httpClient.get(`${this.getEndpoint()}/${this.version}/config/tokens`)}catch(t){throw new om(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR)}return this.tokensCache=this.parseResponse(t),this.tokensCache}async getConfig(e){const t=await this.loadConfig();if(t)return e?t[e]:t}async getTokensConfig(e){const t=await this.loadConfigTokens();return t&&t[e]?t[e]??[]:{}}getHttpClient=()=>this.httpClient}class Om extends Error{message;constructor(e){super(e),this.message=e}}const km=t=>t.isProduction?e.ChainId.ETHEREUM:e.ChainId.SEPOLIA,Sm=t=>t.isDevelopment?e.ChainId.IMTBL_ZKEVM_DEVNET:t.isProduction?e.ChainId.IMTBL_ZKEVM_MAINNET:e.ChainId.IMTBL_ZKEVM_TESTNET;class Nm{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;environment;networkMap;constructor(e,t){if(!Object.values(ht).includes(e.baseConfig.environment))throw new Om("Invalid checkout configuration of environment");var n;this.environment=e.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===ht.PRODUCTION,this.isOnRampEnabled=e.onRamp?.enable??true,this.isSwapEnabled=e.swap?.enable??true,this.isBridgeEnabled=e.bridge?.enable??true,this.networkMap=(n=this.isProduction,this.isDevelopment?wm:n?vm:Tm),this.remote=new Cm(t,{isDevelopment:this.isDevelopment,isProduction:this.isProduction})}}const xm=(e="",t="")=>e.toLowerCase()===t.toLowerCase(),Pm=async(t,{type:n=e.TokenFilterTypes.ALL,chainId:r,exclude:i})=>{let a,o,s=[];const u=r??km(t);switch(n){case e.TokenFilterTypes.SWAP:s=(await t.remote.getConfig("dex")).tokens||[];break;case e.TokenFilterTypes.ONRAMP:a=await t.remote.getConfig("onramp"),a||(s=[]),s=a[Vh.TRANSAK]?.tokens||[];break;case e.TokenFilterTypes.BRIDGE:o=await t.remote.getConfig("bridge"),o||(s=[]),s=o[u]?.tokens||[];break;case e.TokenFilterTypes.ALL:default:s=(await t.remote.getTokensConfig(u)).allowed}return i&&0!==i?.length?{tokens:s.filter((e=>!i.map((e=>e.address)).includes(e.address||"")))}:{tokens:s}},Mm=e=>!e||xm(e,hm);async function Bm(t,n){return await sm((async()=>{const e=new Rl(n,JSON.stringify(Em),t),[r,i,a]=await Promise.all([e.name(),e.symbol(),e.decimals()]);return{name:r,symbol:i,decimals:a,address:n}}),{type:e.CheckoutErrorType.GET_ERC20_INFO_ERROR})}class Dm{url;nativeToken;ttl;chainId;cacheMap;httpClient;setCache(e,t){this.cacheMap[e]={data:t,ttl:(new Date).getTime()+1e3*this.ttl}}getCache(e){const t=this.cacheMap[e];return!t||t.ttl<=(new Date).getTime()?null:t.data}constructor(e,t,n){this.httpClient=e,this.chainId=t,this.url=Am[this.chainId].url;const r=Am[this.chainId].nativeToken;this.nativeToken={address:r.address??"",decimals:r.decimals.toString(),name:r.name,symbol:r.symbol},this.cacheMap={},this.ttl=void 0!==n?n:60}static isChainSupported=e=>Boolean(Am[e]);static isBlockscoutError=e=>"code"in e;async getTokensByWalletAddress(e){try{let t=`${this.url}/api/v2/addresses/${e.walletAddress}/tokens?type=${e.tokenType}`;e.nextPage&&(t+=`&${new URLSearchParams(e.nextPage)}`);const n=this.getCache(t);if(n)return Promise.resolve(n);const r=await this.httpClient.get(t),i={items:r.data?.items?.filter((e=>e.token.address&&e.token.address!==this.nativeToken.address)),next_page_params:r.data?.next_page_params};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=lt.InternalServerError,n="InternalServerError";return Qe.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}async getNativeTokenByWalletAddress(e){try{const t=`${this.url}/api/v2/addresses/${e.walletAddress}`,n=this.getCache(t);if(n)return Promise.resolve(n);const r=await this.httpClient.get(t),i={token:this.nativeToken,value:r.data.coin_balance};return this.setCache(t,i),Promise.resolve(i)}catch(e){let t=lt.InternalServerError,n="InternalServerError";return Qe.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}}var Fm;!function(e){e.ERC20="ERC-20"}(Fm||(Fm={}));const Lm=(e,t,n)=>{e.isProduction||console.info(t,n)},Um=async(e,t,n)=>{const r=performance.now(),i=await n,a=performance.now();return Lm(e,t,(a-r)/1e3),i},qm=async(t,n,r)=>await sm((async()=>{const i=await lm(t,n);if(!i.isSupported)throw new om(`Chain:${i.chainId} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR,{chainName:i.name});const a=await n.getBalance(r);return{balance:a,formattedBalance:Bh(a,i.nativeCurrency.decimals),token:i.nativeCurrency}}),{type:e.CheckoutErrorType.GET_BALANCE_ERROR});async function jm(t,n,r){return await sm((async()=>{const e=new Rl(r,JSON.stringify(Em),t);return Promise.all([Bm(t,r),e.balanceOf(n)]).then((([e,t])=>({balance:t,formattedBalance:Bh(t,e.decimals),token:{name:e.name,symbol:e.symbol,decimals:e.decimals,address:r}})))}),{type:e.CheckoutErrorType.GET_ERC20_BALANCE_ERROR})}const Gm=new Map,Hm=async(t,n,r,i)=>{if(!r&&!n)throw new om("both walletAddress and provider are missing. At least one must be provided.",e.CheckoutErrorType.MISSING_PARAMS);if(!t.networkMap.get(i))throw new om(`chain ID ${i} not supported by the environment`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);const{tokens:a}=await Pm(t,{type:e.TokenFilterTypes.ALL,chainId:i});let o=!1;try{o=(await t.remote.getTokensConfig(i)).blockscout||o}catch(e){console.error(e)}let s=r;if(o&&Dm.isChainSupported(i)){const r=km(t)===i;return s||(s=await(n?.getSigner().getAddress())),await Um(t,`Time to fetch balances using blockscout for ${i}`,(async(t,n,r,i)=>{const a=void 0!==i,o=Object.assign({},...(i??[]).map((e=>({[e.address||hm]:e}))));let s=Gm.get(r);if(!s){const e=t.remote.getHttpClient();s=new Dm(e,r),Gm.set(r,s)}const u=[],c=Fm.ERC20;await Promise.all([(async t=>{let r;try{do{r=await t.getTokensByWalletAddress({walletAddress:n,tokenType:c,nextPage:r?.next_page_params}),u.push(...r.items)}while(r.next_page_params)}catch(t){if(t?.code!==lt.NotFound)throw new om(t.message||"InternalServerError | getTokensByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,t)}})(s),(async t=>{try{const e=await t.getNativeTokenByWalletAddress({walletAddress:n});e.token.address||=hm,u.push(e)}catch(t){if(t?.code!==lt.NotFound)throw new om(t.message||"InternalServerError | getNativeTokenByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,t)}})(s)]);const l=[];return u.forEach((e=>{if(a&&!o[e.token.address])return;const t=e.token||{},n=ur.from(e.value);let r=parseInt(t.decimals,10);Number.isNaN(r)&&(r=pm);const i={...t,decimals:r},s=Bh(e.value,i.decimals);l.push({balance:n,formattedBalance:s,token:i})})),{balances:l}})(t,s,i,r?a:void 0))}if(!n)throw new om("indexer is disabled for this chain, you must provide a provider.",e.CheckoutErrorType.MISSING_PARAMS);return s||=await n.getSigner().getAddress(),await Um(t,`Time to fetch balances using RPC for ${i}`,(async(e,t,n,r)=>{const i=[];return r.forEach((r=>{!r.address||xm(r.address,hm)?i.push(qm(e,t,n)):i.push(jm(t,n,r.address))})),{balances:(await Promise.allSettled(i)).filter((e=>"fulfilled"===e.status)).map((e=>{const t=e,{token:n}=t.value;return n.address&&!xm(n.address,hm)||(t.value.token.address=hm),t.value}))}})(t,n,s,a))};var zm=function({mustBeMetaMask:e=!1,silent:t=!1,timeout:n=3e3}={}){!function(){if("boolean"!=typeof e)throw new Error("@metamask/detect-provider: Expected option 'mustBeMetaMask' to be a boolean.");if("boolean"!=typeof t)throw new Error("@metamask/detect-provider: Expected option 'silent' to be a boolean.");if("number"!=typeof n)throw new Error("@metamask/detect-provider: Expected option 'timeout' to be a number.")}();let r=!1;return new Promise((i=>{function a(){if(r)return;r=!0,window.removeEventListener("ethereum#initialized",a);const{ethereum:n}=window;if(!n||e&&!n.isMetaMask){const r=e&&n?"Non-MetaMask window.ethereum detected.":"Unable to detect window.ethereum.";!t&&console.error("@metamask/detect-provider:",r),i(null)}else i(n)}window.ethereum?a():(window.addEventListener("ethereum#initialized",a,{once:!0}),setTimeout((()=>{a()}),n))}))},Wm=gt(zm);async function Vm(t,n){let r=null;switch(t){case e.WalletProviderName.PASSPORT:if(!n)throw console.error("WalletProviderName was PASSPORT but the passport instance was not provided to the Checkout constructor"),new om("Passport not provided",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR);r=new bh(n.connectEvm());break;case e.WalletProviderName.METAMASK:r=await async function(){const t=await sm((async()=>await Wm()),{type:e.CheckoutErrorType.METAMASK_PROVIDER_ERROR});if(!t||!t.request)throw new om("No MetaMask provider installed.",e.CheckoutErrorType.METAMASK_PROVIDER_ERROR);return new bh(t)}();break;default:throw console.error("The WalletProviderName that was provided is not supported"),new om("Provider not supported",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR)}return{provider:r,walletProviderName:t}}function Km(e){return!(!e||!e.provider?.request||"function"!=typeof e.provider.request)}async function Xm(t,n,r){return sm((async()=>{if(n.provider?.isPassport)return n;if(!Km(n))throw new om("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const i={...$h,...r},a=await um(n);let o=n.network?.chainId;try{o=n.network?.chainId,o||(o=(await n.getNetwork()).chainId)}catch(t){throw new om("Unable to detect the web3Provider network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR)}if(o!==a&&!i.allowMistmatchedChainId)throw new om("Your wallet has changed network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);if(!(await cm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===a))&&!i.allowUnsupportedProvider)throw new om("Your wallet is connected to an unsupported network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);return n}),{type:e.CheckoutErrorType.WEB3_PROVIDER_ERROR})}const Jm=async(t,n)=>{try{const e=t.getSigner(),r=(e=>{const t=e;return t.maxFeePerGas=Im.maxFeePerGas,t.maxPriorityFeePerGas=Im.maxPriorityFeePerGas,t})(n);return{transactionResponse:await e.sendTransaction(r)}}catch(t){if(t.code===Sn.INSUFFICIENT_FUNDS)throw new om(t.message,e.CheckoutErrorType.INSUFFICIENT_FUNDS);if(t.code===Sn.ACTION_REJECTED)throw new om(t.message,e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);if(t.code===Sn.UNPREDICTABLE_GAS_LIMIT)throw new om(t.message,e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT);throw new om(t.message,e.CheckoutErrorType.TRANSACTION_FAILED)}};function Ym(e,t){return function(){return e.apply(t,arguments)}}const{toString:Qm}=Object.prototype,{getPrototypeOf:$m}=Object,Zm=(e=>t=>{const n=Qm.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),ey=e=>(e=e.toLowerCase(),t=>Zm(t)===e),ty=e=>t=>typeof t===e,{isArray:ny}=Array,ry=ty("undefined");const iy=ey("ArrayBuffer");const ay=ty("string"),oy=ty("function"),sy=ty("number"),uy=e=>null!==e&&"object"==typeof e,cy=e=>{if("object"!==Zm(e))return!1;const t=$m(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},ly=ey("Date"),dy=ey("File"),fy=ey("Blob"),py=ey("FileList"),hy=ey("URLSearchParams");function my(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,i;if("object"!=typeof e&&(e=[e]),ny(e))for(r=0,i=e.length;r<i;r++)t.call(null,e[r],r,e);else{const i=n?Object.getOwnPropertyNames(e):Object.keys(e),a=i.length;let o;for(r=0;r<a;r++)o=i[r],t.call(null,e[o],o,e)}}function yy(e,t){t=t.toLowerCase();const n=Object.keys(e);let r,i=n.length;for(;i-- >0;)if(r=n[i],t===r.toLowerCase())return r;return null}const gy="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,by=e=>!ry(e)&&e!==gy;const vy=(e=>t=>e&&t instanceof e)("undefined"!=typeof Uint8Array&&$m(Uint8Array)),Ty=ey("HTMLFormElement"),wy=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ay=ey("RegExp"),Ey=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};my(n,((n,i)=>{let a;!1!==(a=t(n,i,e))&&(r[i]=a||n)})),Object.defineProperties(e,r)},_y="abcdefghijklmnopqrstuvwxyz",Iy="0123456789",Ry={DIGIT:Iy,ALPHA:_y,ALPHA_DIGIT:_y+_y.toUpperCase()+Iy};const Cy=ey("AsyncFunction");var Oy={isArray:ny,isArrayBuffer:iy,isBuffer:function(e){return null!==e&&!ry(e)&&null!==e.constructor&&!ry(e.constructor)&&oy(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||oy(e.append)&&("formdata"===(t=Zm(e))||"object"===t&&oy(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&iy(e.buffer),t},isString:ay,isNumber:sy,isBoolean:e=>!0===e||!1===e,isObject:uy,isPlainObject:cy,isUndefined:ry,isDate:ly,isFile:dy,isBlob:fy,isRegExp:Ay,isFunction:oy,isStream:e=>uy(e)&&oy(e.pipe),isURLSearchParams:hy,isTypedArray:vy,isFileList:py,forEach:my,merge:function e(){const{caseless:t}=by(this)&&this||{},n={},r=(r,i)=>{const a=t&&yy(n,i)||i;cy(n[a])&&cy(r)?n[a]=e(n[a],r):cy(r)?n[a]=e({},r):ny(r)?n[a]=r.slice():n[a]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&my(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(my(t,((t,r)=>{n&&oy(t)?e[r]=Ym(t,n):e[r]=t}),{allOwnKeys:r}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,r)=>{let i,a,o;const s={};if(t=t||{},null==e)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-- >0;)o=i[a],r&&!r(o,e,t)||s[o]||(t[o]=e[o],s[o]=!0);e=!1!==n&&$m(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:Zm,kindOfTest:ey,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return-1!==r&&r===n},toArray:e=>{if(!e)return null;if(ny(e))return e;let t=e.length;if(!sy(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const r=[];for(;null!==(n=e.exec(t));)r.push(n);return r},isHTMLForm:Ty,hasOwnProperty:wy,hasOwnProp:wy,reduceDescriptors:Ey,freezeMethods:e=>{Ey(e,((t,n)=>{if(oy(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];oy(r)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))}))},toObjectSet:(e,t)=>{const n={},r=e=>{e.forEach((e=>{n[e]=!0}))};return ny(e)?r(e):r(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,n){return t.toUpperCase()+n})),noop:()=>{},toFiniteNumber:(e,t)=>(e=+e,Number.isFinite(e)?e:t),findKey:yy,global:gy,isContextDefined:by,ALPHABET:Ry,generateString:(e=16,t=Ry.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&oy(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(uy(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const i=ny(e)?[]:{};return my(e,((e,t)=>{const a=n(e,r+1);!ry(a)&&(i[t]=a)})),t[r]=void 0,i}}return e};return n(e,0)},isAsyncFn:Cy,isThenable:e=>e&&(uy(e)||oy(e))&&oy(e.then)&&oy(e.catch)};function ky(e,t,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}Oy.inherits(ky,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Oy.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Sy=ky.prototype,Ny={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{Ny[e]={value:e}})),Object.defineProperties(ky,Ny),Object.defineProperty(Sy,"isAxiosError",{value:!0}),ky.from=(e,t,n,r,i,a)=>{const o=Object.create(Sy);return Oy.toFlatObject(e,o,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),ky.call(o,e.message,t,n,r,i),o.cause=e,o.name=e.name,a&&Object.assign(o,a),o};function xy(e){return Oy.isPlainObject(e)||Oy.isArray(e)}function Py(e){return Oy.endsWith(e,"[]")?e.slice(0,-2):e}function My(e,t,n){return e?e.concat(t).map((function(e,t){return e=Py(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const By=Oy.toFlatObject(Oy,{},null,(function(e){return/^is[A-Z]/.test(e)}));function Dy(e,t,n){if(!Oy.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=Oy.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!Oy.isUndefined(t[e])}))).metaTokens,i=n.visitor||c,a=n.dots,o=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&Oy.isSpecCompliantForm(t);if(!Oy.isFunction(i))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(Oy.isDate(e))return e.toISOString();if(!s&&Oy.isBlob(e))throw new ky("Blob is not supported. Use a Buffer instead.");return Oy.isArrayBuffer(e)||Oy.isTypedArray(e)?s&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,i){let s=e;if(e&&!i&&"object"==typeof e)if(Oy.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(Oy.isArray(e)&&function(e){return Oy.isArray(e)&&!e.some(xy)}(e)||(Oy.isFileList(e)||Oy.endsWith(n,"[]"))&&(s=Oy.toArray(e)))return n=Py(n),s.forEach((function(e,r){!Oy.isUndefined(e)&&null!==e&&t.append(!0===o?My([n],r,a):null===o?n:n+"[]",u(e))})),!1;return!!xy(e)||(t.append(My(i,n,a),u(e)),!1)}const l=[],d=Object.assign(By,{defaultVisitor:c,convertValue:u,isVisitable:xy});if(!Oy.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!Oy.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),Oy.forEach(n,(function(n,a){!0===(!(Oy.isUndefined(n)||null===n)&&i.call(t,n,Oy.isString(a)?a.trim():a,r,d))&&e(n,r?r.concat(a):[a])})),l.pop()}}(e),t}function Fy(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Ly(e,t){this._pairs=[],e&&Dy(e,this,t)}const Uy=Ly.prototype;function qy(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function jy(e,t,n){if(!t)return e;const r=n&&n.encode||qy,i=n&&n.serialize;let a;if(a=i?i(t,n):Oy.isURLSearchParams(t)?t.toString():new Ly(t,n).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}Uy.append=function(e,t){this._pairs.push([e,t])},Uy.toString=function(e){const t=e?function(t){return e.call(this,t,Fy)}:Fy;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Gy=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){Oy.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},Hy={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},zy={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Ly,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Wy="undefined"!=typeof window&&"undefined"!=typeof document,Vy=(e=>Wy&&["ReactNative","NativeScript","NS"].indexOf(e)<0)("undefined"!=typeof navigator&&navigator.product),Ky="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts;var Xy={...Object.freeze({__proto__:null,hasBrowserEnv:Wy,hasStandardBrowserEnv:Vy,hasStandardBrowserWebWorkerEnv:Ky}),...zy};function Jy(e){function t(e,n,r,i){let a=e[i++];if("__proto__"===a)return!0;const o=Number.isFinite(+a),s=i>=e.length;if(a=!a&&Oy.isArray(r)?r.length:a,s)return Oy.hasOwnProp(r,a)?r[a]=[r[a],n]:r[a]=n,!o;r[a]&&Oy.isObject(r[a])||(r[a]=[]);return t(e,n,r[a],i)&&Oy.isArray(r[a])&&(r[a]=function(e){const t={},n=Object.keys(e);let r;const i=n.length;let a;for(r=0;r<i;r++)a=n[r],t[a]=e[a];return t}(r[a])),!o}if(Oy.isFormData(e)&&Oy.isFunction(e.entries)){const n={};return Oy.forEachEntry(e,((e,r)=>{t(function(e){return Oy.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const Yy={transitional:Hy,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,i=Oy.isObject(e);i&&Oy.isHTMLForm(e)&&(e=new FormData(e));if(Oy.isFormData(e))return r&&r?JSON.stringify(Jy(e)):e;if(Oy.isArrayBuffer(e)||Oy.isBuffer(e)||Oy.isStream(e)||Oy.isFile(e)||Oy.isBlob(e))return e;if(Oy.isArrayBufferView(e))return e.buffer;if(Oy.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Dy(e,new Xy.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return Xy.isNode&&Oy.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((a=Oy.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return Dy(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||r?(t.setContentType("application/json",!1),function(e,t,n){if(Oy.isString(e))try{return(t||JSON.parse)(e),Oy.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Yy.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&Oy.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw ky.from(e,ky.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Xy.classes.FormData,Blob:Xy.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Oy.forEach(["delete","get","head","post","put","patch"],(e=>{Yy.headers[e]={}}));var Qy=Yy;const $y=Oy.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Zy=Symbol("internals");function eg(e){return e&&String(e).trim().toLowerCase()}function tg(e){return!1===e||null==e?e:Oy.isArray(e)?e.map(tg):String(e)}function ng(e,t,n,r,i){return Oy.isFunction(r)?r.call(this,t,n):(i&&(t=n),Oy.isString(t)?Oy.isString(r)?-1!==t.indexOf(r):Oy.isRegExp(r)?r.test(t):void 0:void 0)}class rg{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function i(e,t,n){const i=eg(t);if(!i)throw new Error("header name must be a non-empty string");const a=Oy.findKey(r,i);(!a||void 0===r[a]||!0===n||void 0===n&&!1!==r[a])&&(r[a||t]=tg(e))}const a=(e,t)=>Oy.forEach(e,((e,n)=>i(e,n,t)));return Oy.isPlainObject(e)||e instanceof this.constructor?a(e,t):Oy.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim())?a((e=>{const t={};let n,r,i;return e&&e.split("\n").forEach((function(e){i=e.indexOf(":"),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!n||t[n]&&$y[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&i(t,e,n),this}get(e,t){if(e=eg(e)){const n=Oy.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}(e);if(Oy.isFunction(t))return t.call(this,e,n);if(Oy.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=eg(e)){const n=Oy.findKey(this,e);return!(!n||void 0===this[n]||t&&!ng(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function i(e){if(e=eg(e)){const i=Oy.findKey(n,e);!i||t&&!ng(0,n[i],i,t)||(delete n[i],r=!0)}}return Oy.isArray(e)?e.forEach(i):i(e),r}clear(e){const t=Object.keys(this);let n=t.length,r=!1;for(;n--;){const i=t[n];e&&!ng(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}normalize(e){const t=this,n={};return Oy.forEach(this,((r,i)=>{const a=Oy.findKey(n,i);if(a)return t[a]=tg(r),void delete t[i];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((e,t,n)=>t.toUpperCase()+n))}(i):String(i).trim();o!==i&&delete t[i],t[o]=tg(r),n[o]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return Oy.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&Oy.isArray(n)?n.join(", "):n)})),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([e,t])=>e+": "+t)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach((e=>n.set(e))),n}static accessor(e){const t=(this[Zy]=this[Zy]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=eg(e);t[r]||(!function(e,t){const n=Oy.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})}))}(n,e),t[r]=!0)}return Oy.isArray(e)?e.forEach(r):r(e),this}}rg.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Oy.reduceDescriptors(rg.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),Oy.freezeMethods(rg);var ig=rg;function ag(e,t){const n=this||Qy,r=t||n,i=ig.from(r.headers);let a=r.data;return Oy.forEach(e,(function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)})),i.normalize(),a}function og(e){return!(!e||!e.__CANCEL__)}function sg(e,t,n){ky.call(this,null==e?"canceled":e,ky.ERR_CANCELED,t,n),this.name="CanceledError"}Oy.inherits(sg,ky,{__CANCEL__:!0});var ug=Xy.hasStandardBrowserEnv?{write(e,t,n,r,i,a){const o=[e+"="+encodeURIComponent(t)];Oy.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),Oy.isString(r)&&o.push("path="+r),Oy.isString(i)&&o.push("domain="+i),!0===a&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function cg(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}var lg=Xy.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=Oy.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};function dg(e,t){let n=0;const r=function(e,t){e=e||10;const n=new Array(e),r=new Array(e);let i,a=0,o=0;return t=void 0!==t?t:1e3,function(s){const u=Date.now(),c=r[o];i||(i=u),n[a]=s,r[a]=u;let l=o,d=0;for(;l!==a;)d+=n[l++],l%=e;if(a=(a+1)%e,a===o&&(o=(o+1)%e),u-i<t)return;const f=c&&u-c;return f?Math.round(1e3*d/f):void 0}}(50,250);return i=>{const a=i.loaded,o=i.lengthComputable?i.total:void 0,s=a-n,u=r(s);n=a;const c={loaded:a,total:o,progress:o?a/o:void 0,bytes:s,rate:u||void 0,estimated:u&&o&&a<=o?(o-a)/u:void 0,event:i};c[t?"download":"upload"]=!0,e(c)}}var fg="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let r=e.data;const i=ig.from(e.headers).normalize();let a,o,{responseType:s,withXSRFToken:u}=e;function c(){e.cancelToken&&e.cancelToken.unsubscribe(a),e.signal&&e.signal.removeEventListener("abort",a)}if(Oy.isFormData(r))if(Xy.hasStandardBrowserEnv||Xy.hasStandardBrowserWebWorkerEnv)i.setContentType(!1);else if(!1!==(o=i.getContentType())){const[e,...t]=o?o.split(";").map((e=>e.trim())).filter(Boolean):[];i.setContentType([e||"multipart/form-data",...t].join("; "))}let l=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";i.set("Authorization","Basic "+btoa(t+":"+n))}const d=cg(e.baseURL,e.url);function f(){if(!l)return;const r=ig.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new ky("Request failed with status code "+n.status,[ky.ERR_BAD_REQUEST,ky.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),c()}),(function(e){n(e),c()}),{data:s&&"text"!==s&&"json"!==s?l.response:l.responseText,status:l.status,statusText:l.statusText,headers:r,config:e,request:l}),l=null}if(l.open(e.method.toUpperCase(),jy(d,e.params,e.paramsSerializer),!0),l.timeout=e.timeout,"onloadend"in l?l.onloadend=f:l.onreadystatechange=function(){l&&4===l.readyState&&(0!==l.status||l.responseURL&&0===l.responseURL.indexOf("file:"))&&setTimeout(f)},l.onabort=function(){l&&(n(new ky("Request aborted",ky.ECONNABORTED,e,l)),l=null)},l.onerror=function(){n(new ky("Network Error",ky.ERR_NETWORK,e,l)),l=null},l.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||Hy;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new ky(t,r.clarifyTimeoutError?ky.ETIMEDOUT:ky.ECONNABORTED,e,l)),l=null},Xy.hasStandardBrowserEnv&&(u&&Oy.isFunction(u)&&(u=u(e)),u||!1!==u&&lg(d))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&ug.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===r&&i.setContentType(null),"setRequestHeader"in l&&Oy.forEach(i.toJSON(),(function(e,t){l.setRequestHeader(t,e)})),Oy.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),s&&"json"!==s&&(l.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",dg(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",dg(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=t=>{l&&(n(!t||t.type?new sg(null,e,l):t),l.abort(),l=null)},e.cancelToken&&e.cancelToken.subscribe(a),e.signal&&(e.signal.aborted?a():e.signal.addEventListener("abort",a)));const p=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(d);p&&-1===Xy.protocols.indexOf(p)?n(new ky("Unsupported protocol "+p+":",ky.ERR_BAD_REQUEST,e)):l.send(r||null)}))};const pg={http:null,xhr:fg};Oy.forEach(pg,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const hg=e=>`- ${e}`,mg=e=>Oy.isFunction(e)||null===e||!1===e;var yg=e=>{e=Oy.isArray(e)?e:[e];const{length:t}=e;let n,r;const i={};for(let a=0;a<t;a++){let t;if(n=e[a],r=n,!mg(n)&&(r=pg[(t=String(n)).toLowerCase()],void 0===r))throw new ky(`Unknown adapter '${t}'`);if(r)break;i[t||"#"+a]=r}if(!r){const e=Object.entries(i).map((([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")));throw new ky("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(hg).join("\n"):" "+hg(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function gg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new sg(null,e)}function bg(e){gg(e),e.headers=ig.from(e.headers),e.data=ag.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return yg(e.adapter||Qy.adapter)(e).then((function(t){return gg(e),t.data=ag.call(e,e.transformResponse,t),t.headers=ig.from(t.headers),t}),(function(t){return og(t)||(gg(e),t&&t.response&&(t.response.data=ag.call(e,e.transformResponse,t.response),t.response.headers=ig.from(t.response.headers))),Promise.reject(t)}))}const vg=e=>e instanceof ig?e.toJSON():e;function Tg(e,t){t=t||{};const n={};function r(e,t,n){return Oy.isPlainObject(e)&&Oy.isPlainObject(t)?Oy.merge.call({caseless:n},e,t):Oy.isPlainObject(t)?Oy.merge({},t):Oy.isArray(t)?t.slice():t}function i(e,t,n){return Oy.isUndefined(t)?Oy.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function a(e,t){if(!Oy.isUndefined(t))return r(void 0,t)}function o(e,t){return Oy.isUndefined(t)?Oy.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function s(n,i,a){return a in t?r(n,i):a in e?r(void 0,n):void 0}const u={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:s,headers:(e,t)=>i(vg(e),vg(t),!0)};return Oy.forEach(Object.keys(Object.assign({},e,t)),(function(r){const a=u[r]||i,o=a(e[r],t[r],r);Oy.isUndefined(o)&&a!==s||(n[r]=o)})),n}const wg="1.6.5",Ag={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Ag[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const Eg={};Ag.transitional=function(e,t,n){function r(e,t){return"[Axios v1.6.5] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,i,a)=>{if(!1===e)throw new ky(r(i," has been removed"+(t?" in "+t:"")),ky.ERR_DEPRECATED);return t&&!Eg[i]&&(Eg[i]=!0,console.warn(r(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,i,a)}};var _g={assertOptions:function(e,t,n){if("object"!=typeof e)throw new ky("options must be an object",ky.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let i=r.length;for(;i-- >0;){const a=r[i],o=t[a];if(o){const t=e[a],n=void 0===t||o(t,a,e);if(!0!==n)throw new ky("option "+a+" must be "+n,ky.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new ky("Unknown option "+a,ky.ERR_BAD_OPTION)}},validators:Ag};const Ig=_g.validators;class Rg{constructor(e){this.defaults=e,this.interceptors={request:new Gy,response:new Gy}}request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Tg(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:i}=t;void 0!==n&&_g.assertOptions(n,{silentJSONParsing:Ig.transitional(Ig.boolean),forcedJSONParsing:Ig.transitional(Ig.boolean),clarifyTimeoutError:Ig.transitional(Ig.boolean)},!1),null!=r&&(Oy.isFunction(r)?t.paramsSerializer={serialize:r}:_g.assertOptions(r,{encode:Ig.function,serialize:Ig.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let a=i&&Oy.merge(i.common,i[t.method]);i&&Oy.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete i[e]})),t.headers=ig.concat(a,i);const o=[];let s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,o.unshift(e.fulfilled,e.rejected))}));const u=[];let c;this.interceptors.response.forEach((function(e){u.push(e.fulfilled,e.rejected)}));let l,d=0;if(!s){const e=[bg.bind(this),void 0];for(e.unshift.apply(e,o),e.push.apply(e,u),l=e.length,c=Promise.resolve(t);d<l;)c=c.then(e[d++],e[d++]);return c}l=o.length;let f=t;for(d=0;d<l;){const e=o[d++],t=o[d++];try{f=e(f)}catch(e){t.call(this,e);break}}try{c=bg.call(this,f)}catch(e){return Promise.reject(e)}for(d=0,l=u.length;d<l;)c=c.then(u[d++],u[d++]);return c}getUri(e){return jy(cg((e=Tg(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}Oy.forEach(["delete","get","head","options"],(function(e){Rg.prototype[e]=function(t,n){return this.request(Tg(n||{},{method:e,url:t,data:(n||{}).data}))}})),Oy.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,i){return this.request(Tg(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Rg.prototype[e]=t(),Rg.prototype[e+"Form"]=t(!0)}));var Cg=Rg;class Og{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise((function(e){t=e}));const n=this;this.promise.then((e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null})),this.promise.then=e=>{let t;const r=new Promise((e=>{n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e((function(e,r,i){n.reason||(n.reason=new sg(e,r,i),t(n.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}static source(){let e;return{token:new Og((function(t){e=t})),cancel:e}}}var kg=Og;const Sg={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Sg).forEach((([e,t])=>{Sg[t]=e}));var Ng=Sg;const xg=function e(t){const n=new Cg(t),r=Ym(Cg.prototype.request,n);return Oy.extend(r,Cg.prototype,n,{allOwnKeys:!0}),Oy.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Tg(t,n))},r}(Qy);xg.Axios=Cg,xg.CanceledError=sg,xg.CancelToken=kg,xg.isCancel=og,xg.VERSION=wg,xg.toFormData=Dy,xg.AxiosError=ky,xg.Cancel=xg.CanceledError,xg.all=function(e){return Promise.all(e)},xg.spread=function(e){return function(t){return e.apply(null,t)}},xg.isAxiosError=function(e){return Oy.isObject(e)&&!0===e.isAxiosError},xg.mergeConfig=Tg,xg.AxiosHeaders=ig,xg.formToJSON=e=>Jy(Oy.isHTMLForm(e)?new FormData(e):e),xg.getAdapter=yg,xg.HttpStatusCode=Ng,xg.default=xg;var Pg=xg,Mg="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Bg(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Dg(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var n=function e(){if(this instanceof e){var n=[null];return n.push.apply(n,arguments),new(Function.bind.apply(t,n))}return t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,r.get?r:{enumerable:!0,get:function(){return e[t]}})})),n}var Fg={exports:{}},Lg=Dg(Object.freeze({__proto__:null,default:{}}));!function(e){!function(e,t){function n(e,t){if(!e)throw new Error(t||"Assertion failed")}function r(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function i(e,t,n){if(i.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var a;"object"==typeof e?e.exports=i:t.BN=i,i.BN=i,i.wordSize=26;try{a="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:Lg.Buffer}catch(e){}function o(e,t){var r=e.charCodeAt(t);return r>=48&&r<=57?r-48:r>=65&&r<=70?r-55:r>=97&&r<=102?r-87:void n(!1,"Invalid character in "+e)}function s(e,t,n){var r=o(e,n);return n-1>=t&&(r|=o(e,n-1)<<4),r}function u(e,t,r,i){for(var a=0,o=0,s=Math.min(e.length,r),u=t;u<s;u++){var c=e.charCodeAt(u)-48;a*=i,o=c>=49?c-49+10:c>=17?c-17+10:c,n(c>=0&&o<i,"Invalid character"),a+=o}return a}function c(e,t){e.words=t.words,e.length=t.length,e.negative=t.negative,e.red=t.red}if(i.isBN=function(e){return e instanceof i||null!==e&&"object"==typeof e&&e.constructor.wordSize===i.wordSize&&Array.isArray(e.words)},i.max=function(e,t){return e.cmp(t)>0?e:t},i.min=function(e,t){return e.cmp(t)<0?e:t},i.prototype._init=function(e,t,r){if("number"==typeof e)return this._initNumber(e,t,r);if("object"==typeof e)return this._initArray(e,t,r);"hex"===t&&(t=16),n(t===(0|t)&&t>=2&&t<=36);var i=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&(i++,this.negative=1),i<e.length&&(16===t?this._parseHex(e,i,r):(this._parseBase(e,t,i),"le"===r&&this._initArray(this.toArray(),t,r)))},i.prototype._initNumber=function(e,t,r){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(n(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===r&&this._initArray(this.toArray(),t,r)},i.prototype._initArray=function(e,t,r){if(n("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var i=0;i<this.length;i++)this.words[i]=0;var a,o,s=0;if("be"===r)for(i=e.length-1,a=0;i>=0;i-=3)o=e[i]|e[i-1]<<8|e[i-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===r)for(i=0,a=0;i<e.length;i+=3)o=e[i]|e[i+1]<<8|e[i+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this._strip()},i.prototype._parseHex=function(e,t,n){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var i,a=0,o=0;if("be"===n)for(r=e.length-1;r>=t;r-=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;else for(r=(e.length-t)%2==0?t+1:t;r<e.length;r+=2)i=s(e,t,r)<<a,this.words[o]|=67108863&i,a>=18?(a-=18,o+=1,this.words[o]|=i>>>26):a+=8;this._strip()},i.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,o=a%r,s=Math.min(a,a-o)+n,c=0,l=n;l<s;l+=r)c=u(e,l,l+r,t),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var d=1;for(c=u(e,l,e.length,t),l=0;l<o;l++)d*=t;this.imuln(d),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}this._strip()},i.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},i.prototype._move=function(e){c(e,this)},i.prototype.clone=function(){var e=new i(null);return this.copy(e),e},i.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},i.prototype._strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},i.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{i.prototype[Symbol.for("nodejs.util.inspect.custom")]=l}catch(e){i.prototype.inspect=l}else i.prototype.inspect=l;function l(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var d=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],p=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];i.prototype.toString=function(e,t){var r;if(t=0|t||1,16===(e=e||10)||"hex"===e){r="";for(var i=0,a=0,o=0;o<this.length;o++){var s=this.words[o],u=(16777215&(s<<i|a)).toString(16);a=s>>>24-i&16777215,(i+=2)>=26&&(i-=26,o--),r=0!==a||o!==this.length-1?d[6-u.length]+u+r:u+r}for(0!==a&&(r=a.toString(16)+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}if(e===(0|e)&&e>=2&&e<=36){var c=f[e],l=p[e];r="";var h=this.clone();for(h.negative=0;!h.isZero();){var m=h.modrn(l).toString(e);r=(h=h.idivn(l)).isZero()?m+r:d[c-m.length]+m+r}for(this.isZero()&&(r="0"+r);r.length%t!=0;)r="0"+r;return 0!==this.negative&&(r="-"+r),r}n(!1,"Base should be between 2 and 36")},i.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},i.prototype.toJSON=function(){return this.toString(16,2)},a&&(i.prototype.toBuffer=function(e,t){return this.toArrayLike(a,e,t)}),i.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)};function h(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],o=i*a,s=67108863&o,u=o/67108864|0;n.words[0]=s;for(var c=1;c<r;c++){for(var l=u>>>26,d=67108863&u,f=Math.min(c,t.length-1),p=Math.max(0,c-e.length+1);p<=f;p++){var h=c-p|0;l+=(o=(i=0|e.words[h])*(a=0|t.words[p])+d)/67108864|0,d=67108863&o}n.words[c]=0|d,u=0|l}return 0!==u?n.words[c]=0|u:n.length--,n._strip()}i.prototype.toArrayLike=function(e,t,r){this._strip();var i=this.byteLength(),a=r||Math.max(1,i);n(i<=a,"byte array longer than desired length"),n(a>0,"Requested array length <= 0");var o=function(e,t){return e.allocUnsafe?e.allocUnsafe(t):new e(t)}(e,a);return this["_toArrayLike"+("le"===t?"LE":"BE")](o,i),o},i.prototype._toArrayLikeLE=function(e,t){for(var n=0,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n++]=255&o,n<e.length&&(e[n++]=o>>8&255),n<e.length&&(e[n++]=o>>16&255),6===a?(n<e.length&&(e[n++]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n<e.length)for(e[n++]=r;n<e.length;)e[n++]=0},i.prototype._toArrayLikeBE=function(e,t){for(var n=e.length-1,r=0,i=0,a=0;i<this.length;i++){var o=this.words[i]<<a|r;e[n--]=255&o,n>=0&&(e[n--]=o>>8&255),n>=0&&(e[n--]=o>>16&255),6===a?(n>=0&&(e[n--]=o>>24&255),r=0,a=0):(r=o>>>24,a+=2)}if(n>=0)for(e[n--]=r;n>=0;)e[n--]=0},Math.clz32?i.prototype._countBits=function(e){return 32-Math.clz32(e)}:i.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},i.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},i.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},i.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},i.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},i.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},i.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},i.prototype.isNeg=function(){return 0!==this.negative},i.prototype.neg=function(){return this.clone().ineg()},i.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},i.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this._strip()},i.prototype.ior=function(e){return n(0==(this.negative|e.negative)),this.iuor(e)},i.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},i.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},i.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this._strip()},i.prototype.iand=function(e){return n(0==(this.negative|e.negative)),this.iuand(e)},i.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},i.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},i.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this._strip()},i.prototype.ixor=function(e){return n(0==(this.negative|e.negative)),this.iuxor(e)},i.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},i.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},i.prototype.inotn=function(e){n("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),r=e%26;this._expand(t),r>0&&t--;for(var i=0;i<t;i++)this.words[i]=67108863&~this.words[i];return r>0&&(this.words[i]=~this.words[i]&67108863>>26-r),this._strip()},i.prototype.notn=function(e){return this.clone().inotn(e)},i.prototype.setn=function(e,t){n("number"==typeof e&&e>=0);var r=e/26|0,i=e%26;return this._expand(r+1),this.words[r]=t?this.words[r]|1<<i:this.words[r]&~(1<<i),this._strip()},i.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a<r.length;a++)t=(0|n.words[a])+(0|r.words[a])+i,this.words[a]=67108863&t,i=t>>>26;for(;0!==i&&a<n.length;a++)t=(0|n.words[a])+i,this.words[a]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this},i.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},i.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,o=0;o<r.length;o++)a=(t=(0|n.words[o])-(0|r.words[o])+a)>>26,this.words[o]=67108863&t;for(;0!==a&&o<n.length;o++)a=(t=(0|n.words[o])+a)>>26,this.words[o]=67108863&t;if(0===a&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.negative=1),this._strip()},i.prototype.sub=function(e){return this.clone().isub(e)};var m=function(e,t,n){var r,i,a,o=e.words,s=t.words,u=n.words,c=0,l=0|o[0],d=8191&l,f=l>>>13,p=0|o[1],h=8191&p,m=p>>>13,y=0|o[2],g=8191&y,b=y>>>13,v=0|o[3],T=8191&v,w=v>>>13,A=0|o[4],E=8191&A,_=A>>>13,I=0|o[5],R=8191&I,C=I>>>13,O=0|o[6],k=8191&O,S=O>>>13,N=0|o[7],x=8191&N,P=N>>>13,M=0|o[8],B=8191&M,D=M>>>13,F=0|o[9],L=8191&F,U=F>>>13,q=0|s[0],j=8191&q,G=q>>>13,H=0|s[1],z=8191&H,W=H>>>13,V=0|s[2],K=8191&V,X=V>>>13,J=0|s[3],Y=8191&J,Q=J>>>13,$=0|s[4],Z=8191&$,ee=$>>>13,te=0|s[5],ne=8191&te,re=te>>>13,ie=0|s[6],ae=8191&ie,oe=ie>>>13,se=0|s[7],ue=8191&se,ce=se>>>13,le=0|s[8],de=8191&le,fe=le>>>13,pe=0|s[9],he=8191&pe,me=pe>>>13;n.negative=e.negative^t.negative,n.length=19;var ye=(c+(r=Math.imul(d,j))|0)+((8191&(i=(i=Math.imul(d,G))+Math.imul(f,j)|0))<<13)|0;c=((a=Math.imul(f,G))+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(h,j),i=(i=Math.imul(h,G))+Math.imul(m,j)|0,a=Math.imul(m,G);var ge=(c+(r=r+Math.imul(d,z)|0)|0)+((8191&(i=(i=i+Math.imul(d,W)|0)+Math.imul(f,z)|0))<<13)|0;c=((a=a+Math.imul(f,W)|0)+(i>>>13)|0)+(ge>>>26)|0,ge&=67108863,r=Math.imul(g,j),i=(i=Math.imul(g,G))+Math.imul(b,j)|0,a=Math.imul(b,G),r=r+Math.imul(h,z)|0,i=(i=i+Math.imul(h,W)|0)+Math.imul(m,z)|0,a=a+Math.imul(m,W)|0;var be=(c+(r=r+Math.imul(d,K)|0)|0)+((8191&(i=(i=i+Math.imul(d,X)|0)+Math.imul(f,K)|0))<<13)|0;c=((a=a+Math.imul(f,X)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(T,j),i=(i=Math.imul(T,G))+Math.imul(w,j)|0,a=Math.imul(w,G),r=r+Math.imul(g,z)|0,i=(i=i+Math.imul(g,W)|0)+Math.imul(b,z)|0,a=a+Math.imul(b,W)|0,r=r+Math.imul(h,K)|0,i=(i=i+Math.imul(h,X)|0)+Math.imul(m,K)|0,a=a+Math.imul(m,X)|0;var ve=(c+(r=r+Math.imul(d,Y)|0)|0)+((8191&(i=(i=i+Math.imul(d,Q)|0)+Math.imul(f,Y)|0))<<13)|0;c=((a=a+Math.imul(f,Q)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(E,j),i=(i=Math.imul(E,G))+Math.imul(_,j)|0,a=Math.imul(_,G),r=r+Math.imul(T,z)|0,i=(i=i+Math.imul(T,W)|0)+Math.imul(w,z)|0,a=a+Math.imul(w,W)|0,r=r+Math.imul(g,K)|0,i=(i=i+Math.imul(g,X)|0)+Math.imul(b,K)|0,a=a+Math.imul(b,X)|0,r=r+Math.imul(h,Y)|0,i=(i=i+Math.imul(h,Q)|0)+Math.imul(m,Y)|0,a=a+Math.imul(m,Q)|0;var Te=(c+(r=r+Math.imul(d,Z)|0)|0)+((8191&(i=(i=i+Math.imul(d,ee)|0)+Math.imul(f,Z)|0))<<13)|0;c=((a=a+Math.imul(f,ee)|0)+(i>>>13)|0)+(Te>>>26)|0,Te&=67108863,r=Math.imul(R,j),i=(i=Math.imul(R,G))+Math.imul(C,j)|0,a=Math.imul(C,G),r=r+Math.imul(E,z)|0,i=(i=i+Math.imul(E,W)|0)+Math.imul(_,z)|0,a=a+Math.imul(_,W)|0,r=r+Math.imul(T,K)|0,i=(i=i+Math.imul(T,X)|0)+Math.imul(w,K)|0,a=a+Math.imul(w,X)|0,r=r+Math.imul(g,Y)|0,i=(i=i+Math.imul(g,Q)|0)+Math.imul(b,Y)|0,a=a+Math.imul(b,Q)|0,r=r+Math.imul(h,Z)|0,i=(i=i+Math.imul(h,ee)|0)+Math.imul(m,Z)|0,a=a+Math.imul(m,ee)|0;var we=(c+(r=r+Math.imul(d,ne)|0)|0)+((8191&(i=(i=i+Math.imul(d,re)|0)+Math.imul(f,ne)|0))<<13)|0;c=((a=a+Math.imul(f,re)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(k,j),i=(i=Math.imul(k,G))+Math.imul(S,j)|0,a=Math.imul(S,G),r=r+Math.imul(R,z)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(C,z)|0,a=a+Math.imul(C,W)|0,r=r+Math.imul(E,K)|0,i=(i=i+Math.imul(E,X)|0)+Math.imul(_,K)|0,a=a+Math.imul(_,X)|0,r=r+Math.imul(T,Y)|0,i=(i=i+Math.imul(T,Q)|0)+Math.imul(w,Y)|0,a=a+Math.imul(w,Q)|0,r=r+Math.imul(g,Z)|0,i=(i=i+Math.imul(g,ee)|0)+Math.imul(b,Z)|0,a=a+Math.imul(b,ee)|0,r=r+Math.imul(h,ne)|0,i=(i=i+Math.imul(h,re)|0)+Math.imul(m,ne)|0,a=a+Math.imul(m,re)|0;var Ae=(c+(r=r+Math.imul(d,ae)|0)|0)+((8191&(i=(i=i+Math.imul(d,oe)|0)+Math.imul(f,ae)|0))<<13)|0;c=((a=a+Math.imul(f,oe)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(x,j),i=(i=Math.imul(x,G))+Math.imul(P,j)|0,a=Math.imul(P,G),r=r+Math.imul(k,z)|0,i=(i=i+Math.imul(k,W)|0)+Math.imul(S,z)|0,a=a+Math.imul(S,W)|0,r=r+Math.imul(R,K)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(C,K)|0,a=a+Math.imul(C,X)|0,r=r+Math.imul(E,Y)|0,i=(i=i+Math.imul(E,Q)|0)+Math.imul(_,Y)|0,a=a+Math.imul(_,Q)|0,r=r+Math.imul(T,Z)|0,i=(i=i+Math.imul(T,ee)|0)+Math.imul(w,Z)|0,a=a+Math.imul(w,ee)|0,r=r+Math.imul(g,ne)|0,i=(i=i+Math.imul(g,re)|0)+Math.imul(b,ne)|0,a=a+Math.imul(b,re)|0,r=r+Math.imul(h,ae)|0,i=(i=i+Math.imul(h,oe)|0)+Math.imul(m,ae)|0,a=a+Math.imul(m,oe)|0;var Ee=(c+(r=r+Math.imul(d,ue)|0)|0)+((8191&(i=(i=i+Math.imul(d,ce)|0)+Math.imul(f,ue)|0))<<13)|0;c=((a=a+Math.imul(f,ce)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(B,j),i=(i=Math.imul(B,G))+Math.imul(D,j)|0,a=Math.imul(D,G),r=r+Math.imul(x,z)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(P,z)|0,a=a+Math.imul(P,W)|0,r=r+Math.imul(k,K)|0,i=(i=i+Math.imul(k,X)|0)+Math.imul(S,K)|0,a=a+Math.imul(S,X)|0,r=r+Math.imul(R,Y)|0,i=(i=i+Math.imul(R,Q)|0)+Math.imul(C,Y)|0,a=a+Math.imul(C,Q)|0,r=r+Math.imul(E,Z)|0,i=(i=i+Math.imul(E,ee)|0)+Math.imul(_,Z)|0,a=a+Math.imul(_,ee)|0,r=r+Math.imul(T,ne)|0,i=(i=i+Math.imul(T,re)|0)+Math.imul(w,ne)|0,a=a+Math.imul(w,re)|0,r=r+Math.imul(g,ae)|0,i=(i=i+Math.imul(g,oe)|0)+Math.imul(b,ae)|0,a=a+Math.imul(b,oe)|0,r=r+Math.imul(h,ue)|0,i=(i=i+Math.imul(h,ce)|0)+Math.imul(m,ue)|0,a=a+Math.imul(m,ce)|0;var _e=(c+(r=r+Math.imul(d,de)|0)|0)+((8191&(i=(i=i+Math.imul(d,fe)|0)+Math.imul(f,de)|0))<<13)|0;c=((a=a+Math.imul(f,fe)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(L,j),i=(i=Math.imul(L,G))+Math.imul(U,j)|0,a=Math.imul(U,G),r=r+Math.imul(B,z)|0,i=(i=i+Math.imul(B,W)|0)+Math.imul(D,z)|0,a=a+Math.imul(D,W)|0,r=r+Math.imul(x,K)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(P,K)|0,a=a+Math.imul(P,X)|0,r=r+Math.imul(k,Y)|0,i=(i=i+Math.imul(k,Q)|0)+Math.imul(S,Y)|0,a=a+Math.imul(S,Q)|0,r=r+Math.imul(R,Z)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(C,Z)|0,a=a+Math.imul(C,ee)|0,r=r+Math.imul(E,ne)|0,i=(i=i+Math.imul(E,re)|0)+Math.imul(_,ne)|0,a=a+Math.imul(_,re)|0,r=r+Math.imul(T,ae)|0,i=(i=i+Math.imul(T,oe)|0)+Math.imul(w,ae)|0,a=a+Math.imul(w,oe)|0,r=r+Math.imul(g,ue)|0,i=(i=i+Math.imul(g,ce)|0)+Math.imul(b,ue)|0,a=a+Math.imul(b,ce)|0,r=r+Math.imul(h,de)|0,i=(i=i+Math.imul(h,fe)|0)+Math.imul(m,de)|0,a=a+Math.imul(m,fe)|0;var Ie=(c+(r=r+Math.imul(d,he)|0)|0)+((8191&(i=(i=i+Math.imul(d,me)|0)+Math.imul(f,he)|0))<<13)|0;c=((a=a+Math.imul(f,me)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,z),i=(i=Math.imul(L,W))+Math.imul(U,z)|0,a=Math.imul(U,W),r=r+Math.imul(B,K)|0,i=(i=i+Math.imul(B,X)|0)+Math.imul(D,K)|0,a=a+Math.imul(D,X)|0,r=r+Math.imul(x,Y)|0,i=(i=i+Math.imul(x,Q)|0)+Math.imul(P,Y)|0,a=a+Math.imul(P,Q)|0,r=r+Math.imul(k,Z)|0,i=(i=i+Math.imul(k,ee)|0)+Math.imul(S,Z)|0,a=a+Math.imul(S,ee)|0,r=r+Math.imul(R,ne)|0,i=(i=i+Math.imul(R,re)|0)+Math.imul(C,ne)|0,a=a+Math.imul(C,re)|0,r=r+Math.imul(E,ae)|0,i=(i=i+Math.imul(E,oe)|0)+Math.imul(_,ae)|0,a=a+Math.imul(_,oe)|0,r=r+Math.imul(T,ue)|0,i=(i=i+Math.imul(T,ce)|0)+Math.imul(w,ue)|0,a=a+Math.imul(w,ce)|0,r=r+Math.imul(g,de)|0,i=(i=i+Math.imul(g,fe)|0)+Math.imul(b,de)|0,a=a+Math.imul(b,fe)|0;var Re=(c+(r=r+Math.imul(h,he)|0)|0)+((8191&(i=(i=i+Math.imul(h,me)|0)+Math.imul(m,he)|0))<<13)|0;c=((a=a+Math.imul(m,me)|0)+(i>>>13)|0)+(Re>>>26)|0,Re&=67108863,r=Math.imul(L,K),i=(i=Math.imul(L,X))+Math.imul(U,K)|0,a=Math.imul(U,X),r=r+Math.imul(B,Y)|0,i=(i=i+Math.imul(B,Q)|0)+Math.imul(D,Y)|0,a=a+Math.imul(D,Q)|0,r=r+Math.imul(x,Z)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(P,Z)|0,a=a+Math.imul(P,ee)|0,r=r+Math.imul(k,ne)|0,i=(i=i+Math.imul(k,re)|0)+Math.imul(S,ne)|0,a=a+Math.imul(S,re)|0,r=r+Math.imul(R,ae)|0,i=(i=i+Math.imul(R,oe)|0)+Math.imul(C,ae)|0,a=a+Math.imul(C,oe)|0,r=r+Math.imul(E,ue)|0,i=(i=i+Math.imul(E,ce)|0)+Math.imul(_,ue)|0,a=a+Math.imul(_,ce)|0,r=r+Math.imul(T,de)|0,i=(i=i+Math.imul(T,fe)|0)+Math.imul(w,de)|0,a=a+Math.imul(w,fe)|0;var Ce=(c+(r=r+Math.imul(g,he)|0)|0)+((8191&(i=(i=i+Math.imul(g,me)|0)+Math.imul(b,he)|0))<<13)|0;c=((a=a+Math.imul(b,me)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(L,Y),i=(i=Math.imul(L,Q))+Math.imul(U,Y)|0,a=Math.imul(U,Q),r=r+Math.imul(B,Z)|0,i=(i=i+Math.imul(B,ee)|0)+Math.imul(D,Z)|0,a=a+Math.imul(D,ee)|0,r=r+Math.imul(x,ne)|0,i=(i=i+Math.imul(x,re)|0)+Math.imul(P,ne)|0,a=a+Math.imul(P,re)|0,r=r+Math.imul(k,ae)|0,i=(i=i+Math.imul(k,oe)|0)+Math.imul(S,ae)|0,a=a+Math.imul(S,oe)|0,r=r+Math.imul(R,ue)|0,i=(i=i+Math.imul(R,ce)|0)+Math.imul(C,ue)|0,a=a+Math.imul(C,ce)|0,r=r+Math.imul(E,de)|0,i=(i=i+Math.imul(E,fe)|0)+Math.imul(_,de)|0,a=a+Math.imul(_,fe)|0;var Oe=(c+(r=r+Math.imul(T,he)|0)|0)+((8191&(i=(i=i+Math.imul(T,me)|0)+Math.imul(w,he)|0))<<13)|0;c=((a=a+Math.imul(w,me)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(L,Z),i=(i=Math.imul(L,ee))+Math.imul(U,Z)|0,a=Math.imul(U,ee),r=r+Math.imul(B,ne)|0,i=(i=i+Math.imul(B,re)|0)+Math.imul(D,ne)|0,a=a+Math.imul(D,re)|0,r=r+Math.imul(x,ae)|0,i=(i=i+Math.imul(x,oe)|0)+Math.imul(P,ae)|0,a=a+Math.imul(P,oe)|0,r=r+Math.imul(k,ue)|0,i=(i=i+Math.imul(k,ce)|0)+Math.imul(S,ue)|0,a=a+Math.imul(S,ce)|0,r=r+Math.imul(R,de)|0,i=(i=i+Math.imul(R,fe)|0)+Math.imul(C,de)|0,a=a+Math.imul(C,fe)|0;var ke=(c+(r=r+Math.imul(E,he)|0)|0)+((8191&(i=(i=i+Math.imul(E,me)|0)+Math.imul(_,he)|0))<<13)|0;c=((a=a+Math.imul(_,me)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(L,ne),i=(i=Math.imul(L,re))+Math.imul(U,ne)|0,a=Math.imul(U,re),r=r+Math.imul(B,ae)|0,i=(i=i+Math.imul(B,oe)|0)+Math.imul(D,ae)|0,a=a+Math.imul(D,oe)|0,r=r+Math.imul(x,ue)|0,i=(i=i+Math.imul(x,ce)|0)+Math.imul(P,ue)|0,a=a+Math.imul(P,ce)|0,r=r+Math.imul(k,de)|0,i=(i=i+Math.imul(k,fe)|0)+Math.imul(S,de)|0,a=a+Math.imul(S,fe)|0;var Se=(c+(r=r+Math.imul(R,he)|0)|0)+((8191&(i=(i=i+Math.imul(R,me)|0)+Math.imul(C,he)|0))<<13)|0;c=((a=a+Math.imul(C,me)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(L,ae),i=(i=Math.imul(L,oe))+Math.imul(U,ae)|0,a=Math.imul(U,oe),r=r+Math.imul(B,ue)|0,i=(i=i+Math.imul(B,ce)|0)+Math.imul(D,ue)|0,a=a+Math.imul(D,ce)|0,r=r+Math.imul(x,de)|0,i=(i=i+Math.imul(x,fe)|0)+Math.imul(P,de)|0,a=a+Math.imul(P,fe)|0;var Ne=(c+(r=r+Math.imul(k,he)|0)|0)+((8191&(i=(i=i+Math.imul(k,me)|0)+Math.imul(S,he)|0))<<13)|0;c=((a=a+Math.imul(S,me)|0)+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,r=Math.imul(L,ue),i=(i=Math.imul(L,ce))+Math.imul(U,ue)|0,a=Math.imul(U,ce),r=r+Math.imul(B,de)|0,i=(i=i+Math.imul(B,fe)|0)+Math.imul(D,de)|0,a=a+Math.imul(D,fe)|0;var xe=(c+(r=r+Math.imul(x,he)|0)|0)+((8191&(i=(i=i+Math.imul(x,me)|0)+Math.imul(P,he)|0))<<13)|0;c=((a=a+Math.imul(P,me)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,de),i=(i=Math.imul(L,fe))+Math.imul(U,de)|0,a=Math.imul(U,fe);var Pe=(c+(r=r+Math.imul(B,he)|0)|0)+((8191&(i=(i=i+Math.imul(B,me)|0)+Math.imul(D,he)|0))<<13)|0;c=((a=a+Math.imul(D,me)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863;var Me=(c+(r=Math.imul(L,he))|0)+((8191&(i=(i=Math.imul(L,me))+Math.imul(U,he)|0))<<13)|0;return c=((a=Math.imul(U,me))+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,u[0]=ye,u[1]=ge,u[2]=be,u[3]=ve,u[4]=Te,u[5]=we,u[6]=Ae,u[7]=Ee,u[8]=_e,u[9]=Ie,u[10]=Re,u[11]=Ce,u[12]=Oe,u[13]=ke,u[14]=Se,u[15]=Ne,u[16]=xe,u[17]=Pe,u[18]=Me,0!==c&&(u[19]=c,n.length++),n};function y(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a<n.length-1;a++){var o=i;i=0;for(var s=67108863&r,u=Math.min(a,t.length-1),c=Math.max(0,a-e.length+1);c<=u;c++){var l=a-c,d=(0|e.words[l])*(0|t.words[c]),f=67108863&d;s=67108863&(f=f+s|0),i+=(o=(o=o+(d/67108864|0)|0)+(f>>>26)|0)>>>26,o&=67108863}n.words[a]=s,r=o,o=i}return 0!==r?n.words[a]=r:n.length--,n._strip()}function g(e,t,n){return y(e,t,n)}Math.imul||(m=h),i.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?m(this,e,t):n<63?h(this,e,t):n<1024?y(this,e,t):g(this,e,t)},i.prototype.mul=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},i.prototype.mulf=function(e){var t=new i(null);return t.words=new Array(this.length+e.length),g(this,e,t)},i.prototype.imul=function(e){return this.clone().mulTo(e,this)},i.prototype.imuln=function(e){var t=e<0;t&&(e=-e),n("number"==typeof e),n(e<67108864);for(var r=0,i=0;i<this.length;i++){var a=(0|this.words[i])*e,o=(67108863&a)+(67108863&r);r>>=26,r+=a/67108864|0,r+=o>>>26,this.words[i]=67108863&o}return 0!==r&&(this.words[i]=r,this.length++),t?this.ineg():this},i.prototype.muln=function(e){return this.clone().imuln(e)},i.prototype.sqr=function(){return this.mul(this)},i.prototype.isqr=function(){return this.imul(this.clone())},i.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=e.words[r]>>>i&1}return t}(e);if(0===t.length)return new i(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var a=n.sqr();r<t.length;r++,a=a.sqr())0!==t[r]&&(n=n.mul(a));return n},i.prototype.iushln=function(e){n("number"==typeof e&&e>=0);var t,r=e%26,i=(e-r)/26,a=67108863>>>26-r<<26-r;if(0!==r){var o=0;for(t=0;t<this.length;t++){var s=this.words[t]&a,u=(0|this.words[t])-s<<r;this.words[t]=u|o,o=s>>>26-r}o&&(this.words[t]=o,this.length++)}if(0!==i){for(t=this.length-1;t>=0;t--)this.words[t+i]=this.words[t];for(t=0;t<i;t++)this.words[t]=0;this.length+=i}return this._strip()},i.prototype.ishln=function(e){return n(0===this.negative),this.iushln(e)},i.prototype.iushrn=function(e,t,r){var i;n("number"==typeof e&&e>=0),i=t?(t-t%26)/26:0;var a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,u=r;if(i-=o,i=Math.max(0,i),u){for(var c=0;c<o;c++)u.words[c]=this.words[c];u.length=o}if(0===o);else if(this.length>o)for(this.length-=o,c=0;c<this.length;c++)this.words[c]=this.words[c+o];else this.words[0]=0,this.length=1;var l=0;for(c=this.length-1;c>=0&&(0!==l||c>=i);c--){var d=0|this.words[c];this.words[c]=l<<26-a|d>>>a,l=d&s}return u&&0!==l&&(u.words[u.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},i.prototype.ishrn=function(e,t,r){return n(0===this.negative),this.iushrn(e,t,r)},i.prototype.shln=function(e){return this.clone().ishln(e)},i.prototype.ushln=function(e){return this.clone().iushln(e)},i.prototype.shrn=function(e){return this.clone().ishrn(e)},i.prototype.ushrn=function(e){return this.clone().iushrn(e)},i.prototype.testn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26,i=1<<t;return!(this.length<=r)&&!!(this.words[r]&i)},i.prototype.imaskn=function(e){n("number"==typeof e&&e>=0);var t=e%26,r=(e-t)/26;if(n(0===this.negative,"imaskn works only with positive numbers"),this.length<=r)return this;if(0!==t&&r++,this.length=Math.min(r,this.length),0!==t){var i=67108863^67108863>>>t<<t;this.words[this.length-1]&=i}return this._strip()},i.prototype.maskn=function(e){return this.clone().imaskn(e)},i.prototype.iaddn=function(e){return n("number"==typeof e),n(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<=e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},i.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},i.prototype.isubn=function(e){if(n("number"==typeof e),n(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this._strip()},i.prototype.addn=function(e){return this.clone().iaddn(e)},i.prototype.subn=function(e){return this.clone().isubn(e)},i.prototype.iabs=function(){return this.negative=0,this},i.prototype.abs=function(){return this.clone().iabs()},i.prototype._ishlnsubmul=function(e,t,r){var i,a,o=e.length+r;this._expand(o);var s=0;for(i=0;i<e.length;i++){a=(0|this.words[i+r])+s;var u=(0|e.words[i])*t;s=((a-=67108863&u)>>26)-(u/67108864|0),this.words[i+r]=67108863&a}for(;i<this.length-r;i++)s=(a=(0|this.words[i+r])+s)>>26,this.words[i+r]=67108863&a;if(0===s)return this._strip();for(n(-1===s),s=0,i=0;i<this.length;i++)s=(a=-(0|this.words[i])+s)>>26,this.words[i]=67108863&a;return this.negative=1,this._strip()},i.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),a=e,o=0|a.words[a.length-1];0!==(n=26-this._countBits(o))&&(a=a.ushln(n),r.iushln(n),o=0|a.words[a.length-1]);var s,u=r.length-a.length;if("mod"!==t){(s=new i(null)).length=u+1,s.words=new Array(s.length);for(var c=0;c<s.length;c++)s.words[c]=0}var l=r.clone()._ishlnsubmul(a,1,u);0===l.negative&&(r=l,s&&(s.words[u]=1));for(var d=u-1;d>=0;d--){var f=67108864*(0|r.words[a.length+d])+(0|r.words[a.length+d-1]);for(f=Math.min(f/o|0,67108863),r._ishlnsubmul(a,f,d);0!==r.negative;)f--,r.negative=0,r._ishlnsubmul(a,1,d),r.isZero()||(r.negative^=1);s&&(s.words[d]=f)}return s&&s._strip(),r._strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},i.prototype.divmod=function(e,t,r){return n(!e.isZero()),this.isZero()?{div:new i(0),mod:new i(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(a=s.div.neg()),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.iadd(e)),{div:a,mod:o}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(a=s.div.neg()),{div:a,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(o=s.mod.neg(),r&&0!==o.negative&&o.isub(e)),{div:s.div,mod:o}):e.length>this.length||this.cmp(e)<0?{div:new i(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new i(this.modrn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new i(this.modrn(e.words[0]))}:this._wordDiv(e,t);var a,o,s},i.prototype.div=function(e){return this.divmod(e,"div",!1).div},i.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},i.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},i.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},i.prototype.modrn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=(1<<26)%e,i=0,a=this.length-1;a>=0;a--)i=(r*i+(0|this.words[a]))%e;return t?-i:i},i.prototype.modn=function(e){return this.modrn(e)},i.prototype.idivn=function(e){var t=e<0;t&&(e=-e),n(e<=67108863);for(var r=0,i=this.length-1;i>=0;i--){var a=(0|this.words[i])+67108864*r;this.words[i]=a/e|0,r=a%e}return this._strip(),t?this.ineg():this},i.prototype.divn=function(e){return this.clone().idivn(e)},i.prototype.egcd=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a=new i(1),o=new i(0),s=new i(0),u=new i(1),c=0;t.isEven()&&r.isEven();)t.iushrn(1),r.iushrn(1),++c;for(var l=r.clone(),d=t.clone();!t.isZero();){for(var f=0,p=1;0==(t.words[0]&p)&&f<26;++f,p<<=1);if(f>0)for(t.iushrn(f);f-- >0;)(a.isOdd()||o.isOdd())&&(a.iadd(l),o.isub(d)),a.iushrn(1),o.iushrn(1);for(var h=0,m=1;0==(r.words[0]&m)&&h<26;++h,m<<=1);if(h>0)for(r.iushrn(h);h-- >0;)(s.isOdd()||u.isOdd())&&(s.iadd(l),u.isub(d)),s.iushrn(1),u.iushrn(1);t.cmp(r)>=0?(t.isub(r),a.isub(s),o.isub(u)):(r.isub(t),s.isub(a),u.isub(o))}return{a:s,b:u,gcd:r.iushln(c)}},i.prototype._invmp=function(e){n(0===e.negative),n(!e.isZero());var t=this,r=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var a,o=new i(1),s=new i(0),u=r.clone();t.cmpn(1)>0&&r.cmpn(1)>0;){for(var c=0,l=1;0==(t.words[0]&l)&&c<26;++c,l<<=1);if(c>0)for(t.iushrn(c);c-- >0;)o.isOdd()&&o.iadd(u),o.iushrn(1);for(var d=0,f=1;0==(r.words[0]&f)&&d<26;++d,f<<=1);if(d>0)for(r.iushrn(d);d-- >0;)s.isOdd()&&s.iadd(u),s.iushrn(1);t.cmp(r)>=0?(t.isub(r),o.isub(s)):(r.isub(t),s.isub(o))}return(a=0===t.cmpn(1)?o:s).cmpn(0)<0&&a.iadd(e),a},i.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},i.prototype.invm=function(e){return this.egcd(e).a.umod(e)},i.prototype.isEven=function(){return 0==(1&this.words[0])},i.prototype.isOdd=function(){return 1==(1&this.words[0])},i.prototype.andln=function(e){return this.words[0]&e},i.prototype.bincn=function(e){n("number"==typeof e);var t=e%26,r=(e-t)/26,i=1<<t;if(this.length<=r)return this._expand(r+1),this.words[r]|=i,this;for(var a=i,o=r;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},i.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},i.prototype.cmpn=function(e){var t,r=e<0;if(0!==this.negative&&!r)return-1;if(0===this.negative&&r)return 1;if(this._strip(),this.length>1)t=1;else{r&&(e=-e),n(e<=67108863,"Number is too big");var i=0|this.words[0];t=i===e?0:i<e?-1:1}return 0!==this.negative?0|-t:t},i.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},i.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},i.prototype.gtn=function(e){return 1===this.cmpn(e)},i.prototype.gt=function(e){return 1===this.cmp(e)},i.prototype.gten=function(e){return this.cmpn(e)>=0},i.prototype.gte=function(e){return this.cmp(e)>=0},i.prototype.ltn=function(e){return-1===this.cmpn(e)},i.prototype.lt=function(e){return-1===this.cmp(e)},i.prototype.lten=function(e){return this.cmpn(e)<=0},i.prototype.lte=function(e){return this.cmp(e)<=0},i.prototype.eqn=function(e){return 0===this.cmpn(e)},i.prototype.eq=function(e){return 0===this.cmp(e)},i.red=function(e){return new _(e)},i.prototype.toRed=function(e){return n(!this.red,"Already a number in reduction context"),n(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},i.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},i.prototype._forceRed=function(e){return this.red=e,this},i.prototype.forceRed=function(e){return n(!this.red,"Already a number in reduction context"),this._forceRed(e)},i.prototype.redAdd=function(e){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},i.prototype.redIAdd=function(e){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},i.prototype.redSub=function(e){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},i.prototype.redISub=function(e){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},i.prototype.redShl=function(e){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},i.prototype.redMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},i.prototype.redIMul=function(e){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},i.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},i.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},i.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},i.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},i.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},i.prototype.redPow=function(e){return n(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new i(t,16),this.n=this.p.bitLength(),this.k=new i(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function T(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function w(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function A(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function E(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function _(e){if("string"==typeof e){var t=i._prime(e);this.m=t.p,this.prime=t}else n(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function I(e){_.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new i(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new i(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):void 0!==n.strip?n.strip():n._strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},r(T,v),T.prototype.split=function(e,t){for(var n=4194303,r=Math.min(e.length,9),i=0;i<r;i++)t.words[i]=e.words[i];if(t.length=r,e.length<=9)return e.words[0]=0,void(e.length=1);var a=e.words[9];for(t.words[t.length++]=a&n,i=10;i<e.length;i++){var o=0|e.words[i];e.words[i-10]=(o&n)<<4|a>>>22,a=o}a>>>=22,e.words[i-10]=a,0===a&&e.length>10?e.length-=10:e.length-=9},T.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},r(w,v),r(A,v),r(E,v),E.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},i._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new T;else if("p224"===e)t=new w;else if("p192"===e)t=new A;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new E}return b[e]=t,t},_.prototype._verify1=function(e){n(0===e.negative,"red works only with positives"),n(e.red,"red works only with red numbers")},_.prototype._verify2=function(e,t){n(0==(e.negative|t.negative),"red works only with positives"),n(e.red&&e.red===t.red,"red works only with red numbers")},_.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):(c(e,e.umod(this.m)._forceRed(this)),e)},_.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},_.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},_.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},_.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},_.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},_.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},_.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},_.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},_.prototype.isqr=function(e){return this.imul(e,e.clone())},_.prototype.sqr=function(e){return this.mul(e,e)},_.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(n(t%2==1),3===t){var r=this.m.add(new i(1)).iushrn(2);return this.pow(e,r)}for(var a=this.m.subn(1),o=0;!a.isZero()&&0===a.andln(1);)o++,a.iushrn(1);n(!a.isZero());var s=new i(1).toRed(this),u=s.redNeg(),c=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new i(2*l*l).toRed(this);0!==this.pow(l,c).cmp(u);)l.redIAdd(u);for(var d=this.pow(l,a),f=this.pow(e,a.addn(1).iushrn(1)),p=this.pow(e,a),h=o;0!==p.cmp(s);){for(var m=p,y=0;0!==m.cmp(s);y++)m=m.redSqr();n(y<h);var g=this.pow(d,new i(1).iushln(h-y-1));f=f.redMul(g),d=g.redSqr(),p=p.redMul(d),h=y}return f},_.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},_.prototype.pow=function(e,t){if(t.isZero())return new i(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new i(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var a=n[0],o=0,s=0,u=t.bitLength()%26;for(0===u&&(u=26),r=t.length-1;r>=0;r--){for(var c=t.words[r],l=u-1;l>=0;l--){var d=c>>l&1;a!==n[0]&&(a=this.sqr(a)),0!==d||0!==o?(o<<=1,o|=d,(4===++s||0===r&&0===l)&&(a=this.mul(a,n[o]),s=0,o=0)):s=0}u=26}return a},_.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},_.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},i.mont=function(e){return new I(e)},r(I,_),I.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},I.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},I.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},I.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new i(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),a=n.isub(r).iushrn(this.shift),o=a;return a.cmp(this.m)>=0?o=a.isub(this.m):a.cmpn(0)<0&&(o=a.iadd(this.m)),o._forceRed(this)},I.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(e,Mg)}(Fg);var Ug=Bg(Fg.exports);let qg=!1,jg=!1;const Gg={debug:1,default:2,info:2,warning:3,error:4,off:5};let Hg=Gg.default,zg=null;const Wg=function(){try{const e=[];if(["NFD","NFC","NFKD","NFKC"].forEach((t=>{try{if("test"!=="test".normalize(t))throw new Error("bad normalize")}catch(n){e.push(t)}})),e.length)throw new Error("missing "+e.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(e){return e.message}return null}();var Vg,Kg;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(Vg||(Vg={})),function(e){e.UNKNOWN_ERROR="UNKNOWN_ERROR",e.NOT_IMPLEMENTED="NOT_IMPLEMENTED",e.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",e.NETWORK_ERROR="NETWORK_ERROR",e.SERVER_ERROR="SERVER_ERROR",e.TIMEOUT="TIMEOUT",e.BUFFER_OVERRUN="BUFFER_OVERRUN",e.NUMERIC_FAULT="NUMERIC_FAULT",e.MISSING_NEW="MISSING_NEW",e.INVALID_ARGUMENT="INVALID_ARGUMENT",e.MISSING_ARGUMENT="MISSING_ARGUMENT",e.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",e.CALL_EXCEPTION="CALL_EXCEPTION",e.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",e.NONCE_EXPIRED="NONCE_EXPIRED",e.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",e.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",e.TRANSACTION_REPLACED="TRANSACTION_REPLACED",e.ACTION_REJECTED="ACTION_REJECTED"}(Kg||(Kg={}));const Xg="0123456789abcdef";let Jg=class e{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==Gg[n]&&this.throwArgumentError("invalid log level name","logLevel",e),Hg>Gg[n]||console.log.apply(console,t)}debug(...t){this._log(e.levels.DEBUG,t)}info(...t){this._log(e.levels.INFO,t)}warn(...t){this._log(e.levels.WARNING,t)}makeError(t,n,r){if(jg)return this.makeError("censored error",n,{});n||(n=e.errors.UNKNOWN_ERROR),r||(r={});const i=[];Object.keys(r).forEach((e=>{const t=r[e];try{if(t instanceof Uint8Array){let n="";for(let e=0;e<t.length;e++)n+=Xg[t[e]>>4],n+=Xg[15&t[e]];i.push(e+"=Uint8Array(0x"+n+")")}else i.push(e+"="+JSON.stringify(t))}catch(t){i.push(e+"="+JSON.stringify(r[e].toString()))}})),i.push(`code=${n}`),i.push(`version=${this.version}`);const a=t;let o="";switch(n){case Kg.NUMERIC_FAULT:{o="NUMERIC_FAULT";const e=t;switch(e){case"overflow":case"underflow":case"division-by-zero":o+="-"+e;break;case"negative-power":case"negative-width":o+="-unsupported";break;case"unbound-bitwise-result":o+="-unbound-result"}break}case Kg.CALL_EXCEPTION:case Kg.INSUFFICIENT_FUNDS:case Kg.MISSING_NEW:case Kg.NONCE_EXPIRED:case Kg.REPLACEMENT_UNDERPRICED:case Kg.TRANSACTION_REPLACED:case Kg.UNPREDICTABLE_GAS_LIMIT:o=n}o&&(t+=" [ See: https://links.ethers.org/v5-errors-"+o+" ]"),i.length&&(t+=" ("+i.join(", ")+")");const s=new Error(t);return s.reason=a,s.code=n,Object.keys(r).forEach((function(e){s[e]=r[e]})),s}throwError(e,t,n){throw this.makeError(e,t,n)}throwArgumentError(t,n,r){return this.throwError(t,e.errors.INVALID_ARGUMENT,{argument:n,value:r})}assert(e,t,n,r){e||this.throwError(t,n,r)}assertArgument(e,t,n,r){e||this.throwArgumentError(t,n,r)}checkNormalize(t){Wg&&this.throwError("platform missing String.prototype.normalize",e.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Wg})}checkSafeUint53(t,n){"number"==typeof t&&(null==n&&(n="value not safe"),(t<0||t>=9007199254740991)&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:t}),t%1&&this.throwError(n,e.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:t}))}checkArgumentCount(t,n,r){r=r?": "+r:"",t<n&&this.throwError("missing argument"+r,e.errors.MISSING_ARGUMENT,{count:t,expectedCount:n}),t>n&&this.throwError("too many arguments"+r,e.errors.UNEXPECTED_ARGUMENT,{count:t,expectedCount:n})}checkNew(t,n){t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}checkAbstract(t,n){t===n?this.throwError("cannot instantiate abstract class "+JSON.stringify(n.name)+" directly; use a sub-class",e.errors.UNSUPPORTED_OPERATION,{name:t.name,operation:"new"}):t!==Object&&null!=t||this.throwError("missing new",e.errors.MISSING_NEW,{name:n.name})}static globalLogger(){return zg||(zg=new e("logger/5.7.0")),zg}static setCensorship(t,n){if(!t&&n&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),qg){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}jg=!!t,qg=!!n}static setLogLevel(t){const n=Gg[t.toLowerCase()];null!=n?Hg=n:e.globalLogger().warn("invalid log level - "+t)}static from(t){return new e(t)}};Jg.errors=Kg,Jg.levels=Vg;const Yg=new Jg("bytes/5.7.0");function Qg(e){return!!e.toHexString}function $g(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return $g(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function Zg(e){return"number"==typeof e&&e==e&&e%1==0}function eb(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!Zg(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!Zg(n)||n<0||n>=256)return!1}return!0}function tb(e,t){if(t||(t={}),"number"==typeof e){Yg.checkSafeUint53(e,"invalid arrayify value");const t=[];for(;e;)t.unshift(255&e),e=parseInt(String(e/256));return 0===t.length&&t.push(0),$g(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Qg(e)&&(e=e.toHexString()),rb(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":Yg.throwArgumentError("hex data is odd-length","value",e));const r=[];for(let e=0;e<n.length;e+=2)r.push(parseInt(n.substring(e,e+2),16));return $g(new Uint8Array(r))}return eb(e)?$g(new Uint8Array(e)):Yg.throwArgumentError("invalid arrayify value","value",e)}function nb(e){const t=e.map((e=>tb(e))),n=t.reduce(((e,t)=>e+t.length),0),r=new Uint8Array(n);return t.reduce(((e,t)=>(r.set(t,e),e+t.length)),0),$g(r)}function rb(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}const ib="0123456789abcdef";function ab(e,t){if(t||(t={}),"number"==typeof e){Yg.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=ib[15&e]+t,e=Math.floor(e/16);return t.length?(t.length%2&&(t="0"+t),"0x"+t):"0x00"}if("bigint"==typeof e)return(e=e.toString(16)).length%2?"0x0"+e:"0x"+e;if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),Qg(e))return e.toHexString();if(rb(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Yg.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(eb(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=ib[(240&r)>>4]+ib[15&r]}return t}return Yg.throwArgumentError("invalid hexlify value","value",e)}function ob(e,t,n){return"string"!=typeof e?e=ab(e):(!rb(e)||e.length%2)&&Yg.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function sb(e,t){for("string"!=typeof e?e=ab(e):rb(e)||Yg.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Yg.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}var ub=Ug.BN;const cb=new Jg("bignumber/5.7.0"),lb={},db=9007199254740991;let fb=!1;class pb{constructor(e,t){e!==lb&&cb.throwError("cannot call constructor directly; use BigNumber.from",Jg.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return mb(yb(this).fromTwos(e))}toTwos(e){return mb(yb(this).toTwos(e))}abs(){return"-"===this._hex[0]?pb.from(this._hex.substring(1)):this}add(e){return mb(yb(this).add(yb(e)))}sub(e){return mb(yb(this).sub(yb(e)))}div(e){return pb.from(e).isZero()&&gb("division-by-zero","div"),mb(yb(this).div(yb(e)))}mul(e){return mb(yb(this).mul(yb(e)))}mod(e){const t=yb(e);return t.isNeg()&&gb("division-by-zero","mod"),mb(yb(this).umod(t))}pow(e){const t=yb(e);return t.isNeg()&&gb("negative-power","pow"),mb(yb(this).pow(t))}and(e){const t=yb(e);return(this.isNegative()||t.isNeg())&&gb("unbound-bitwise-result","and"),mb(yb(this).and(t))}or(e){const t=yb(e);return(this.isNegative()||t.isNeg())&&gb("unbound-bitwise-result","or"),mb(yb(this).or(t))}xor(e){const t=yb(e);return(this.isNegative()||t.isNeg())&&gb("unbound-bitwise-result","xor"),mb(yb(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&gb("negative-width","mask"),mb(yb(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&gb("negative-width","shl"),mb(yb(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&gb("negative-width","shr"),mb(yb(this).shrn(e))}eq(e){return yb(this).eq(yb(e))}lt(e){return yb(this).lt(yb(e))}lte(e){return yb(this).lte(yb(e))}gt(e){return yb(this).gt(yb(e))}gte(e){return yb(this).gte(yb(e))}isNegative(){return"-"===this._hex[0]}isZero(){return yb(this).isZero()}toNumber(){try{return yb(this).toNumber()}catch(e){gb("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return cb.throwError("this platform does not support BigInt",Jg.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?fb||(fb=!0,cb.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?cb.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",Jg.errors.UNEXPECTED_ARGUMENT,{}):cb.throwError("BigNumber.toString does not accept parameters",Jg.errors.UNEXPECTED_ARGUMENT,{})),yb(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof pb)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new pb(lb,hb(e)):e.match(/^-?[0-9]+$/)?new pb(lb,hb(new ub(e))):cb.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&gb("underflow","BigNumber.from",e),(e>=db||e<=-db)&&gb("overflow","BigNumber.from",e),pb.from(String(e));const t=e;if("bigint"==typeof t)return pb.from(t.toString());if(eb(t))return pb.from(ab(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return pb.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(rb(e)||"-"===e[0]&&rb(e.substring(1))))return pb.from(e)}return cb.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function hb(e){if("string"!=typeof e)return hb(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&cb.throwArgumentError("invalid hex","value",e),"0x00"===(e=hb(e))?e:"-"+e;if("0x"!==e.substring(0,2)&&(e="0x"+e),"0x"===e)return"0x00";for(e.length%2&&(e="0x0"+e.substring(2));e.length>4&&"0x00"===e.substring(0,4);)e="0x"+e.substring(4);return e}function mb(e){return pb.from(hb(e))}function yb(e){const t=pb.from(e).toHexString();return"-"===t[0]?new ub("-"+t.substring(3),16):new ub(t.substring(2),16)}function gb(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),cb.throwError(e,Jg.errors.NUMERIC_FAULT,r)}var bb=function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};const vb=new Jg("properties/5.7.0");function Tb(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function wb(e,t){for(let n=0;n<32;n++){if(e[t])return e[t];if(!e.prototype||"object"!=typeof e.prototype)break;e=Object.getPrototypeOf(e.prototype).constructor}return null}function Ab(e){return bb(this,void 0,void 0,(function*(){const t=Object.keys(e).map((t=>{const n=e[t];return Promise.resolve(n).then((e=>({key:t,value:e})))}));return(yield Promise.all(t)).reduce(((e,t)=>(e[t.key]=t.value,e)),{})}))}function Eb(e){const t={};for(const n in e)t[n]=e[n];return t}const _b={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Ib(e){if(null==e||_b[typeof e])return!0;if(Array.isArray(e)||"object"==typeof e){if(!Object.isFrozen(e))return!1;const t=Object.keys(e);for(let n=0;n<t.length;n++){let r=null;try{r=e[t[n]]}catch(e){continue}if(!Ib(r))return!1}return!0}return vb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Rb(e){if(Ib(e))return e;if(Array.isArray(e))return Object.freeze(e.map((e=>Cb(e))));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&Tb(t,n,Cb(r))}return t}return vb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Cb(e){return Rb(e)}class Ob{constructor(e){for(const t in e)this[t]=Cb(e[t])}}const kb="abi/5.7.0",Sb=new Jg(kb),Nb={};let xb={calldata:!0,memory:!0,storage:!0},Pb={calldata:!0,memory:!0};function Mb(e,t){if("bytes"===e||"string"===e){if(xb[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Pb[t])return!0;return(xb[t]||"payable"===t)&&Sb.throwArgumentError("invalid modifier","name",t),!1}function Bb(e,t){for(let n in t)Tb(e,n,t[n])}const Db=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),Fb=new RegExp(/^(.*)\[([0-9]*)\]$/);class Lb{constructor(e,t){e!==Nb&&Sb.throwError("use fromString",Jg.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),Bb(this,t);let n=this.type.match(Fb);Bb(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:Lb.fromObject({type:n[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(e){if(e||(e=Db.sighash),Db[e]||Sb.throwArgumentError("invalid format type","format",e),e===Db.json){let t={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(t.indexed=this.indexed),this.components&&(t.components=this.components.map((t=>JSON.parse(t.format(e))))),JSON.stringify(t)}let t="";return"array"===this.baseType?(t+=this.arrayChildren.format(e),t+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(e!==Db.sighash&&(t+=this.type),t+="("+this.components.map((t=>t.format(e))).join(e===Db.full?", ":",")+")"):t+=this.type,e!==Db.sighash&&(!0===this.indexed&&(t+=" indexed"),e===Db.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?Lb.fromString(e,t):Lb.fromObject(e)}static fromObject(e){return Lb.isParamType(e)?e:new Lb(Nb,{name:e.name||null,type:Jb(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(Lb.fromObject):null})}static fromString(e,t){return n=function(e,t){let n=e;function r(t){Sb.throwArgumentError(`unexpected character at position ${t}`,"param",e)}function i(e){let n={type:"",name:"",parent:e,state:{allowType:!0}};return t&&(n.indexed=!1),n}e=e.replace(/\s/g," ");let a={type:"",name:"",state:{allowType:!0}},o=a;for(let n=0;n<e.length;n++){let a=e[n];switch(a){case"(":o.state.allowType&&""===o.type?o.type="tuple":o.state.allowParams||r(n),o.state.allowType=!1,o.type=Jb(o.type),o.components=[i(o)],o=o.components[0];break;case")":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),Mb(o.type,o.name)&&(o.name=""),o.type=Jb(o.type);let e=o;o=o.parent,o||r(n),delete e.parent,o.state.allowParams=!1,o.state.allowName=!0,o.state.allowArray=!0;break;case",":delete o.state,"indexed"===o.name&&(t||r(n),o.indexed=!0,o.name=""),Mb(o.type,o.name)&&(o.name=""),o.type=Jb(o.type);let s=i(o.parent);o.parent.components.push(s),delete o.parent,o=s;break;case" ":o.state.allowType&&""!==o.type&&(o.type=Jb(o.type),delete o.state.allowType,o.state.allowName=!0,o.state.allowParams=!0),o.state.allowName&&""!==o.name&&("indexed"===o.name?(t||r(n),o.indexed&&r(n),o.indexed=!0,o.name=""):Mb(o.type,o.name)?o.name="":o.state.allowName=!1);break;case"[":o.state.allowArray||r(n),o.type+=a,o.state.allowArray=!1,o.state.allowName=!1,o.state.readArray=!0;break;case"]":o.state.readArray||r(n),o.type+=a,o.state.readArray=!1,o.state.allowArray=!0,o.state.allowName=!0;break;default:o.state.allowType?(o.type+=a,o.state.allowParams=!0,o.state.allowArray=!0):o.state.allowName?(o.name+=a,delete o.state.allowArray):o.state.readArray?o.type+=a:r(n)}}return o.parent&&Sb.throwArgumentError("unexpected eof","param",e),delete a.state,"indexed"===o.name?(t||r(n.length-7),o.indexed&&r(n.length-7),o.indexed=!0,o.name=""):Mb(o.type,o.name)&&(o.name=""),a.type=Jb(a.type),a}(e,!!t),Lb.fromObject({name:n.name,type:n.type,indexed:n.indexed,components:n.components});var n}static isParamType(e){return!(null==e||!e._isParamType)}}function Ub(e,t){return function(e){e=e.trim();let t=[],n="",r=0;for(let i=0;i<e.length;i++){let a=e[i];","===a&&0===r?(t.push(n),n=""):(n+=a,"("===a?r++:")"===a&&(r--,-1===r&&Sb.throwArgumentError("unbalanced parenthesis","value",e)))}n&&t.push(n);return t}(e).map((e=>Lb.fromString(e,t)))}class qb{constructor(e,t){e!==Nb&&Sb.throwError("use a static from method",Jg.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),Bb(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return qb.isFragment(e)?e:"string"==typeof e?qb.fromString(e):qb.fromObject(e)}static fromObject(e){if(qb.isFragment(e))return e;switch(e.type){case"function":return Vb.fromObject(e);case"event":return jb.fromObject(e);case"constructor":return Wb.fromObject(e);case"error":return Xb.fromObject(e);case"fallback":case"receive":return null}return Sb.throwArgumentError("invalid fragment object","value",e)}static fromString(e){return"event"===(e=(e=(e=e.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?jb.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?Vb.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?Wb.fromString(e.trim()):"error"===e.split(" ")[0]?Xb.fromString(e.substring(5).trim()):Sb.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class jb extends qb{format(e){if(e||(e=Db.sighash),Db[e]||Sb.throwArgumentError("invalid format type","format",e),e===Db.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==Db.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Db.full?", ":",")+") ",e!==Db.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?jb.fromString(e):jb.fromObject(e)}static fromObject(e){if(jb.isEventFragment(e))return e;"event"!==e.type&&Sb.throwArgumentError("invalid event object","value",e);const t={name:Qb(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(Lb.fromObject):[],type:"event"};return new jb(Nb,t)}static fromString(e){let t=e.match($b);t||Sb.throwArgumentError("invalid event string","value",e);let n=!1;return t[3].split(" ").forEach((e=>{switch(e.trim()){case"anonymous":n=!0;break;case"":break;default:Sb.warn("unknown modifier: "+e)}})),jb.fromObject({name:t[1].trim(),anonymous:n,inputs:Ub(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function Gb(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&Sb.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||Sb.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=pb.from(n[1]),n[0]):e}function Hb(e,t){t.constant=!1,t.payable=!1,t.stateMutability="nonpayable",e.split(" ").forEach((e=>{switch(e.trim()){case"constant":t.constant=!0;break;case"payable":t.payable=!0,t.stateMutability="payable";break;case"nonpayable":t.payable=!1,t.stateMutability="nonpayable";break;case"pure":t.constant=!0,t.stateMutability="pure";break;case"view":t.constant=!0,t.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+e)}}))}function zb(e){let t={constant:!1,payable:!0,stateMutability:"payable"};return null!=e.stateMutability?(t.stateMutability=e.stateMutability,t.constant="view"===t.stateMutability||"pure"===t.stateMutability,null!=e.constant&&!!e.constant!==t.constant&&Sb.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Sb.throwArgumentError("cannot have payable function with mutability "+t.stateMutability,"value",e)):null!=e.payable?(t.payable=!!e.payable,null!=e.constant||t.payable||"constructor"===e.type||Sb.throwArgumentError("unable to determine stateMutability","value",e),t.constant=!!e.constant,t.constant?t.stateMutability="view":t.stateMutability=t.payable?"payable":"nonpayable",t.payable&&t.constant&&Sb.throwArgumentError("cannot have constant payable function","value",e)):null!=e.constant?(t.constant=!!e.constant,t.payable=!t.constant,t.stateMutability=t.constant?"view":"payable"):"constructor"!==e.type&&Sb.throwArgumentError("unable to determine stateMutability","value",e),t}class Wb extends qb{format(e){if(e||(e=Db.sighash),Db[e]||Sb.throwArgumentError("invalid format type","format",e),e===Db.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});e===Db.sighash&&Sb.throwError("cannot format a constructor for sighash",Jg.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map((t=>t.format(e))).join(e===Db.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?Wb.fromString(e):Wb.fromObject(e)}static fromObject(e){if(Wb.isConstructorFragment(e))return e;"constructor"!==e.type&&Sb.throwArgumentError("invalid constructor object","value",e);let t=zb(e);t.constant&&Sb.throwArgumentError("constructor cannot be constant","value",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(Lb.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?pb.from(e.gas):null};return new Wb(Nb,n)}static fromString(e){let t={type:"constructor"},n=(e=Gb(e,t)).match($b);return n&&"constructor"===n[1].trim()||Sb.throwArgumentError("invalid constructor string","value",e),t.inputs=Ub(n[2].trim(),!1),Hb(n[3].trim(),t),Wb.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class Vb extends Wb{format(e){if(e||(e=Db.sighash),Db[e]||Sb.throwArgumentError("invalid format type","format",e),e===Db.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((t=>JSON.parse(t.format(e)))),outputs:this.outputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==Db.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Db.full?", ":",")+") ",e!==Db.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "):this.constant&&(t+="view "),this.outputs&&this.outputs.length&&(t+="returns ("+this.outputs.map((t=>t.format(e))).join(", ")+") "),null!=this.gas&&(t+="@"+this.gas.toString()+" ")),t.trim()}static from(e){return"string"==typeof e?Vb.fromString(e):Vb.fromObject(e)}static fromObject(e){if(Vb.isFunctionFragment(e))return e;"function"!==e.type&&Sb.throwArgumentError("invalid function object","value",e);let t=zb(e);const n={type:e.type,name:Qb(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(Lb.fromObject):[],outputs:e.outputs?e.outputs.map(Lb.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?pb.from(e.gas):null};return new Vb(Nb,n)}static fromString(e){let t={type:"function"},n=(e=Gb(e,t)).split(" returns ");n.length>2&&Sb.throwArgumentError("invalid function string","value",e);let r=n[0].match($b);if(r||Sb.throwArgumentError("invalid function signature","value",e),t.name=r[1].trim(),t.name&&Qb(t.name),t.inputs=Ub(r[2],!1),Hb(r[3].trim(),t),n.length>1){let r=n[1].match($b);""==r[1].trim()&&""==r[3].trim()||Sb.throwArgumentError("unexpected tokens","value",e),t.outputs=Ub(r[2],!1)}else t.outputs=[];return Vb.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function Kb(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Sb.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class Xb extends qb{format(e){if(e||(e=Db.sighash),Db[e]||Sb.throwArgumentError("invalid format type","format",e),e===Db.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==Db.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Db.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?Xb.fromString(e):Xb.fromObject(e)}static fromObject(e){if(Xb.isErrorFragment(e))return e;"error"!==e.type&&Sb.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:Qb(e.name),inputs:e.inputs?e.inputs.map(Lb.fromObject):[]};return Kb(new Xb(Nb,t))}static fromString(e){let t={type:"error"},n=e.match($b);return n||Sb.throwArgumentError("invalid error signature","value",e),t.name=n[1].trim(),t.name&&Qb(t.name),t.inputs=Ub(n[2],!1),Kb(Xb.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function Jb(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const Yb=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function Qb(e){return e&&e.match(Yb)||Sb.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const $b=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");const Zb=new Jg(kb);class ev{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){Zb.throwArgumentError(e,this.localName,t)}}class tv{constructor(e){Tb(this,"wordSize",e||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(e)}get data(){return function(e){let t="0x";return e.forEach((e=>{t+=ab(e).substring(2)})),t}(this._data)}get length(){return this._dataLength}_writeData(e){return this._data.push(e),this._dataLength+=e.length,e.length}appendWriter(e){return this._writeData(nb(e._data))}writeBytes(e){let t=tb(e);const n=t.length%this.wordSize;return n&&(t=nb([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=tb(pb.from(e));return t.length>this.wordSize&&Zb.throwError("value out-of-bounds",Jg.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=nb([this._padding.slice(t.length%this.wordSize),t])),t}writeValue(e){return this._writeData(this._getValue(e))}writeUpdatableValue(){const e=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,t=>{this._data[e]=this._getValue(t)}}}class nv{constructor(e,t,n,r){Tb(this,"_data",tb(e)),Tb(this,"wordSize",t||32),Tb(this,"_coerceFunc",n),Tb(this,"allowLoose",r),this._offset=0}get data(){return ab(this._data)}get consumed(){return this._offset}static coerce(e,t){let n=e.match("^u?int([0-9]+)$");return n&&parseInt(n[1])<=48&&(t=t.toNumber()),t}coerce(e,t){return this._coerceFunc?this._coerceFunc(e,t):nv.coerce(e,t)}_peekBytes(e,t,n){let r=Math.ceil(t/this.wordSize)*this.wordSize;return this._offset+r>this._data.length&&(this.allowLoose&&n&&this._offset+t<=this._data.length?r=t:Zb.throwError("data out-of-bounds",Jg.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(e){return new nv(this._data.slice(this._offset+e),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(e,t){let n=this._peekBytes(0,e,!!t);return this._offset+=n.length,n.slice(0,e)}readValue(){return pb.from(this.readBytes(this.wordSize))}}var rv={exports:{}};
10
10
  /**
11
11
  * [js-sha3]{@link https://github.com/emn178/js-sha3}
12
12
  *
@@ -32,4 +32,4 @@ n.mode.CTRGladman=function(){var e=n.lib.BlockCipherMode.extend();function t(e){
32
32
 
33
33
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
34
  */
35
- function(e){var t=n,r=t.lib,i=r.WordArray,a=r.Hasher,o=t.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),u=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),l=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),d=i.create([0,1518500249,1859775393,2400959708,2840853838]),f=i.create([1352829926,1548603684,1836072691,2053994217,0]),p=o.RIPEMD160=a.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=t+n,i=e[r];e[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var a,o,p,T,w,A,E,_,I,R,C,O=this._hash.words,k=d.words,S=f.words,N=s.words,x=u.words,P=c.words,M=l.words;for(A=a=O[0],E=o=O[1],_=p=O[2],I=T=O[3],R=w=O[4],n=0;n<80;n+=1)C=a+e[t+N[n]]|0,C+=n<16?h(o,p,T)+k[0]:n<32?m(o,p,T)+k[1]:n<48?y(o,p,T)+k[2]:n<64?g(o,p,T)+k[3]:b(o,p,T)+k[4],C=(C=v(C|=0,P[n]))+w|0,a=w,w=T,T=v(p,10),p=o,o=C,C=A+e[t+x[n]]|0,C+=n<16?b(E,_,I)+S[0]:n<32?g(E,_,I)+S[1]:n<48?y(E,_,I)+S[2]:n<64?m(E,_,I)+S[3]:h(E,_,I)+S[4],C=(C=v(C|=0,M[n]))+R|0,A=R,R=I,I=v(_,10),_=E,E=C;C=O[1]+p+I|0,O[1]=O[2]+T+R|0,O[2]=O[3]+w+A|0,O[3]=O[4]+a+E|0,O[4]=O[0]+o+_|0,O[0]=C},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,a=i.words,o=0;o<5;o++){var s=a[o];a[o]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});function h(e,t,n){return e^t^n}function m(e,t,n){return e&t|~e&n}function y(e,t,n){return(e|~t)^n}function g(e,t,n){return e&n|t&~n}function b(e,t,n){return e^(t|~n)}function v(e,t){return e<<t|e>>>32-t}t.RIPEMD160=a._createHelper(p),t.HmacRIPEMD160=a._createHmacHelper(p)}(),n.RIPEMD160)}(dN)),hN(),mN||(mN=1,function(e,t){var n;e.exports=(n=CS(),hN(),function(){var e=n,t=e.lib,r=t.Base,i=t.WordArray,a=e.algo,o=a.SHA256,s=a.HMAC,u=a.PBKDF2=r.extend({cfg:r.extend({keySize:4,hasher:o,iterations:25e4}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,r=s.create(n.hasher,e),a=i.create(),o=i.create([1]),u=a.words,c=o.words,l=n.keySize,d=n.iterations;u.length<l;){var f=r.update(t).finalize(o);r.reset();for(var p=f.words,h=p.length,m=f,y=1;y<d;y++){m=r.finalize(m),r.reset();for(var g=m.words,b=0;b<h;b++)p[b]^=g[b]}a.concat(f),c[0]++}return a.sigBytes=4*l,a}});e.PBKDF2=function(e,t,n){return u.create(n).compute(e,t)}}(),n.PBKDF2)}(yN)),vN(),AN(),IN(),ON(),NN(),MN(),BN||(BN=1,function(e,t){var n,r;e.exports=(r=CS(),AN(),r.mode.ECB=((n=r.lib.BlockCipherMode.extend()).Encryptor=n.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),n.Decryptor=n.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),n),r.mode.ECB)}(DN)),FN||(FN=1,function(e,t){var n;e.exports=(n=CS(),AN(),n.pad.AnsiX923={pad:function(e,t){var n=e.sigBytes,r=4*t,i=r-n%r,a=n+i-1;e.clamp(),e.words[a>>>2]|=i<<24-a%4*8,e.sigBytes+=i},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Ansix923)}(LN)),UN||(UN=1,function(e,t){var n;e.exports=(n=CS(),AN(),n.pad.Iso10126={pad:function(e,t){var r=4*t,i=r-e.sigBytes%r;e.concat(n.lib.WordArray.random(i-1)).concat(n.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Iso10126)}(qN)),jN||(jN=1,function(e,t){var n;e.exports=(n=CS(),AN(),n.pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971)}(GN)),HN||(HN=1,function(e,t){var n;e.exports=(n=CS(),AN(),n.pad.ZeroPadding={pad:function(e,t){var n=4*t;e.clamp(),e.sigBytes+=n-(e.sigBytes%n||n)},unpad:function(e){var t=e.words,n=e.sigBytes-1;for(n=e.sigBytes-1;n>=0;n--)if(t[n>>>2]>>>24-n%4*8&255){e.sigBytes=n+1;break}}},n.pad.ZeroPadding)}(zN)),WN||(WN=1,function(e,t){var n;e.exports=(n=CS(),AN(),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)}(VN)),KN||(KN=1,function(e,t){var n,r,i,a;e.exports=(a=CS(),AN(),r=(n=a).lib.CipherParams,i=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(i)},parse:function(e){var t=i.parse(e);return r.create({ciphertext:t})}},a.format.Hex)}(XN)),JN||(JN=1,function(e,t){var n;e.exports=(n=CS(),zS(),YS(),vN(),AN(),function(){var e=n,t=e.lib.BlockCipher,r=e.algo,i=[],a=[],o=[],s=[],u=[],c=[],l=[],d=[],f=[],p=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var n=0,r=0;for(t=0;t<256;t++){var h=r^r<<1^r<<2^r<<3^r<<4;h=h>>>8^255&h^99,i[n]=h,a[h]=n;var m=e[n],y=e[m],g=e[y],b=257*e[h]^16843008*h;o[n]=b<<24|b>>>8,s[n]=b<<16|b>>>16,u[n]=b<<8|b>>>24,c[n]=b,b=16843009*g^65537*y^257*m^16843008*n,l[h]=b<<24|b>>>8,d[h]=b<<16|b>>>16,f[h]=b<<8|b>>>24,p[h]=b,n?(n=m^e[e[e[g^m]]],r^=e[e[r]]):n=r=1}}();var h=[0,1,2,4,8,16,32,64,128,27,54],m=r.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,n=e.sigBytes/4,r=4*((this._nRounds=n+6)+1),a=this._keySchedule=[],o=0;o<r;o++)o<n?a[o]=t[o]:(c=a[o-1],o%n?n>6&&o%n==4&&(c=i[c>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c]):(c=i[(c=c<<8|c>>>24)>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c],c^=h[o/n|0]<<24),a[o]=a[o-n]^c);for(var s=this._invKeySchedule=[],u=0;u<r;u++){if(o=r-u,u%4)var c=a[o];else c=a[o-4];s[u]=u<4||o<=4?c:l[i[c>>>24]]^d[i[c>>>16&255]]^f[i[c>>>8&255]]^p[i[255&c]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,s,u,c,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,l,d,f,p,a),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,a,o,s){for(var u=this._nRounds,c=e[t]^n[0],l=e[t+1]^n[1],d=e[t+2]^n[2],f=e[t+3]^n[3],p=4,h=1;h<u;h++){var m=r[c>>>24]^i[l>>>16&255]^a[d>>>8&255]^o[255&f]^n[p++],y=r[l>>>24]^i[d>>>16&255]^a[f>>>8&255]^o[255&c]^n[p++],g=r[d>>>24]^i[f>>>16&255]^a[c>>>8&255]^o[255&l]^n[p++],b=r[f>>>24]^i[c>>>16&255]^a[l>>>8&255]^o[255&d]^n[p++];c=m,l=y,d=g,f=b}m=(s[c>>>24]<<24|s[l>>>16&255]<<16|s[d>>>8&255]<<8|s[255&f])^n[p++],y=(s[l>>>24]<<24|s[d>>>16&255]<<16|s[f>>>8&255]<<8|s[255&c])^n[p++],g=(s[d>>>24]<<24|s[f>>>16&255]<<16|s[c>>>8&255]<<8|s[255&l])^n[p++],b=(s[f>>>24]<<24|s[c>>>16&255]<<16|s[l>>>8&255]<<8|s[255&d])^n[p++],e[t]=m,e[t+1]=y,e[t+2]=g,e[t+3]=b},keySize:8});e.AES=t._createHelper(m)}(),n.AES)}(YN)),ZN(),ex||(ex=1,function(e,t){var n;e.exports=(n=CS(),zS(),YS(),vN(),AN(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=r.RC4=t.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes,r=this._S=[],i=0;i<256;i++)r[i]=i;i=0;for(var a=0;i<256;i++){var o=i%n,s=t[o>>>2]>>>24-o%4*8&255;a=(a+r[i]+s)%256;var u=r[i];r[i]=r[a],r[a]=u}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=a.call(this)},keySize:8,ivSize:0});function a(){for(var e=this._S,t=this._i,n=this._j,r=0,i=0;i<4;i++){n=(n+e[t=(t+1)%256])%256;var a=e[t];e[t]=e[n],e[n]=a,r|=e[(e[t]+e[n])%256]<<24-8*i}return this._i=t,this._j=n,r}e.RC4=t._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)a.call(this)}});e.RC4Drop=t._createHelper(o)}(),n.RC4)}(tx)),nx||(nx=1,function(e,t){var n;e.exports=(n=CS(),zS(),YS(),vN(),AN(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],a=[],o=[],s=r.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,n=0;n<4;n++)e[n]=16711935&(e[n]<<8|e[n]>>>24)|4278255360&(e[n]<<24|e[n]>>>8);var r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,n=0;n<4;n++)u.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(t){var a=t.words,o=a[0],s=a[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=c>>>16|4294901760&l,f=l<<16|65535&c;for(i[0]^=c,i[1]^=d,i[2]^=l,i[3]^=f,i[4]^=c,i[5]^=d,i[6]^=l,i[7]^=f,n=0;n<4;n++)u.call(this)}},_doProcessBlock:function(e,t){var n=this._X;u.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function u(){for(var e=this._X,t=this._C,n=0;n<8;n++)a[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<a[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<a[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<a[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<a[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<a[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<a[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<a[6]>>>0?1:0)|0,this._b=t[7]>>>0<a[7]>>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,s=r>>>16,u=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=u^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.Rabbit=t._createHelper(s)}(),n.Rabbit)}(rx)),ix||(ix=1,function(e,t){var n;e.exports=(n=CS(),zS(),YS(),vN(),AN(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],a=[],o=[],s=r.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],r=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var i=0;i<4;i++)u.call(this);for(i=0;i<8;i++)r[i]^=n[i+4&7];if(t){var a=t.words,o=a[0],s=a[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=c>>>16|4294901760&l,f=l<<16|65535&c;for(r[0]^=c,r[1]^=d,r[2]^=l,r[3]^=f,r[4]^=c,r[5]^=d,r[6]^=l,r[7]^=f,i=0;i<4;i++)u.call(this)}},_doProcessBlock:function(e,t){var n=this._X;u.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function u(){for(var e=this._X,t=this._C,n=0;n<8;n++)a[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<a[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<a[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<a[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<a[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<a[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<a[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<a[6]>>>0?1:0)|0,this._b=t[7]>>>0<a[7]>>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,s=r>>>16,u=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=u^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.RabbitLegacy=t._createHelper(s)}(),n.RabbitLegacy)}(ax)),ux(),n)}(PS);var cx=PS.exports,lx=yt&&yt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xS,"__esModule",{value:!0}),xS.Base=void 0;const dx=wn,fx=lx(cx);class px{print(){px.print(this)}bufferIndexOf(e,t,n=!1){if(n)return this.binarySearch(e,t,dx.Buffer.compare);return this.linearSearch(e,t,((e,t)=>e.equals(t)))}static binarySearch(e,t,n){let r=0,i=e.length-1;for(;r<=i;){const a=Math.floor((r+i)/2),o=n(e[a],t);if(0===o){for(let r=a-1;r>=0;r--)if(0!==n(e[r],t))return r+1;return 0}o<0?r=a+1:i=a-1}return-1}binarySearch(e,t,n){return px.binarySearch(e,t,n)}static linearSearch(e,t,n){for(let r=0;r<e.length;r++)if(n(e[r],t))return r;return-1}linearSearch(e,t,n){return px.linearSearch(e,t,n)}static bufferify(e){if(!dx.Buffer.isBuffer(e)){if("object"==typeof e&&e.words)return dx.Buffer.from(e.toString(fx.default.enc.Hex),"hex");if(px.isHexString(e))return dx.Buffer.from(e.replace(/^0x/,""),"hex");if("string"==typeof e)return dx.Buffer.from(e);if("bigint"==typeof e)return dx.Buffer.from(e.toString(16),"hex");if(e instanceof Uint8Array)return dx.Buffer.from(e.buffer);if("number"==typeof e){let t=e.toString();return t.length%2&&(t=`0${t}`),dx.Buffer.from(t,"hex")}if(ArrayBuffer.isView(e))return dx.Buffer.from(e.buffer,e.byteOffset,e.byteLength)}return e}bigNumberify(e){return px.bigNumberify(e)}static bigNumberify(e){if("bigint"==typeof e)return e;if("string"==typeof e)return e.startsWith("0x")&&px.isHexString(e)?BigInt("0x"+e.replace("0x","").toString()):BigInt(e);if(dx.Buffer.isBuffer(e))return BigInt("0x"+e.toString("hex"));if(e instanceof Uint8Array)return BigInt(e);if("number"==typeof e)return BigInt(e);throw new Error("cannot bigNumberify")}static isHexString(e){return"string"==typeof e&&/^(0x)?[0-9A-Fa-f]*$/.test(e)}static print(e){console.log(e.toString())}bufferToHex(e,t=!0){return px.bufferToHex(e,t)}static bufferToHex(e,t=!0){return`${t?"0x":""}${(e||dx.Buffer.alloc(0)).toString("hex")}`}bufferify(e){return px.bufferify(e)}bufferifyFn(e){return t=>{const n=e(t);return dx.Buffer.isBuffer(n)?n:this.isHexString(n)?dx.Buffer.from(n.replace("0x",""),"hex"):"string"==typeof n?dx.Buffer.from(n):"bigint"==typeof n?dx.Buffer.from(t.toString(16),"hex"):ArrayBuffer.isView(n)?dx.Buffer.from(n.buffer,n.byteOffset,n.byteLength):dx.Buffer.from(e(fx.default.enc.Hex.parse(t.toString("hex"))).toString(fx.default.enc.Hex),"hex")}}isHexString(e){return px.isHexString(e)}log2(e){return 1===e?0:1+this.log2(e/2|0)}zip(e,t){return e.map(((e,n)=>[e,t[n]]))}static hexZeroPad(e,t){return"0x"+e.replace("0x","").padStart(t,"0")}}xS.Base=px,xS.default=px;var hx=yt&&yt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(AS,"__esModule",{value:!0}),AS.MerkleTree=void 0;const mx=wn,yx=hx((function(e){for(var t=new Buffer(e.length),n=0,r=e.length-1;n<=r;++n,--r)t[n]=e[r],t[r]=e[n];return t})),gx=hx(OS),bx=hx(NS),vx=hx(xS);let Tx=class e extends vx.default{constructor(e,t=gx.default,n={}){if(super(),this.duplicateOdd=!1,this.concatenator=mx.Buffer.concat,this.hashLeaves=!1,this.isBitcoinTree=!1,this.leaves=[],this.layers=[],this.sortLeaves=!1,this.sortPairs=!1,this.sort=!1,this.fillDefaultHash=null,this.complete=!1,n.complete){if(n.isBitcoinTree)throw new Error('option "complete" is incompatible with "isBitcoinTree"');if(n.duplicateOdd)throw new Error('option "complete" is incompatible with "duplicateOdd"')}if(this.isBitcoinTree=!!n.isBitcoinTree,this.hashLeaves=!!n.hashLeaves,this.sortLeaves=!!n.sortLeaves,this.sortPairs=!!n.sortPairs,this.complete=!!n.complete,n.fillDefaultHash)if("function"==typeof n.fillDefaultHash)this.fillDefaultHash=n.fillDefaultHash;else{if(!mx.Buffer.isBuffer(n.fillDefaultHash)&&"string"!=typeof n.fillDefaultHash)throw new Error('method "fillDefaultHash" must be a function, Buffer, or string');this.fillDefaultHash=(e,t)=>n.fillDefaultHash}this.sort=!!n.sort,this.sort&&(this.sortLeaves=!0,this.sortPairs=!0),this.duplicateOdd=!!n.duplicateOdd,n.concatenator&&(this.concatenator=n.concatenator),this.hashFn=this.bufferifyFn(t),this.processLeaves(e)}getOptions(){var e,t;return{complete:this.complete,isBitcoinTree:this.isBitcoinTree,hashLeaves:this.hashLeaves,sortLeaves:this.sortLeaves,sortPairs:this.sortPairs,sort:this.sort,fillDefaultHash:null!==(t=null===(e=this.fillDefaultHash)||void 0===e?void 0:e.toString())&&void 0!==t?t:null,duplicateOdd:this.duplicateOdd}}processLeaves(e){if(this.hashLeaves&&(e=e.map(this.hashFn)),this.leaves=e.map(this.bufferify),this.sortLeaves&&(this.leaves=this.leaves.sort(mx.Buffer.compare)),this.fillDefaultHash)for(let e=this.leaves.length;e<Math.pow(2,Math.ceil(Math.log2(this.leaves.length)));e++)this.leaves.push(this.bufferify(this.fillDefaultHash(e,this.hashFn)));this.createHashes(this.leaves)}createHashes(e){for(this.layers=[e];e.length>1;){const t=this.layers.length;this.layers.push([]);const n=this.complete&&1===t&&!Number.isInteger(Math.log2(e.length))?2*e.length-Math.pow(2,Math.ceil(Math.log2(e.length))):e.length;for(let r=0;r<e.length;r+=2){if(r>=n){this.layers[t].push(...e.slice(n));break}if(r+1===e.length&&e.length%2==1){const n=e[e.length-1];let i=n;if(this.isBitcoinTree){i=this.hashFn(this.concatenator([yx.default(n),yx.default(n)])),i=yx.default(this.hashFn(i)),this.layers[t].push(i);continue}if(!this.duplicateOdd){this.layers[t].push(e[r]);continue}}const i=e[r],a=r+1===e.length?i:e[r+1];let o=null;o=this.isBitcoinTree?[yx.default(i),yx.default(a)]:[i,a],this.sortPairs&&o.sort(mx.Buffer.compare);let s=this.hashFn(this.concatenator(o));this.isBitcoinTree&&(s=yx.default(this.hashFn(s))),this.layers[t].push(s)}e=this.layers[t]}}addLeaf(e,t=!1){t&&(e=this.hashFn(e)),this.processLeaves(this.leaves.concat(e))}addLeaves(e,t=!1){t&&(e=e.map(this.hashFn)),this.processLeaves(this.leaves.concat(e))}getLeaves(e){return Array.isArray(e)?(this.hashLeaves&&(e=e.map(this.hashFn),this.sortLeaves&&(e=e.sort(mx.Buffer.compare))),this.leaves.filter((t=>-1!==this.bufferIndexOf(e,t,this.sortLeaves)))):this.leaves}getLeaf(e){return e<0||e>this.leaves.length-1?mx.Buffer.from([]):this.leaves[e]}getLeafIndex(e){e=this.bufferify(e);const t=this.getLeaves();for(let n=0;n<t.length;n++){if(t[n].equals(e))return n}return-1}getLeafCount(){return this.leaves.length}getHexLeaves(){return this.leaves.map((e=>this.bufferToHex(e)))}static marshalLeaves(t){return JSON.stringify(t.map((t=>e.bufferToHex(t))),null,2)}static unmarshalLeaves(t){let n=null;if("string"==typeof t)n=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");n=t}if(!n)return[];if(!Array.isArray(n))throw new Error("Expected JSON string to be array");return n.map(e.bufferify)}getLayers(){return this.layers}getHexLayers(){return this.layers.reduce(((e,t)=>(Array.isArray(t)?e.push(t.map((e=>this.bufferToHex(e)))):e.push(t),e)),[])}getLayersFlat(){const e=this.layers.reduce(((e,t)=>(Array.isArray(t)?e.unshift(...t):e.unshift(t),e)),[]);return e.unshift(mx.Buffer.from([0])),e}getHexLayersFlat(){return this.getLayersFlat().map((e=>this.bufferToHex(e)))}getLayerCount(){return this.getLayers().length}getRoot(){return 0===this.layers.length?mx.Buffer.from([]):this.layers[this.layers.length-1][0]||mx.Buffer.from([])}getHexRoot(){return this.bufferToHex(this.getRoot())}getProof(e,t){if(void 0===e)throw new Error("leaf is required");e=this.bufferify(e);const n=[];if(!Number.isInteger(t)){t=-1;for(let n=0;n<this.leaves.length;n++)0===mx.Buffer.compare(e,this.leaves[n])&&(t=n)}if(t<=-1)return[];for(let e=0;e<this.layers.length;e++){const r=this.layers[e],i=t%2,a=i?t-1:this.isBitcoinTree&&t===r.length-1&&e<this.layers.length-1?t:t+1;a<r.length&&n.push({position:i?"left":"right",data:r[a]}),t=t/2|0}return n}getHexProof(e,t){return this.getProof(e,t).map((e=>this.bufferToHex(e.data)))}getProofs(){const e=[];return this.getProofsDFS(this.layers.length-1,0,[],e),e}getProofsDFS(e,t,n,r){const i=t%2;if(-1===e)return void(i||r.push([...n].reverse()));if(t>=this.layers[e].length)return;const a=this.layers[e],o=i?t-1:t+1;let s=!1;o<a.length&&(s=!0,n.push({position:i?"left":"right",data:a[o]}));const u=2*t,c=2*t+1;this.getProofsDFS(e-1,u,n,r),this.getProofsDFS(e-1,c,n,r),s&&n.splice(n.length-1,1)}getHexProofs(){return this.getProofs().map((e=>this.bufferToHex(e.data)))}getPositionalHexProof(e,t){return this.getProof(e,t).map((e=>["left"===e.position?0:1,this.bufferToHex(e.data)]))}static marshalProof(t){const n=t.map((t=>"string"==typeof t?t:mx.Buffer.isBuffer(t)?e.bufferToHex(t):{position:t.position,data:e.bufferToHex(t.data)}));return JSON.stringify(n,null,2)}static unmarshalProof(t){let n=null;if("string"==typeof t)n=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");n=t}if(!n)return[];if(!Array.isArray(n))throw new Error("Expected JSON string to be array");return n.map((t=>{if("string"==typeof t)return e.bufferify(t);if(t instanceof Object)return{position:t.position,data:e.bufferify(t.data)};throw new Error("Expected item to be of type string or object")}))}static marshalTree(t){const n=t.getHexRoot(),r=t.leaves.map((t=>e.bufferToHex(t))),i=t.getHexLayers(),a=t.getOptions();return JSON.stringify({options:a,root:n,layers:i,leaves:r},null,2)}static unmarshalTree(t,n=gx.default,r={}){let i=null;if("string"==typeof t)i=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");i=t}if(!i)throw new Error("could not parse json");return r=Object.assign({},i.options||{},r),new e(i.leaves,n,r)}getProofIndices(e,t){const n=Math.pow(2,t);let r=new Set;for(const t of e){let e=n+t;for(;e>1;)r.add(1^e),e=e/2|0}const i=e.map((e=>n+e)),a=Array.from(r).sort(((e,t)=>e-t)).reverse();r=i.concat(a);const o=new Set,s=[];for(let e of r)if(!o.has(e))for(s.push(e);e>1&&(o.add(e),o.has(1^e));)e=e/2|0;return s.filter((t=>!e.includes(t-n)))}getProofIndicesForUnevenTree(e,t){const n=Math.ceil(Math.log2(t)),r=[];for(let e=0;e<n;e++){t%2!=0&&r.push({index:e,leavesCount:t}),t=Math.ceil(t/2)}const i=[];let a=e;for(let e=0;e<n;e++){const t=a.map((e=>e%2==0?e+1:e-1));let n=t.filter((e=>!a.includes(e)));const o=r.find((({index:t})=>t===e));o&&a.includes(o.leavesCount-1)&&(n=n.slice(0,-1)),i.push(n),a=[...new Set(a.map((e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2)))]}return i}getMultiProof(e,t){this.complete||console.warn("Warning: For correct multiProofs it's strongly recommended to set complete: true"),t||(t=e,e=this.getLayersFlat());if(this.isUnevenTree()&&t.every(Number.isInteger))return this.getMultiProofForUnevenTree(t);if(!t.every(Number.isInteger)){let e=t;this.sortPairs&&(e=e.sort(mx.Buffer.compare));let n=e.map((e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves))).sort(((e,t)=>e===t?0:e>t?1:-1));if(!n.every((e=>-1!==e)))throw new Error("Element does not exist in Merkle tree");const r=[],i=[];let a=[];for(let e=0;e<this.layers.length;e++){const t=this.layers[e];for(let e=0;e<n.length;e++){const o=n[e],s=this.getPairNode(t,o);r.push(t[o]),s&&i.push(s),a.push(o/2|0)}n=a.filter(((e,t,n)=>n.indexOf(e)===t)),a=[]}return i.filter((e=>!r.includes(e)))}return this.getProofIndices(t,Math.log2(e.length/2|0)).map((t=>e[t]))}getMultiProofForUnevenTree(e,t){t||(t=e,e=this.getLayers());let n=[],r=t;for(const t of e){const e=[];for(const n of r){if(n%2==0){const i=n+1;if(!r.includes(i)&&t[i]){e.push(t[i]);continue}}const i=n-1;r.includes(i)||!t[i]||e.push(t[i])}n=n.concat(e);const i=new Set;for(const e of r)e%2!=0?e%2!=0?i.add((e-1)/2):i.add((e+1)/2):i.add(e/2);r=Array.from(i)}return n}getHexMultiProof(e,t){return this.getMultiProof(e,t).map((e=>this.bufferToHex(e)))}getProofFlags(e,t){if(!Array.isArray(e)||e.length<=0)throw new Error("Invalid Inputs!");let n;if(n=e.every(Number.isInteger)?[...e].sort(((e,t)=>e===t?0:e>t?1:-1)):e.map((e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves))).sort(((e,t)=>e===t?0:e>t?1:-1)),!n.every((e=>-1!==e)))throw new Error("Element does not exist in Merkle tree");const r=t.map((e=>this.bufferify(e))),i=[],a=[];for(let e=0;e<this.layers.length;e++){const t=this.layers[e];n=n.reduce(((e,n)=>{if(!i.includes(t[n])){const e=this.getPairNode(t,n),o=r.includes(t[n])||r.includes(e);e&&a.push(!o),i.push(t[n]),i.push(e)}return e.push(n/2|0),e}),[])}return a}verify(e,t,n){let r=this.bufferify(t);if(n=this.bufferify(n),!Array.isArray(e)||!t||!n)return!1;for(let t=0;t<e.length;t++){const n=e[t];let i=null,a=null;if("string"==typeof n)i=this.bufferify(n),a=!0;else if(Array.isArray(n))a=0===n[0],i=this.bufferify(n[1]);else if(mx.Buffer.isBuffer(n))i=n,a=!0;else{if(!(n instanceof Object))throw new Error("Expected node to be of type string or object");i=this.bufferify(n.data),a="left"===n.position}const o=[];this.isBitcoinTree?(o.push(yx.default(r)),o[a?"unshift":"push"](yx.default(i)),r=this.hashFn(this.concatenator(o)),r=yx.default(this.hashFn(r))):this.sortPairs?-1===mx.Buffer.compare(r,i)?(o.push(r,i),r=this.hashFn(this.concatenator(o))):(o.push(i,r),r=this.hashFn(this.concatenator(o))):(o.push(r),o[a?"unshift":"push"](i),r=this.hashFn(this.concatenator(o)))}return 0===mx.Buffer.compare(r,n)}verifyMultiProof(e,t,n,r,i){if(this.isUnevenTree())return this.verifyMultiProofForUnevenTree(e,t,n,r,i);const a=Math.ceil(Math.log2(r));e=this.bufferify(e),n=n.map((e=>this.bufferify(e))),i=i.map((e=>this.bufferify(e)));const o={};for(const[e,r]of this.zip(t,n))o[Math.pow(2,a)+e]=r;for(const[e,n]of this.zip(this.getProofIndices(t,a),i))o[e]=n;let s=Object.keys(o).map((e=>+e)).sort(((e,t)=>e-t));s=s.slice(0,s.length-1);let u=0;for(;u<s.length;){const e=s[u];if(e>=2&&{}.hasOwnProperty.call(o,1^e)){let t=[o[e-e%2],o[e-e%2+1]];this.sortPairs&&(t=t.sort(mx.Buffer.compare));const n=t[1]?this.hashFn(this.concatenator(t)):t[0];o[e/2|0]=n,s.push(e/2|0)}u+=1}return!t.length||{}.hasOwnProperty.call(o,1)&&o[1].equals(e)}verifyMultiProofWithFlags(e,t,n,r){e=this.bufferify(e),t=t.map(this.bufferify),n=n.map(this.bufferify);const i=t.length,a=r.length,o=[];let s=0,u=0,c=0;for(let e=0;e<a;e++){const a=[r[e]?s<i?t[s++]:o[u++]:n[c++],s<i?t[s++]:o[u++]].sort(mx.Buffer.compare);o[e]=this.hashFn(this.concatenator(a))}return 0===mx.Buffer.compare(o[a-1],e)}verifyMultiProofForUnevenTree(e,t,n,r,i){e=this.bufferify(e),n=n.map((e=>this.bufferify(e))),i=i.map((e=>this.bufferify(e)));const a=this.calculateRootForUnevenTree(t,n,r,i);return e.equals(a)}getDepth(){return this.getLayers().length-1}getLayersAsObject(){const e=this.getLayers().map((e=>e.map((e=>this.bufferToHex(e,!1))))),t=[];for(let n=0;n<e.length;n++){const r=[];for(let i=0;i<e[n].length;i++){const a={[e[n][i]]:null};if(t.length){a[e[n][i]]={};const r=t.shift(),o=Object.keys(r)[0];if(a[e[n][i]][o]=r[o],t.length){const r=t.shift(),o=Object.keys(r)[0];a[e[n][i]][o]=r[o]}}r.push(a)}t.push(...r)}return t[0]}static verify(t,n,r,i=gx.default,a={}){return new e([],i,a).verify(t,n,r)}static getMultiProof(t,n){return new e([]).getMultiProof(t,n)}resetTree(){this.leaves=[],this.layers=[]}getPairNode(e,t){const n=t%2==0?t+1:t-1;return n<e.length?e[n]:null}toTreeString(){const e=this.getLayersAsObject();return bx.default.asTree(e,!0)}toString(){return this.toTreeString()}isUnevenTree(e){const t=(null==e?void 0:e.length)||this.getDepth();return!this.isPowOf2(t)}isPowOf2(e){return e&&!(e&e-1)}calculateRootForUnevenTree(e,t,n,r){const i=this.zip(e,t).sort((([e],[t])=>e-t)),a=i.map((([e])=>e)),o=this.getProofIndicesForUnevenTree(a,n);let s=0;const u=[];for(let e=0;e<o.length;e++){const t=o[e],n=s;s+=t.length,u[e]=this.zip(t,r.slice(n,s))}const c=[i];for(let e=0;e<u.length;e++){const t=u[e].concat(c[e]).sort((([e],[t])=>e-t)).map((([,e])=>e)),n=c[e].map((([e])=>e)),r=[...new Set(n.map((e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2)))],i=[];for(let e=0;e<r.length;e++){const n=r[e],a=t[2*e],o=t[2*e+1],s=o?this.hashFn(this.concatenator([a,o])):a;i.push([n,s])}c.push(i)}return c[c.length-1][0][1]}};AS.MerkleTree=Tx,"undefined"!=typeof window&&(window.MerkleTree=Tx),AS.default=Tx;var wx={},Ax=yt&&yt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wx,"__esModule",{value:!0}),wx.MerkleMountainRange=void 0;const Ex=wn,_x=Ax(OS),Ix=Ax(xS);class Rx extends Ix.default{constructor(e=_x.default,t=[],n,r,i){super(),this.root=Ex.Buffer.alloc(0),this.size=0,this.width=0,this.hashes={},this.data={},t=t.map(this.bufferify),this.hashFn=this.bufferifyFn(e),this.hashLeafFn=n,this.peakBaggingFn=r,this.hashBranchFn=i;for(const e of t)this.append(e)}append(e){e=this.bufferify(e);const t=this.hashFn(e),n=this.bufferToHex(t);this.data[n]&&this.bufferToHex(this.hashFn(this.data[n]))===n||(this.data[n]=e);const r=this.hashLeaf(this.size+1,t);this.hashes[this.size+1]=r,this.width+=1;const i=this.getPeakIndexes(this.width);this.size=this.getSize(this.width);const a=[];for(let e=0;e<i.length;e++)a[e]=this._getOrCreateNode(i[e]);this.root=this.peakBagging(this.width,a)}hashLeaf(e,t){return t=this.bufferify(t),this.hashLeafFn?this.bufferify(this.hashLeafFn(e,t)):this.hashFn(Ex.Buffer.concat([this.bufferify(e),t]))}hashBranch(e,t,n){return this.hashBranchFn?this.bufferify(this.hashBranchFn(e,t,n)):this.hashFn(Ex.Buffer.concat([this.bufferify(e),this.bufferify(t),this.bufferify(n)]))}getPeaks(){const e=this.getPeakIndexes(this.width),t=[];for(let n=0;n<e.length;n++)t[n]=this.hashes[e[n]];return t}getLeafIndex(e){return e%2==1?this.getSize(e):this.getSize(e-1)+1}getPeakIndexes(e){const t=this.numOfPeaks(e),n=[];let r=0,i=0;for(let a=255;a>0&&!(0!=(e&1<<a-1)&&(i=i+(1<<a)-1,n[r++]=i,n.length>=t));a--);if(r!==n.length)throw new Error("invalid bit calculation");return n}numOfPeaks(e){let t=e,n=0;for(;t>0;)t%2==1&&n++,t>>=1;return n}peakBagging(e,t){const n=this.getSize(e);if(this.numOfPeaks(e)!==t.length)throw new Error("received invalid number of peaks");return 0!==e||t.length?this.peakBaggingFn?this.bufferify(this.peakBaggingFn(n,t)):this.hashFn(Ex.Buffer.concat([this.bufferify(n),...t.map(this.bufferify)])):Ex.Buffer.alloc(0)}getSize(e){return(e<<1)-this.numOfPeaks(e)}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.getRoot())}getNode(e){return this.hashes[e]}mountainHeight(e){let t=1;for(;1<<t<=e+t;)t++;return t-1}heightAt(e){let t=e,n=0,r=0;for(;t>n;)t-=(1<<r)-1,r=this.mountainHeight(t),n=(1<<r)-1;return r-(n-t)}isLeaf(e){return 1===this.heightAt(e)}getChildren(e){const t=e-(1<<this.heightAt(e)-1),n=e-1;if(t===n)throw new Error("not a parent");return[t,n]}getMerkleProof(e){if(e>this.size)throw new Error("out of range");if(!this.isLeaf(e))throw new Error("not a leaf");const t=this.root,n=this.width,r=this.getPeakIndexes(this.width),i=[];let a=0;for(let t=0;t<r.length;t++)i[t]=this.hashes[r[t]],r[t]>=e&&0===a&&(a=r[t]);let o=0,s=0,u=this.heightAt(a);const c=[];for(;a!==e;)u--,[o,s]=this.getChildren(a),a=e<=o?o:s,c[u-1]=this.hashes[e<=o?s:o];return{root:t,width:n,peakBagging:i,siblings:c}}verify(e,t,n,r,i,a){r=this.bufferify(r);if(this.getSize(t)<n)throw new Error("index is out of range");if(!e.equals(this.peakBagging(t,i)))throw new Error("invalid root hash from the peaks");let o,s=0;const u=this.getPeakIndexes(t);for(let e=0;e<u.length;e++)if(u[e]>=n){o=i[e],s=u[e];break}if(!o)throw new Error("target not found");let c=a.length+1;const l=new Array(c);let d,f=0,p=0;for(;c>0&&(l[--c]=s,s!==n);)[f,p]=this.getChildren(s),s=n>f?p:f;for(;c<l.length;)s=l[c],d=0===c?this.hashLeaf(s,this.hashFn(r)):s-1===l[c-1]?this.hashBranch(s,a[c-1],d):this.hashBranch(s,d,a[c-1]),c++;if(!d.equals(o))throw new Error("hashed peak is invalid");return!0}peaksToPeakMap(e,t){const n={};let r=0,i=0,a=t.length;for(let o=1;o<=32;o++)r=32-o,i=1<<o-1,n[r]=0!=(e&i)?t[--a]:0;if(0!==a)throw new Error("invalid number of peaks");return n}peakMapToPeaks(e,t){const n=this.numOfPeaks(e),r=new Array(n);let i=0;for(let e=0;e<32;e++)0!==t[e]&&(r[i++]=t[e]);if(i!==n)throw new Error("invalid number of peaks");return r}peakUpdate(e,t,n){const r={},i=e+1;let a=this.getLeafIndex(i),o=this.hashLeaf(a,n),s=0,u=0,c=!1,l=!1,d=!1;for(let n=1;n<=32;n++)s=32-n,d?r[s]=t[s]:(u=1<<n-1,c=0!=(e&u),l=0!=(i&u),a++,c&&(o=this.hashBranch(a,t[s],o)),l?(r[s]=c?t[s]:o,d=!0):r[s]=0);return r}rollUp(e,t,n,r){if(!e.equals(this.peakBagging(t,n)))throw new Error("invalid root hash from the peaks");let i=t,a=this.peaksToPeakMap(t,n);for(let e=0;e<r.length;e++)a=this.peakUpdate(i,a,r[e]),i++;return this.peakBagging(i,this.peakMapToPeaks(i,a))}_getOrCreateNode(e){if(e>this.size)throw new Error("out of range");if(!this.hashes[e]){const[t,n]=this.getChildren(e),r=this._getOrCreateNode(t),i=this._getOrCreateNode(n);this.hashes[e]=this.hashBranch(e,r,i)}return this.hashes[e]}}wx.MerkleMountainRange=Rx,"undefined"!=typeof window&&(window.MerkleMountainRange=Rx),wx.default=Rx;var Cx={},Ox=yt&&yt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Cx,"__esModule",{value:!0}),Cx.IncrementalMerkleTree=void 0;const kx=Ox(xS),Sx=Ox(NS);class Nx extends kx.default{constructor(e,t){if(super(),this.hashFn=e,t.depth&&(this.depth=t.depth),t.arity&&(this.arity=t.arity),this.depth<1)throw new Error("depth must be greater than 0");if(this.arity<1)throw new Error("arity must be greater than 0");const n=[];let r=t.zeroValue;if(this.zeroValue=r,this.zeroes=[],this.depth)for(let e=0;e<this.depth;e++)this.zeroes.push(r),n[e]=[],r=this.hashFn(Array(this.arity).fill(r));this.nodes=n,this.root=r}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.bufferify(this.getRoot()))}insert(e){if(this.depth&&this.arity&&this.nodes[0].length>=this.getMaxLeaves())throw new Error("tree is full");let t=e,n=this.nodes[0].length;for(let e=0;e<this.depth;e+=1){const r=n-n%this.arity,i=r+this.arity,a=[];this.nodes[e][n]=t;for(let t=r;t<i;t+=1)t<this.nodes[e].length?a.push(this.nodes[e][t]):a.push(this.zeroes[e]);t=this.hashFn(a),n=Math.floor(n/this.arity)}this.root=t}delete(e){this.update(e,this.zeroValue)}update(e,t){if(e<0||e>=this.nodes[0].length)throw new Error("out of bounds");let n=t;for(let t=0;t<this.depth;t+=1){const r=e-e%this.arity,i=r+this.arity,a=[];this.nodes[t][e]=n;for(let e=r;e<i;e+=1)e<this.nodes[t].length?a.push(this.nodes[t][e]):a.push(this.zeroes[t]);n=this.hashFn(a),e=Math.floor(e/this.arity)}this.root=n}getDepth(){return this.depth}getArity(){return this.arity}getMaxLeaves(){return Math.pow(this.depth,this.arity)}indexOf(e){return this.nodes[0].indexOf(e)}getLeaves(){const e=this.copyList(this.nodes[0]);for(let t=this.nodes[0].length;t<this.getMaxLeaves();t++)e[t]=this.zeroValue;return e}copyList(e){return e.map((e=>BigInt(e)))}getLayers(){const e=[];for(const t of this.nodes)e.push(this.copyList(t));if(e[0].length<this.getMaxLeaves()){let t=e[0].length;for(let n=t;n<this.getMaxLeaves();n++)e[0][n]=this.zeroValue;for(let n=0;n<this.depth;n++){const r=t-t%this.arity,i=r+this.arity;for(let t=r;t<i;t++)t>=e[n].length&&(e[n][t]=this.zeroes[n]);t=Math.floor(t/this.arity)}}return e.push([this.root]),e}getHexLayers(){return this.getLayers().reduce(((e,t)=>(Array.isArray(t)?e.push(t.map((e=>this.bufferToHex(this.bufferify(e))))):e.push(t),e)),[])}getLayersAsObject(){const e=this.getLayers().map((e=>e.map((e=>this.bufferToHex(this.bufferify(e),!1))))),t=[];for(let n=0;n<e.length;n++){const r=[];for(let i=0;i<e[n].length;i++){const a={[e[n][i]]:null};if(t.length){a[e[n][i]]={};const r=t.shift(),o=Object.keys(r)[0];if(a[e[n][i]][o]=r[o],t.length){const r=t.shift(),o=Object.keys(r)[0];a[e[n][i]][o]=r[o]}}r.push(a)}t.push(...r)}return t[0]}computeRoot(){let e,t=this.nodes[0].length;for(let n=0;n<this.depth;n+=1){const r=t-t%this.arity,i=r+this.arity,a=[];for(let e=r;e<i;e+=1)e<this.nodes[n].length?a.push(this.nodes[n][e]):a.push(this.zeroes[n]);e=this.hashFn(a),t=Math.floor(t/this.arity)}return e}getProof(e){if(e<0||e>=this.nodes[0].length)throw new Error("The leaf does not exist in this tree");const t=[],n=[],r=e;for(let r=0;r<this.depth;r+=1){const i=e%this.arity,a=e-i,o=a+this.arity;n[r]=i,t[r]=[];for(let n=a;n<o;n+=1)n!==e&&(n<this.nodes[r].length?t[r].push(this.nodes[r][n]):t[r].push(this.zeroes[r]));e=Math.floor(e/this.arity)}return{root:this.root,leaf:this.nodes[0][r],pathIndices:n,siblings:t}}verify(e){let t=e.leaf;for(let n=0;n<e.siblings.length;n+=1){const r=e.siblings[n].slice();r.splice(e.pathIndices[n],0,t),t=this.hashFn(r)}return e.root===t}toString(){return this.toTreeString()}toTreeString(){const e=this.getLayersAsObject();return Sx.default.asTree(e,!0)}}Cx.IncrementalMerkleTree=Nx,"undefined"!=typeof window&&(window.IncrementalMerkleTree=Nx),Cx.default=Nx;var xx={};Object.defineProperty(xx,"__esModule",{value:!0}),xx.MerkleSumTree=xx.ProofStep=xx.Leaf=xx.Bucket=void 0;const Px=xS;class Mx{constructor(e,t){this.size=BigInt(e),this.hashed=t,this.parent=null,this.left=null,this.right=null}}xx.Bucket=Mx;xx.Leaf=class{constructor(e,t,n){this.hashFn=e,this.rng=t.map((e=>BigInt(e))),this.data=n}getBucket(){let e;return e=this.data?this.hashFn(this.data):Buffer.alloc(32),new Mx(BigInt(this.rng[1])-BigInt(this.rng[0]),e)}};class Bx{constructor(e,t){this.bucket=e,this.right=t}}xx.ProofStep=Bx;class Dx extends Px.Base{constructor(e,t){super(),this.leaves=e,this.hashFn=t,Dx.checkConsecutive(e),this.buckets=[];for(const t of e)this.buckets.push(t.getBucket());let n=[];for(const e of this.buckets)n.push(e);for(;1!==n.length;){const e=[];for(;n.length;)if(n.length>=2){const t=n.shift(),r=n.shift(),i=t.size+r.size,a=this.hashFn(Buffer.concat([this.sizeToBuffer(t.size),this.bufferify(t.hashed),this.sizeToBuffer(r.size),this.bufferify(r.hashed)])),o=new Mx(i,a);r.parent=o,t.parent=r.parent,t.right=r,r.left=t,e.push(o)}else e.push(n.shift());n=e}this.root=n[0]}sizeToBuffer(e){const t=Buffer.alloc(8);return new DataView(t.buffer).setBigInt64(0,BigInt(e),!1),t}static checkConsecutive(e){let t=BigInt(0);for(const n of e){if(n.rng[0]!==t)throw new Error("leaf ranges are invalid");t=BigInt(n.rng[1])}}getProof(e){let t=this.buckets[Number(e)];const n=[];for(;t&&t.parent;){const e=!!t.right,r=t.right?t.right:t.left;t=t.parent,n.push(new Bx(r,e))}return n}sum(e){let t=BigInt(0);for(const n of e)t+=BigInt(n);return t}verifyProof(e,t,n){const r=[this.sum(n.filter((e=>!e.right)).map((e=>e.bucket.size))),BigInt(e.size)-this.sum(n.filter((e=>e.right)).map((e=>e.bucket.size)))];if(r[0]!==t.rng[0]||r[1]!==t.rng[1])return!1;let i,a=t.getBucket();for(const e of n)i=e.right?this.hashFn(Buffer.concat([this.sizeToBuffer(a.size),this.bufferify(a.hashed),this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed)])):this.hashFn(Buffer.concat([this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed),this.sizeToBuffer(a.size),this.bufferify(a.hashed)])),a=new Mx(BigInt(a.size)+BigInt(e.bucket.size),i);return a.size===e.size&&a.hashed.toString("hex")===e.hashed.toString("hex")}}xx.MerkleSumTree=Dx,"undefined"!=typeof window&&(window.MerkleSumTree=Dx),xx.default=Dx,function(e){var t=yt&&yt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.MerkleTree=void 0;const n=t(AS);e.MerkleTree=n.default;var r=wx;Object.defineProperty(e,"MerkleMountainRange",{enumerable:!0,get:function(){return r.MerkleMountainRange}});var i=Cx;Object.defineProperty(e,"IncrementalMerkleTree",{enumerable:!0,get:function(){return i.IncrementalMerkleTree}});var a=xx;Object.defineProperty(e,"MerkleSumTree",{enumerable:!0,get:function(){return a.MerkleSumTree}}),e.default=n.default}(wS);var Fx={};Object.defineProperty(Fx,"__esModule",{value:!0}),Fx.DefaultGetter=void 0;const Lx=Ak,Ux=new Nk.Logger("defaults"),qx={integer:0,address:(0,Lx.hexZeroPad)("0x",20),bool:!1,bytes:"0x",string:""},jx=e=>void 0!==e&&(null!=e&&(["string","number"].includes(typeof e)&&BigInt(e)===BigInt(0)||Array.isArray(e)&&e.every(jx)||"object"==typeof e&&Object.values(e).every(jx)||"boolean"==typeof e&&!1===e));class Gx{constructor(e){this.types=e,this.defaultValues={};for(const t in e){const e=this.getDefaultValue(t);this.defaultValues[t]=e,jx(e)||Ux.throwError(`Got non-empty value for type ${t} in default generator: ${e}`)}}static from(e,t){const{defaultValues:n}=new Gx(e);return t?n[t]:n}getDefaultValue(e){if(this.defaultValues[e])return this.defaultValues[e];const t=function(e){var t;const[,n]=null!==(t=e.match(/^bytes(\d+)$/))&&void 0!==t?t:[];return n?(0,Lx.hexZeroPad)("0x",parseInt(n)):(e.match(/^(u?)int(\d*)$/)&&(e="integer"),qx[e])}(e);if(void 0!==t)return t;const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],t=parseInt(n[3]);if(t>0){const n=this.getDefaultValue(e);return Array(t).fill(n)}return[]}const r=this.types[e];return r?r.reduce(((e,{name:t,type:n})=>Object.assign(Object.assign({},e),{[t]:this.getDefaultValue(n)})),{}):Ux.throwArgumentError(`unknown type: ${e}`,"type",e)}}Fx.DefaultGetter=Gx;var Hx={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getNextLayer=e.getRoot=e.fillArray=e.hashConcat=e.bufferKeccak=e.hexToBuffer=e.bufferToHex=e.chunk=e.makeArray=void 0;const t=Ak;e.makeArray=(e,t)=>Array(e).fill(0).map(((e,n)=>t(n)));e.chunk=(t,n)=>(0,e.makeArray)(Math.ceil(t.length/n),(e=>t.slice(e*n,(e+1)*n)));e.bufferToHex=e=>(0,t.hexlify)(e);e.hexToBuffer=e=>Buffer.from(e.slice(2),"hex");e.bufferKeccak=n=>(0,e.hexToBuffer)((0,t.keccak256)(n));e.hashConcat=n=>(0,e.bufferKeccak)((0,t.hexConcat)(n));e.fillArray=(e,t,n)=>(t>e.length&&e.push(...Array(t-e.length).fill(n)),e);e.getRoot=(t,n=!0)=>{if(0===t.length)throw new Error("empty tree");const r=[t.map((t=>{const r=Buffer.isBuffer(t)?t:(0,e.hexToBuffer)(t);return n?(0,e.bufferKeccak)(r):r}))];for(;r[r.length-1].length>1;)r.push((0,e.getNextLayer)(r[r.length-1]));return r[r.length-1][0]};e.getNextLayer=t=>(0,e.chunk)(t,2).map(e.hashConcat)}(Hx),Object.defineProperty(TS,"__esModule",{value:!0}),TS.Eip712MerkleTree=void 0;const zx=Ck,Wx=Ak,Vx=wS,Kx=Fx,Xx=Hx;TS.Eip712MerkleTree=class{get completedSize(){return Math.pow(2,this.depth)}getCompleteElements(){const e=this.elements;return(0,Xx.fillArray)([...e],this.completedSize,this.defaultNode)}getCompleteLeaves(){const e=this.elements.map(this.leafHasher);return(0,Xx.fillArray)([...e],this.completedSize,this.defaultLeaf)}get root(){return this.tree.getHexRoot()}getProof(e){const t=this.getCompleteLeaves()[e];return{leaf:t,proof:this.tree.getHexProof(t,e),root:this.tree.getHexRoot()}}getEncodedProofAndSignature(e,t){const{proof:n}=this.getProof(e);return((e,t,n=`0x${"ff".repeat(64)}`)=>(0,Wx.hexConcat)([n,`0x${e.toString(16).padStart(6,"0")}`,Wx.defaultAbiCoder.encode([`uint256[${t.length}]`],[t])]))(e,n,t)}getDataToSign(){let e=this.getCompleteElements();for(;e.length>2;)e=(0,Xx.chunk)(e,2);return e}add(e){this.elements.push(e)}getBulkOrderHash(){const e=this.encoder.hashStruct("BulkOrder",{tree:this.getDataToSign()}),t=this.getCompleteLeaves().map(Xx.hexToBuffer),n=(0,Xx.bufferToHex)((0,Xx.getRoot)(t,!1)),r=(0,Wx.keccak256)((0,Wx.toUtf8Bytes)(this.encoder._types.BulkOrder));if((0,Wx.keccak256)((0,Wx.hexConcat)([r,n]))!==e)throw new Error("expected derived bulk order hash to match");return e}constructor(e,t,n,r,i){this.types=e,this.rootType=t,this.leafType=n,this.elements=r,this.depth=i;const a=zx._TypedDataEncoder.from(e);var o,s;this.encoder=a,this.leafHasher=e=>a.hashStruct(n,e),this.defaultNode=Kx.DefaultGetter.from(e,n),this.defaultLeaf=this.leafHasher(this.defaultNode),this.tree=(o=this.getCompleteLeaves(),s=this.defaultLeaf,new Vx.MerkleTree(o.map(Xx.hexToBuffer),Xx.bufferKeccak,{complete:!0,sort:!1,hashLeaves:!1,fillDefaultHash:(0,Xx.hexToBuffer)(s)}))}},Object.defineProperty(vS,"__esModule",{value:!0}),vS.getBulkOrderTypeHashes=vS.getBulkOrderTypeHash=vS.getBulkOrderTree=vS.getBulkOrderTreeHeight=void 0;const Jx=Ak,Yx=TS,Qx=Fx,$x=Hx,Zx=zk;function eP(e){const t=Object.assign({},Zx.EIP_712_BULK_ORDER_TYPE);return t.BulkOrder=[{name:"tree",type:`OrderComponents${"[2]".repeat(e)}`}],t}function tP(e){return Math.max(Math.ceil(Math.log2(e)),1)}function nP(e){const t=eP(e),n=Jx._TypedDataEncoder.from(t),r=(0,Jx.toUtf8Bytes)(n._types.BulkOrder);return(0,Jx.keccak256)(r)}vS.getBulkOrderTreeHeight=tP,vS.getBulkOrderTree=function(e,t=0,n=tP(e.length+t)){const r=eP(n),i=Qx.DefaultGetter.from(r,"OrderComponents");let a=[...e];return t>0&&(a=[...(0,$x.fillArray)([],t,i),...e]),new Yx.Eip712MerkleTree(r,"BulkOrder","OrderComponents",a,n)},vS.getBulkOrderTypeHash=nP,vS.getBulkOrderTypeHashes=function(e){const t=[];for(let n=0;n<e;n++)t.push(nP(n+1));return t};var rP={},iP={},aP={};Object.defineProperty(aP,"__esModule",{value:!0}),aP.MerkleTree=void 0;const oP=wk,sP=Ak,uP=wS,cP=e=>(0,sP.keccak256)(Buffer.from(oP.BigNumber.from(e).toHexString().slice(2).padStart(64,"0"),"hex"));aP.MerkleTree=class{constructor(e){this.tree=new uP.default(e.map(cP),sP.keccak256,{sort:!0})}getProof(e){return this.tree.getHexProof(cP(e))}getRoot(){return this.tree.getRoot().toString("hex")?this.tree.getHexRoot():"0"}},Object.defineProperty(iP,"__esModule",{value:!0}),iP.shouldUseMatchForFulfill=iP.generateRandomSalt=iP.mapOrderAmountsFromUnitsToFill=iP.mapOrderAmountsFromFilledStatus=iP.totalItemsAmount=iP.areAllCurrenciesSame=iP.mapInputItemToOfferItem=iP.deductFees=iP.feeToConsiderationItem=void 0;const lP=wk,dP=Ak,fP=zk,pP=eS(),hP=aP,mP=(e,t)=>lP.BigNumber.from(e).mul(lP.BigNumber.from(t)).div(fP.ONE_HUNDRED_PERCENT_BP);iP.feeToConsiderationItem=({fee:e,token:t,baseAmount:n,baseEndAmount:r=n})=>({itemType:t===lP.ethers.constants.AddressZero?fP.ItemType.NATIVE:fP.ItemType.ERC20,token:t,identifierOrCriteria:"0",startAmount:mP(n,e.basisPoints).toString(),endAmount:mP(r,e.basisPoints).toString(),recipient:e.recipient});iP.deductFees=(e,t)=>{if(!t)return e;const n=t.reduce(((e,t)=>e+t.basisPoints),0);return e.map((e=>Object.assign(Object.assign({},e),{startAmount:(0,pP.isCurrencyItem)(e)?lP.BigNumber.from(e.startAmount).sub(mP(e.startAmount,n)).toString():e.startAmount,endAmount:(0,pP.isCurrencyItem)(e)?lP.BigNumber.from(e.endAmount).sub(mP(e.endAmount,n)).toString():e.endAmount})))};iP.mapInputItemToOfferItem=e=>{var t,n,r,i,a,o,s,u;if("itemType"in e){if("identifiers"in e||"criteria"in e){const i="criteria"in e?e.criteria:new hP.MerkleTree(e.identifiers).getRoot();return{itemType:e.itemType===fP.ItemType.ERC721?fP.ItemType.ERC721_WITH_CRITERIA:fP.ItemType.ERC1155_WITH_CRITERIA,token:e.token,identifierOrCriteria:i,startAmount:null!==(t=e.amount)&&void 0!==t?t:"1",endAmount:null!==(r=null!==(n=e.endAmount)&&void 0!==n?n:e.amount)&&void 0!==r?r:"1"}}return"amount"in e||"endAmount"in e?{itemType:e.itemType,token:e.token,identifierOrCriteria:null!==(i=e.identifier)&&void 0!==i?i:"0",startAmount:e.amount,endAmount:null!==(o=null!==(a=e.endAmount)&&void 0!==a?a:e.amount)&&void 0!==o?o:"1"}:{itemType:e.itemType,token:e.token,identifierOrCriteria:e.identifier,startAmount:"1",endAmount:"1"}}return{itemType:e.token&&e.token!==lP.ethers.constants.AddressZero?fP.ItemType.ERC20:fP.ItemType.NATIVE,token:null!==(s=e.token)&&void 0!==s?s:lP.ethers.constants.AddressZero,identifierOrCriteria:"0",startAmount:e.amount,endAmount:null!==(u=e.endAmount)&&void 0!==u?u:e.amount}};iP.areAllCurrenciesSame=({offer:e,consideration:t})=>{const n=[...e,...t].filter(pP.isCurrencyItem);return n.every((({itemType:e,token:t})=>e===n[0].itemType&&t.toLowerCase()===n[0].token.toLowerCase()))};iP.totalItemsAmount=e=>(lP.BigNumber.from(0),lP.BigNumber.from(0),e.map((({startAmount:e,endAmount:t})=>({startAmount:e,endAmount:t}))).reduce((({startAmount:e,endAmount:t},{startAmount:n,endAmount:r})=>({startAmount:e.add(n),endAmount:t.add(r)})),{startAmount:lP.BigNumber.from(0),endAmount:lP.BigNumber.from(0)}));iP.mapOrderAmountsFromFilledStatus=(e,{totalFilled:t,totalSize:n})=>{if(t.eq(0)||n.eq(0))return e;const r=n.sub(t).mul(fP.ONE_HUNDRED_PERCENT_BP).div(n);return{parameters:Object.assign(Object.assign({},e.parameters),{offer:e.parameters.offer.map((e=>Object.assign(Object.assign({},e),{startAmount:mP(e.startAmount,r).toString(),endAmount:mP(e.endAmount,r).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:mP(e.startAmount,r).toString(),endAmount:mP(e.endAmount,r).toString()})))}),signature:e.signature}};const yP=(e,t,n)=>lP.BigNumber.from(e).mul(lP.BigNumber.from(t)).div(n);iP.mapOrderAmountsFromUnitsToFill=(e,{unitsToFill:t,totalSize:n})=>{const r=lP.BigNumber.from(t);if(r.lte(0))throw new Error("Units to fill must be greater than 1");const i=(0,pP.getMaximumSizeForOrder)(e);return n.eq(0)&&(n=i),{parameters:Object.assign(Object.assign({},e.parameters),{offer:e.parameters.offer.map((e=>Object.assign(Object.assign({},e),{startAmount:yP(e.startAmount,r,n).toString(),endAmount:yP(e.endAmount,r,n).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:yP(e.startAmount,r,n).toString(),endAmount:yP(e.endAmount,r,n).toString()})))}),signature:e.signature}};iP.generateRandomSalt=e=>e?`0x${Buffer.from((0,dP.concat)([(0,dP.keccak256)((0,dP.toUtf8Bytes)(e)).slice(0,10),Uint8Array.from(Array(20).fill(0)),(0,dP.randomBytes)(8)])).toString("hex")}`:`0x${Buffer.from((0,dP.randomBytes)(8)).toString("hex").padStart(64,"0")}`;iP.shouldUseMatchForFulfill=()=>!0,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getAdvancedOrderNumeratorDenominator=e.generateFulfillOrdersFulfillments=e.fulfillAvailableOrders=e.validateAndSanitizeFromOrderStatus=e.fulfillStandardOrder=e.fulfillBasicOrder=e.shouldUseBasicFulfill=void 0;const t=wk,n=zk,r=Wk,i=cS,a=Qk(),o=Zk,s=eS(),u=iP,c=tS;e.shouldUseBasicFulfill=({offer:e,consideration:r,offerer:i},a)=>{if(!a.eq(0))return!1;if(e.length>1||0===r.length)return!1;const o=[...e,...r],c=o.filter((({itemType:e})=>[n.ItemType.ERC721,n.ItemType.ERC1155].includes(e))),l=o.filter((({itemType:e})=>(0,s.isCriteriaItem)(e)));if((0,s.isNativeCurrencyItem)(e[0]))return!1;if(1!==c.length||0!==l.length)return!1;if(!(0,u.areAllCurrenciesSame)({offer:e,consideration:r}))return!1;if(o.some((({startAmount:e,endAmount:t})=>e!==t)))return!1;const[d,...f]=r;if(d.recipient.toLowerCase()!==i.toLowerCase())return!1;if(r.length>1&&f.every((t=>t.itemType===e[0].itemType))&&(0,u.totalItemsAmount)(f).endAmount.gt(e[0].endAmount))return!1;const p=o.filter(s.isCurrencyItem),h=p.filter((({itemType:e})=>e===n.ItemType.NATIVE)).every((({token:e})=>e===t.ethers.constants.AddressZero)),m=p.every((({identifierOrCriteria:e})=>t.BigNumber.from(e).eq(0))),y=c.filter((({itemType:e})=>e===n.ItemType.ERC721)).every((({endAmount:e})=>"1"===e));return h&&m&&y};const l={[n.ItemType.ERC20]:{[n.ItemType.ERC721]:n.BasicOrderRouteType.ERC721_TO_ERC20,[n.ItemType.ERC1155]:n.BasicOrderRouteType.ERC1155_TO_ERC20},[n.ItemType.ERC721]:{[n.ItemType.NATIVE]:n.BasicOrderRouteType.ETH_TO_ERC721,[n.ItemType.ERC20]:n.BasicOrderRouteType.ERC20_TO_ERC721},[n.ItemType.ERC1155]:{[n.ItemType.NATIVE]:n.BasicOrderRouteType.ETH_TO_ERC1155,[n.ItemType.ERC20]:n.BasicOrderRouteType.ERC20_TO_ERC1155}};function d(e,t){const{isValidated:n,isCancelled:r,totalFilled:i,totalSize:a}=t;if(a.gt(0)&&i.div(a).eq(1))throw new Error("The order you are trying to fulfill is already filled");if(r)throw new Error("The order you are trying to fulfill is cancelled");return n?{parameters:Object.assign({},e.parameters),signature:"0x"}:e}function f(e){const t=({sourceOrDestination:e,operator:t="",token:n,identifier:r})=>`${e}-${t}-${n}-${r}`,n={},r={};return e.forEach((({order:e,offererOperator:r,offerCriteria:i},o)=>{const u=(0,a.getItemToCriteriaMap)(e.parameters.offer,i);return e.parameters.offer.forEach(((i,a)=>{var c,l,d;const f=`${t({sourceOrDestination:e.parameters.offerer,operator:r,token:i.token,identifier:null!==(l=null===(c=u.get(i))||void 0===c?void 0:c.identifier)&&void 0!==l?l:i.identifierOrCriteria})}${(0,s.isErc721Item)(i.itemType)?a:""}`;n[f]=[...null!==(d=n[f])&&void 0!==d?d:[],{orderIndex:o,itemIndex:a}]}))})),e.forEach((({order:e,considerationCriteria:n,tips:i},o)=>{const u=(0,a.getItemToCriteriaMap)(e.parameters.consideration,n);return[...e.parameters.consideration,...i].forEach(((e,n)=>{var i,a,c;const l=`${t({sourceOrDestination:e.recipient,token:e.token,identifier:null!==(a=null===(i=u.get(e))||void 0===i?void 0:i.identifier)&&void 0!==a?a:e.identifierOrCriteria})}${(0,s.isErc721Item)(e.itemType)?n:""}`;r[l]=[...null!==(c=r[l])&&void 0!==c?c:[],{orderIndex:o,itemIndex:n}]}))})),{offerFulfillments:Object.values(n),considerationFulfillments:Object.values(r)}}e.fulfillBasicOrder=function({order:e,seaportContract:a,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:u,timeBasedItemParams:d,offererOperator:f,fulfillerOperator:p,signer:h,tips:m=[],conduitKey:y=n.NO_CONDUIT,domain:g},b){var v,T;const{offer:w,consideration:A}=e.parameters,E=[...A,...m],_=w[0],[I,...R]=E,C=null===(v=l[_.itemType])||void 0===v?void 0:v[I.itemType];if(void 0===C)throw new Error("Order parameters did not result in a valid basic fulfillment");const O=R.map((({startAmount:e,recipient:t})=>({amount:e,recipient:t}))),k=E.filter((e=>e.itemType!==w[0].itemType)),S=null===(T=(0,s.getSummedTokenAndIdentifierAmounts)({items:k,criterias:[],timeBasedItemParams:Object.assign(Object.assign({},d),{isConsiderationItem:!0})})[t.ethers.constants.AddressZero])||void 0===T?void 0:T[0],N=(0,i.validateBasicFulfillBalancesAndApprovals)({offer:w,consideration:E,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:u,timeBasedItemParams:d,offererOperator:f,fulfillerOperator:p}),x={offerer:e.parameters.offerer,offererConduitKey:e.parameters.conduitKey,zone:e.parameters.zone,basicOrderType:e.parameters.orderType+4*C,offerToken:_.token,offerIdentifier:_.identifierOrCriteria,offerAmount:_.endAmount,considerationToken:I.token,considerationIdentifier:I.identifierOrCriteria,considerationAmount:I.endAmount,startTime:e.parameters.startTime,endTime:e.parameters.endTime,salt:e.parameters.salt,totalOriginalAdditionalRecipients:e.parameters.consideration.length-1,signature:e.signature,fulfillerConduitKey:y,additionalRecipients:O,zoneHash:e.parameters.zoneHash},P={value:S},M=[...(0,r.getApprovalActions)(N,b,h),{type:"exchange",transactionMethods:(0,c.getTransactionMethods)(a.connect(h),"fulfillBasicOrder",[x,P],g)}];return{actions:M,executeAllActions:()=>(0,c.executeAllActions)(M)}},e.fulfillStandardOrder=function({order:n,unitsToFill:o=0,totalSize:l,totalFilled:d,offerCriteria:f,considerationCriteria:p,tips:h=[],extraData:m,seaportContract:y,offererBalancesAndApprovals:g,fulfillerBalancesAndApprovals:b,offererOperator:v,fulfillerOperator:T,timeBasedItemParams:w,conduitKey:A,recipientAddress:E,signer:_,domain:I},R){var C;const O=o?(0,u.mapOrderAmountsFromUnitsToFill)(n,{unitsToFill:o,totalSize:l}):(0,u.mapOrderAmountsFromFilledStatus)(n,{totalFilled:d,totalSize:l}),{parameters:{offer:k,consideration:S}}=O,N=[...S,...h],x=k.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),P=N.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),M=x.length>0||P.length>0;if(x.length!==f.length||P.length!==p.length)throw new Error("You must supply the appropriate criterias for criteria based items");const B=null===(C=(0,s.getSummedTokenAndIdentifierAmounts)({items:N,criterias:p,timeBasedItemParams:Object.assign(Object.assign({},w),{isConsiderationItem:!0})})[t.ethers.constants.AddressZero])||void 0===C?void 0:C[0],D=(0,i.validateStandardFulfillBalancesAndApprovals)({offer:k,consideration:N,offerCriteria:f,considerationCriteria:p,offererBalancesAndApprovals:g,fulfillerBalancesAndApprovals:b,timeBasedItemParams:w,offererOperator:v,fulfillerOperator:T}),F={value:B},L=(0,r.getApprovalActions)(D,R,_),U=E!==t.ethers.constants.AddressZero,q=Boolean(o)||M||U,j=Object.assign(Object.assign({},n),{parameters:Object.assign(Object.assign({},n.parameters),{consideration:[...n.parameters.consideration,...h],totalOriginalConsiderationItems:S.length})}),{numerator:G,denominator:H}=(0,e.getAdvancedOrderNumeratorDenominator)(n,o),z=[...L,{type:"exchange",transactionMethods:q?(0,c.getTransactionMethods)(y.connect(_),"fulfillAdvancedOrder",[Object.assign(Object.assign({},j),{numerator:G,denominator:H,extraData:null!=m?m:"0x"}),M?(0,a.generateCriteriaResolvers)({orders:[n],offerCriterias:[f],considerationCriterias:[p]}):[],A,E,F],I):(0,c.getTransactionMethods)(y.connect(_),"fulfillOrder",[j,A,F],I)}];return{actions:z,executeAllActions:()=>(0,c.executeAllActions)(z)}},e.validateAndSanitizeFromOrderStatus=d,e.fulfillAvailableOrders=function({ordersMetadata:n,seaportContract:o,fulfillerBalancesAndApprovals:l,fulfillerOperator:p,currentBlockTimestamp:h,ascendingAmountTimestampBuffer:m,conduitKey:y,signer:g,recipientAddress:b,exactApproval:v,domain:T}){const w=n.map((e=>Object.assign(Object.assign({},e),{order:d(e.order,e.orderStatus)}))),A=w.map((e=>Object.assign(Object.assign({},e),{order:e.unitsToFill?(0,u.mapOrderAmountsFromUnitsToFill)(e.order,{unitsToFill:e.unitsToFill,totalSize:e.orderStatus.totalSize}):(0,u.mapOrderAmountsFromFilledStatus)(e.order,{totalFilled:e.orderStatus.totalFilled,totalSize:e.orderStatus.totalSize})})));let E=t.BigNumber.from(0);const _=[],I=w.flatMap((e=>[e.order.parameters.offer,e.order.parameters.consideration])).flat().filter((({itemType:e})=>(0,s.isCriteriaItem)(e))).length>0;A.forEach((({order:e,tips:n,offerCriteria:r,considerationCriteria:a,offererBalancesAndApprovals:o,offererOperator:u})=>{var c,d;const f=[...e.parameters.consideration,...n],y={startTime:e.parameters.startTime,endTime:e.parameters.endTime,currentBlockTimestamp:h,ascendingAmountTimestampBuffer:m,isConsiderationItem:!0};E=E.add(null!==(d=null===(c=(0,s.getSummedTokenAndIdentifierAmounts)({items:f,criterias:a,timeBasedItemParams:y})[t.ethers.constants.AddressZero])||void 0===c?void 0:c[0])&&void 0!==d?d:t.BigNumber.from(0));const g=(0,i.validateStandardFulfillBalancesAndApprovals)({offer:e.parameters.offer,consideration:f,offerCriteria:r,considerationCriteria:a,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:l,timeBasedItemParams:y,offererOperator:u,fulfillerOperator:p}),b=e.parameters.offer.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),v=f.filter((({itemType:e})=>(0,s.isCriteriaItem)(e)));if(b.length!==r.length||v.length!==a.length)throw new Error("You must supply the appropriate criterias for criteria based items");g.forEach((e=>{_.find((t=>t.token===e.token))||_.push(e)}))}));const R={value:E},C=(0,r.getApprovalActions)(_,v,g),O=w.map((({order:t,unitsToFill:n=0,tips:r,extraData:i})=>{const{numerator:a,denominator:o}=(0,e.getAdvancedOrderNumeratorDenominator)(t,n),s=[...t.parameters.consideration,...r];return Object.assign(Object.assign({},t),{parameters:Object.assign(Object.assign({},t.parameters),{consideration:s,totalOriginalConsiderationItems:t.parameters.consideration.length}),numerator:a,denominator:o,extraData:i})})),{offerFulfillments:k,considerationFulfillments:S}=f(n),N={type:"exchange",transactionMethods:(0,c.getTransactionMethods)(o.connect(g),"fulfillAvailableAdvancedOrders",[O,I?(0,a.generateCriteriaResolvers)({orders:n.map((({order:e})=>e)),offerCriterias:n.map((({offerCriteria:e})=>e)),considerationCriterias:n.map((({considerationCriteria:e})=>e))}):[],k,S,y,b,O.length,R],T)},x=[...C,N];return{actions:x,executeAllActions:()=>(0,c.executeAllActions)(x)}},e.generateFulfillOrdersFulfillments=f;e.getAdvancedOrderNumeratorDenominator=(e,n)=>{const r=(0,s.getMaximumSizeForOrder)(e),i=t.BigNumber.from(n),a=(0,o.gcd)(i,r);return{numerator:n?i.div(a):t.BigNumber.from(1),denominator:n?r.div(a):t.BigNumber.from(1)}}}(rP);var gP=yt&&yt.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(YO,"__esModule",{value:!0}),YO.Seaport=void 0;const bP=Tk,vP=wk,TP=Ak,wP=Gk,AP=Hk,EP=zk,_P=Wk,IP=cS,RP=vS,CP=rP,OP=eS(),kP=iP,SP=tS;YO.Seaport=class{constructor(e,{overrides:t,ascendingAmountFulfillmentBuffer:n=300,balanceAndApprovalChecksOnOrderCreation:r=!0,conduitKeyToConduit:i,seaportVersion:a="1.5"}={}){var o,s,u;this.OPENSEA_CONDUIT_KEY=EP.OPENSEA_CONDUIT_KEY,this.getOrderHash=e=>{const t="OfferItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount)",n="ConsiderationItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount,address recipient)",r=`OrderComponents(address offerer,address zone,OfferItem[] offer,ConsiderationItem[] consideration,uint8 orderType,uint256 startTime,uint256 endTime,bytes32 zoneHash,uint256 salt,bytes32 conduitKey,uint256 counter)${n}${t}`,i=vP.ethers.utils.keccak256(vP.ethers.utils.toUtf8Bytes(t)),a=vP.ethers.utils.keccak256(vP.ethers.utils.toUtf8Bytes(n)),o=vP.ethers.utils.keccak256(vP.ethers.utils.toUtf8Bytes(r)),s=vP.ethers.utils.keccak256("0x"+e.offer.map((e=>vP.ethers.utils.keccak256("0x"+[i.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0")].join("")).slice(2))).join("")),u=vP.ethers.utils.keccak256("0x"+e.consideration.map((e=>vP.ethers.utils.keccak256("0x"+[a.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0"),e.recipient.slice(2).padStart(64,"0")].join("")).slice(2))).join(""));return vP.ethers.utils.keccak256("0x"+[o.slice(2),e.offerer.slice(2).padStart(64,"0"),e.zone.slice(2).padStart(64,"0"),s.slice(2),u.slice(2),e.orderType.toString().padStart(64,"0"),vP.ethers.BigNumber.from(e.startTime).toHexString().slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.endTime).toHexString().slice(2).padStart(64,"0"),e.zoneHash.slice(2),vP.BigNumber.from(e.salt).toHexString().slice(2).padStart(64,"0"),e.conduitKey.slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.counter).toHexString().slice(2).padStart(64,"0")].join(""))};const c=e instanceof vP.providers.Provider?e:e.provider;if(this.signer=e._isSigner?e:void 0,!c)throw new Error("Either a provider or custom signer with provider must be provided");this.provider=c,this.multicallProvider=new bP.providers.MulticallProvider(this.provider),this.contract=new vP.Contract(null!==(o=null==t?void 0:t.contractAddress)&&void 0!==o?o:"1.5"===a?EP.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS:EP.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS,AP.SeaportABIv14,this.multicallProvider),this.domainRegistry=new vP.Contract(null!==(s=null==t?void 0:t.domainRegistryAddress)&&void 0!==s?s:EP.DOMAIN_REGISTRY_ADDRESS,wP.DomainRegistryABI,this.multicallProvider),this.config={ascendingAmountFulfillmentBuffer:n,balanceAndApprovalChecksOnOrderCreation:r,conduitKeyToConduit:Object.assign(Object.assign(Object.assign({},EP.KNOWN_CONDUIT_KEYS_TO_CONDUIT),{[EP.NO_CONDUIT]:this.contract.address}),i),seaportVersion:a},this.defaultConduitKey=null!==(u=null==t?void 0:t.defaultConduitKey)&&void 0!==u?u:EP.NO_CONDUIT}createOrder(e,t,n){return gP(this,void 0,void 0,(function*(){const r=this._getSigner(t),i=null!=t?t:yield r.getAddress(),{orderComponents:a,approvalActions:o}=yield this._formatOrder(r,i,Boolean(n),e),s={type:"create",getMessageToSign:()=>this._getMessageToSign(a),createOrder:()=>gP(this,void 0,void 0,(function*(){const e=yield this.signOrder(a,i);return{parameters:a,signature:e}}))},u=[...o,s];return{actions:u,executeAllActions:()=>(0,SP.executeAllActions)(u)}}))}createBulkOrders(e,t,n){var r;return gP(this,void 0,void 0,(function*(){const i=this._getSigner(t),a=yield i.getAddress(),o=yield this.getCounter(a),s=[],u=[];for(const t of e){null!==(r=t.counter)&&void 0!==r||(t.counter=o);const{orderComponents:e,approvalActions:c}=yield this._formatOrder(i,a,Boolean(n),t);u.push(e);for(const e of c)void 0===s.find((t=>t.token===e.token))&&s.push(e)}const c={type:"createBulk",getMessageToSign:()=>this._getBulkMessageToSign(u),createBulkOrders:()=>gP(this,void 0,void 0,(function*(){return yield this.signBulkOrder(u,a)}))},l=[...s,c];return{actions:l,executeAllActions:()=>(0,SP.executeAllActions)(l)}}))}_formatOrder(e,t,n,{conduitKey:r=this.defaultConduitKey,zone:i=vP.ethers.constants.AddressZero,zoneHash:a=vP.ethers.constants.HashZero,startTime:o=Math.floor(Date.now()/1e3).toString(),endTime:s=EP.MAX_INT.toString(),offer:u,consideration:c,counter:l,allowPartialFills:d,restrictedByZone:f,fees:p,domain:h,salt:m}){var y;return gP(this,void 0,void 0,(function*(){const g=u.map(kP.mapInputItemToOfferItem),b=[...c.map((e=>{var n;return Object.assign(Object.assign({},(0,kP.mapInputItemToOfferItem)(e)),{recipient:null!==(n=e.recipient)&&void 0!==n?n:t})}))];if((null==p?void 0:p.length)&&!(0,kP.areAllCurrenciesSame)({offer:g,consideration:b}))throw new Error("All currency tokens in the order must be the same token when applying fees");const v=[...g,...b].filter(OP.isCurrencyItem),T=(0,kP.totalItemsAmount)(v),w=this.config.conduitKeyToConduit[r],A=this._getOrderTypeFromOrderOptions({allowPartialFills:d,restrictedByZone:f}),E=[...(0,kP.deductFees)(b,p),...v.length&&null!==(y=null==p?void 0:p.map((e=>(0,kP.feeToConsiderationItem)({fee:e,token:v[0].token,baseAmount:T.startAmount,baseEndAmount:T.endAmount}))))&&void 0!==y?y:[]],_=void 0!==m?`0x${vP.BigNumber.from(m).toHexString().slice(2).padStart(64,"0")}`:(0,kP.generateRandomSalt)(h),I={offerer:t,zone:i,zoneHash:a,startTime:o,endTime:s,orderType:A,offer:g,consideration:E,totalOriginalConsiderationItems:E.length,salt:_,conduitKey:r,counter:(null!=l?l:yield this.getCounter(t)).toString()},R=[];if(this.config.balanceAndApprovalChecksOnOrderCreation){const r=yield(0,IP.getBalancesAndApprovals)({owner:t,items:g,criterias:[],multicallProvider:this.multicallProvider,operator:w}),i=(0,IP.validateOfferBalancesAndApprovals)({offer:g,criterias:[],balancesAndApprovals:r,throwOnInsufficientBalances:!0,operator:w}),a=(0,_P.getApprovalActions)(i,n,e);R.push(...a)}return{orderComponents:I,approvalActions:R}}))}_getSigner(e){if(this.signer)return this.signer;if(!(this.provider instanceof vP.providers.JsonRpcProvider))throw new Error("Either signer or a JsonRpcProvider must be provided");return this.provider.getSigner(e)}_getOrderTypeFromOrderOptions({allowPartialFills:e,restrictedByZone:t}){return e?t?EP.OrderType.PARTIAL_RESTRICTED:EP.OrderType.PARTIAL_OPEN:t?EP.OrderType.FULL_RESTRICTED:EP.OrderType.FULL_OPEN}_getDomainData(){return gP(this,void 0,void 0,(function*(){const{chainId:e}=yield this.provider.getNetwork();return{name:EP.SEAPORT_CONTRACT_NAME,version:"1.5"===this.config.seaportVersion?EP.SEAPORT_CONTRACT_VERSION_V1_5:EP.SEAPORT_CONTRACT_VERSION_V1_4,chainId:e,verifyingContract:this.contract.address}}))}_getMessageToSign(e){return gP(this,void 0,void 0,(function*(){const t=yield this._getDomainData();return JSON.stringify(TP._TypedDataEncoder.getPayload(t,EP.EIP_712_ORDER_TYPE,e))}))}_getBulkMessageToSign(e){return gP(this,void 0,void 0,(function*(){const t=yield this._getDomainData(),n=(0,RP.getBulkOrderTree)(e),r=n.types,i=n.getDataToSign();return JSON.stringify(TP._TypedDataEncoder.getPayload(t,r,{tree:i}))}))}signOrder(e,t){return gP(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData();let i=yield n._signTypedData(r,EP.EIP_712_ORDER_TYPE,e);return 132===i.length&&(i=vP.ethers.utils.splitSignature(i).compact),i}))}signBulkOrder(e,t){return gP(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData(),i=(0,RP.getBulkOrderTree)(e),a=i.types,o={tree:i.getDataToSign()};let s=yield n._signTypedData(r,a,o);132===s.length&&(s=vP.ethers.utils.splitSignature(s).compact);return e.map(((e,t)=>({parameters:e,signature:i.getEncodedProofAndSignature(t,s)})))}))}cancelOrders(e,t,n){const r=this._getSigner(t);return(0,SP.getTransactionMethods)(this.contract.connect(r),"cancel",[e],n)}bulkCancelOrders(e,t){const n=this._getSigner(e);return(0,SP.getTransactionMethods)(this.contract.connect(n),"incrementCounter",[],t)}validate(e,t,n){const r=this._getSigner(t);return(0,SP.getTransactionMethods)(this.contract.connect(r),"validate",[e],n)}getOrderStatus(e){return this.contract.getOrderStatus(e)}getCounter(e){return this.contract.getCounter(e)}fulfillOrder({order:e,unitsToFill:t,offerCriteria:n=[],considerationCriteria:r=[],tips:i=[],extraData:a="0x",accountAddress:o,conduitKey:s=this.defaultConduitKey,recipientAddress:u=vP.ethers.constants.AddressZero,domain:c,exactApproval:l=!1}){return gP(this,void 0,void 0,(function*(){if(!e.signature)throw new Error("Order is missing signature");const{parameters:d}=e,{offerer:f,offer:p,consideration:h}=d,m=this._getSigner(o),y=yield m.getAddress(),g=this.config.conduitKeyToConduit[d.conduitKey],b=this.config.conduitKeyToConduit[s],[v,T,w,A]=yield Promise.all([(0,IP.getBalancesAndApprovals)({owner:f,items:p,criterias:n,multicallProvider:this.multicallProvider,operator:g}),(0,IP.getBalancesAndApprovals)({owner:y,items:[...p,...h],criterias:[...n,...r],multicallProvider:this.multicallProvider,operator:b}),this.multicallProvider.getBlock("latest"),this.getOrderStatus(this.getOrderHash(d))]),E=w.timestamp,{totalFilled:_,totalSize:I}=A,R=(0,CP.validateAndSanitizeFromOrderStatus)(e,A),C={startTime:R.parameters.startTime,endTime:R.parameters.endTime,currentBlockTimestamp:E,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer},O=i.map((e=>Object.assign(Object.assign({},(0,kP.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))),k=u===vP.ethers.constants.AddressZero;return!t&&k&&(0,CP.shouldUseBasicFulfill)(R.parameters,_)?(0,CP.fulfillBasicOrder)({order:R,seaportContract:this.contract,offererBalancesAndApprovals:v,fulfillerBalancesAndApprovals:T,timeBasedItemParams:C,conduitKey:s,offererOperator:g,fulfillerOperator:b,signer:m,tips:O,domain:c},l):(0,CP.fulfillStandardOrder)({order:R,unitsToFill:t,totalFilled:_,totalSize:I.eq(0)?(0,OP.getMaximumSizeForOrder)(R):I,offerCriteria:n,considerationCriteria:r,tips:O,extraData:a,seaportContract:this.contract,offererBalancesAndApprovals:v,fulfillerBalancesAndApprovals:T,timeBasedItemParams:C,conduitKey:s,signer:m,offererOperator:g,fulfillerOperator:b,recipientAddress:u,domain:c},l)}))}fulfillOrders({fulfillOrderDetails:e,accountAddress:t,conduitKey:n=this.defaultConduitKey,recipientAddress:r=vP.ethers.constants.AddressZero,domain:i,exactApproval:a=!1}){return gP(this,void 0,void 0,(function*(){if(e.some((e=>!e.order.signature)))throw new Error("All orders must include signatures");const o=this._getSigner(t),s=yield o.getAddress(),u=e.map((({order:e})=>this.config.conduitKeyToConduit[e.parameters.conduitKey])),c=this.config.conduitKeyToConduit[n],l=e.flatMap((({order:e})=>e.parameters.offer)),d=e.flatMap((({order:e})=>e.parameters.consideration)),f=e.flatMap((({offerCriteria:e=[]})=>e)),p=e.flatMap((({considerationCriteria:e=[]})=>e)),[h,m,y,g]=yield Promise.all([Promise.all(e.map((({order:e,offerCriteria:t=[]},n)=>(0,IP.getBalancesAndApprovals)({owner:e.parameters.offerer,items:e.parameters.offer,criterias:t,operator:u[n],multicallProvider:this.multicallProvider})))),(0,IP.getBalancesAndApprovals)({owner:s,items:[...l,...d],criterias:[...f,...p],operator:c,multicallProvider:this.multicallProvider}),this.multicallProvider.getBlock("latest"),Promise.all(e.map((({order:e})=>this.getOrderStatus(this.getOrderHash(e.parameters)))))]),b=e.map(((e,t)=>{var n,r,i,a,o;return{order:e.order,unitsToFill:e.unitsToFill,orderStatus:g[t],offerCriteria:null!==(n=e.offerCriteria)&&void 0!==n?n:[],considerationCriteria:null!==(r=e.considerationCriteria)&&void 0!==r?r:[],tips:null!==(a=null===(i=e.tips)||void 0===i?void 0:i.map((e=>Object.assign(Object.assign({},(0,kP.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))))&&void 0!==a?a:[],extraData:null!==(o=e.extraData)&&void 0!==o?o:"0x",offererBalancesAndApprovals:h[t],offererOperator:u[t]}}));return(0,CP.fulfillAvailableOrders)({ordersMetadata:b,seaportContract:this.contract,fulfillerBalancesAndApprovals:m,currentBlockTimestamp:y.timestamp,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer,fulfillerOperator:c,signer:o,conduitKey:n,recipientAddress:r,domain:i,exactApproval:a})}))}matchOrders({orders:e,fulfillments:t,overrides:n,accountAddress:r,domain:i}){const a=this._getSigner(r);return(0,SP.getTransactionMethods)(this.contract.connect(a),"matchOrders",[e,t,n],i)}setDomain(e,t){const n=this._getSigner(t);return(0,SP.getTransactionMethods)(this.domainRegistry.connect(n),"setDomain",[e])}getNumberOfDomains(e){return gP(this,void 0,void 0,(function*(){return this.domainRegistry.getNumberOfDomains(e)}))}getDomain(e,t){return this.domainRegistry.getDomain(e,t)}getDomains(e,t){return gP(this,void 0,void 0,(function*(){try{if(t)throw Error;return this.domainRegistry.getDomains(e)}catch(t){const n=(yield this.domainRegistry.getNumberOfDomains(e)).toNumber();return Promise.all([...Array(n).keys()].map((t=>this.domainRegistry.getDomain(e,t))))}}))}},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Seaport=void 0;const t=YO;Object.defineProperty(e,"Seaport",{enumerable:!0,get:function(){return t.Seaport}})}(JO);class NP{config;constructor(e){this.config=e}}class xP extends Error{url;status;statusText;body;request;constructor(e,t,n){super(n),this.name="ApiError",this.url=t.url,this.status=t.status,this.statusText=t.statusText,this.body=t.body,this.request=e}}class PP extends Error{constructor(e){super(e),this.name="CancelError"}get isCancelled(){return!0}}class MP{[Symbol.toStringTag];_isResolved;_isRejected;_isCancelled;_cancelHandlers;_promise;_resolve;_reject;constructor(e){this._isResolved=!1,this._isRejected=!1,this._isCancelled=!1,this._cancelHandlers=[],this._promise=new Promise(((t,n)=>{this._resolve=t,this._reject=n;const r=e=>{this._isResolved||this._isRejected||this._isCancelled||this._cancelHandlers.push(e)};return Object.defineProperty(r,"isResolved",{get:()=>this._isResolved}),Object.defineProperty(r,"isRejected",{get:()=>this._isRejected}),Object.defineProperty(r,"isCancelled",{get:()=>this._isCancelled}),e((e=>{this._isResolved||this._isRejected||this._isCancelled||(this._isResolved=!0,this._resolve?.(e))}),(e=>{this._isResolved||this._isRejected||this._isCancelled||(this._isRejected=!0,this._reject?.(e))}),r)}))}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(){if(!(this._isResolved||this._isRejected||this._isCancelled)){if(this._isCancelled=!0,this._cancelHandlers.length)try{for(const e of this._cancelHandlers)e()}catch(e){return void console.warn("Cancellation threw an error",e)}this._cancelHandlers.length=0,this._reject?.(new PP("Request aborted"))}}get isCancelled(){return this._isCancelled}}const BP=e=>null!=e,DP=e=>"string"==typeof e,FP=e=>DP(e)&&""!==e,LP=e=>"object"==typeof e&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.arrayBuffer&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag]),UP=e=>{const t=[],n=(e,r)=>{BP(r)&&(Array.isArray(r)?r.forEach((t=>{n(e,t)})):"object"==typeof r?Object.entries(r).forEach((([t,r])=>{n(`${e}[${t}]`,r)})):((e,n)=>{t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`)})(e,r))};return Object.entries(e).forEach((([e,t])=>{n(e,t)})),t.length>0?`?${t.join("&")}`:""},qP=async(e,t)=>"function"==typeof t?t(e):t,jP=async(e,t,n)=>{const r=await qP(t,e.TOKEN),i=await qP(t,e.USERNAME),a=await qP(t,e.PASSWORD),o=await qP(t,e.HEADERS),s="function"==typeof n?.getHeaders&&n?.getHeaders()||{},u=Object.entries({Accept:"application/json",...o,...t.headers,...s}).filter((([e,t])=>BP(t))).reduce(((e,[t,n])=>({...e,[t]:String(n)})),{});if(FP(r)&&(u.Authorization=`Bearer ${r}`),FP(i)&&FP(a)){const e=(e=>{try{return btoa(e)}catch(t){return Buffer.from(e).toString("base64")}})(`${i}:${a}`);u.Authorization=`Basic ${e}`}return t.body&&(t.mediaType?u["Content-Type"]=t.mediaType:LP(t.body)?u["Content-Type"]=t.body.type||"application/octet-stream":DP(t.body)?u["Content-Type"]="text/plain":t.body instanceof XO||(u["Content-Type"]="application/json")),u},GP=(e,t)=>new MP((async(n,r,i)=>{try{const r=((e,t)=>{const n=e.ENCODE_PATH||encodeURI,r=t.url.replace("{api-version}",e.VERSION).replace(/{(.*?)}/g,((e,r)=>t.path?.hasOwnProperty(r)?n(String(t.path[r])):e)),i=`${e.BASE}${r}`;return t.query?`${i}${UP(t.query)}`:i})(e,t),o=(e=>{if(e.formData){const t=new XO,n=(e,n)=>{DP(n)||LP(n)?t.append(e,n):t.append(e,JSON.stringify(n))};return Object.entries(e.formData).filter((([e,t])=>BP(t))).forEach((([e,t])=>{Array.isArray(t)?t.forEach((t=>n(e,t))):n(e,t)})),t}})(t),s=(e=>{if(e.body)return e.body})(t),u=await jP(e,t,o);if(!i.isCancelled){const c=await(async(e,t,n,r,i,a,o)=>{const s=Qe.CancelToken.source(),u={url:n,headers:a,data:r??i,method:t.method,withCredentials:e.WITH_CREDENTIALS,cancelToken:s.token};o((()=>s.cancel("The user aborted a request.")));try{return await Qe.request(u)}catch(e){const t=e;if(t.response)return t.response;throw e}})(e,t,r,s,o,u,i),l=(e=>{if(204!==e.status)return e.data})(c),d=((e,t)=>{if(t){const n=e.headers[t];if(DP(n))return n}})(c,t.responseHeader),f={url:r,ok:(a=c.status,a>=200&&a<300),status:c.status,statusText:c.statusText,body:d??l};((e,t)=>{const n={400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error",502:"Bad Gateway",503:"Service Unavailable",...e.errors}[t.status];if(n)throw new xP(e,t,n);if(!t.ok)throw new xP(e,t,"Generic Error")})(t,f),n(f.body)}}catch(e){r(e)}var a}));class HP extends NP{constructor(e){super(e)}request(e){return GP(this.config,e)}}class zP{httpRequest;constructor(e){this.httpRequest=e}cancelOrders({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/cancel",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",401:"Unauthorised Request (401)",404:"The specified resource was not found (404)",429:"Too Many Requests (429)",500:"Internal Server Error (500)",501:"Not Implemented Error (501)"}})}listListings({chainName:e,status:t,sellItemContractAddress:n,buyItemContractAddress:r,accountAddress:i,sellItemMetadataId:a,sellItemTokenId:o,fromUpdatedAt:s,pageSize:u,sortBy:c,sortDirection:l,pageCursor:d}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:e},query:{status:t,sell_item_contract_address:n,buy_item_contract_address:r,account_address:i,sell_item_metadata_id:a,sell_item_token_id:o,from_updated_at:s,page_size:u,sort_by:c,sort_direction:l,page_cursor:d},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}createListing({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getListing({chainName:e,listingId:t}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings/{listing_id}",path:{chain_name:e,listing_id:t},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}fulfillmentData({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/fulfillment-data",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}listTrades({chainName:e,accountAddress:t,fromIndexedAt:n,pageSize:r,sortBy:i,sortDirection:a,pageCursor:o}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades",path:{chain_name:e},query:{account_address:t,from_indexed_at:n,page_size:r,sort_by:i,sort_direction:a,page_cursor:o},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getTrade({chainName:e,tradeId:t}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades/{trade_id}",path:{chain_name:e,trade_id:t},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}}class WP{orders;request;constructor(e,t=HP){this.request=new t({BASE:e?.BASE??"https://api.sandbox.immutable.com",VERSION:e?.VERSION??"1.0.0",WITH_CREDENTIALS:e?.WITH_CREDENTIALS??!1,CREDENTIALS:e?.CREDENTIALS??"include",TOKEN:e?.TOKEN,USERNAME:e?.USERNAME,PASSWORD:e?.PASSWORD,HEADERS:e?.HEADERS,ENCODE_PATH:e?.ENCODE_PATH}),this.orders=new zP(this.request)}}var VP,KP,XP,JP,YP,QP,$P,ZP,eM,tM;function nM(e){const t=e.buy.map((e=>{if("ERC20"===e.type)return{type:"ERC20",contractAddress:e.contract_address,amount:e.amount};if("NATIVE"===e.type)return{type:"NATIVE",amount:e.amount};throw new Error("Buy items must be either ERC20 or NATIVE")})),n=e.sell.map((e=>{if("ERC721"===e.type)return{type:"ERC721",contractAddress:e.contract_address,tokenId:e.token_id};throw new Error("Sell items must ERC721")}));return{id:e.id,type:e.type,accountAddress:e.account_address,buy:t,sell:n,fees:e.fees.map((e=>({amount:e.amount,recipientAddress:e.recipient_address,type:e.type}))),chain:e.chain,createdAt:e.created_at,endAt:e.end_at,orderHash:e.order_hash,protocolData:{orderType:e.protocol_data.order_type,counter:e.protocol_data.counter,seaportAddress:e.protocol_data.seaport_address,seaportVersion:e.protocol_data.seaport_version,zoneAddress:e.protocol_data.zone_address},salt:e.salt,signature:e.signature,startAt:e.start_at,status:e.status,updatedAt:e.updated_at}}function rM(e){const t=e.buy.map((e=>{if("ERC20"===e.type)return{type:"ERC20",contractAddress:e.contract_address,amount:e.amount};if("NATIVE"===e.type)return{type:"NATIVE",amount:e.amount};throw new Error("Buy items must be either ERC20 or NATIVE")})),n=e.sell.map((e=>{if("ERC721"===e.type)return{type:"ERC721",contractAddress:e.contract_address,tokenId:e.token_id};throw new Error("Sell items must ERC721")}));return{id:e.id,orderId:e.order_id,buy:t,sell:n,buyerFees:e.buyer_fees.map((e=>({amount:e.amount,recipientAddress:e.recipient_address,type:e.type}))),chain:e.chain,indexedAt:e.indexed_at,blockchainMetadata:{blockNumber:e.blockchain_metadata.block_number,logIndex:e.blockchain_metadata.log_index,transactionHash:e.blockchain_metadata.transaction_hash,transactionIndex:e.blockchain_metadata.transaction_index},buyerAddress:e.buyer_address,makerAddress:e.maker_address,sellerAddress:e.seller_address,takerAddress:e.taker_address}}function iM(e){return{nextCursor:e.next_cursor,previousCursor:e.previous_cursor}}!function(e){var t;(t=e.cancellation_type||(e.cancellation_type={})).ON_CHAIN="ON_CHAIN",t.OFF_CHAIN="OFF_CHAIN"}(VP||(VP={})),function(e){(e.reason_code||(e.reason_code={})).FILLED="FILLED"}(KP||(KP={})),function(e){var t;(t=e.type||(e.type={})).ROYALTY="ROYALTY",t.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",t.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",t.PROTOCOL="PROTOCOL"}(XP||(XP={})),function(e){(e.type||(e.type={})).LISTING="LISTING"}(JP||(JP={})),function(e){e.PENDING="PENDING",e.ACTIVE="ACTIVE",e.INACTIVE="INACTIVE",e.FILLED="FILLED",e.EXPIRED="EXPIRED",e.CANCELLED="CANCELLED"}(YP||(YP={})),function(e){(e.order_type||(e.order_type={})).FULL_RESTRICTED="FULL_RESTRICTED"}(QP||(QP={})),function(e){e.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",e.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",e.PROTOCOL="PROTOCOL",e.ROYALTY="ROYALTY"}($P||($P={})),function(e){e.APPROVAL="APPROVAL",e.FULFILL_ORDER="FULFILL_ORDER",e.CANCEL="CANCEL"}(ZP||(ZP={})),function(e){e.CREATE_LISTING="CREATE_LISTING",e.OFF_CHAIN_CANCELLATION="OFF_CHAIN_CANCELLATION"}(eM||(eM={})),function(e){e.TRANSACTION="TRANSACTION",e.SIGNABLE="SIGNABLE"}(tM||(tM={}));const aM="1.5",oM={OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]};var sM,uM,cM,lM;function dM(e,t){return async()=>{const n=await e.buildTransaction();return n.gasLimit=await e.estimateGas(),n.gasLimit=n.gasLimit.add(n.gasLimit.div(5)),n.chainId=t,n}}!function(e){e[e.FULL_OPEN=0]="FULL_OPEN",e[e.PARTIAL_OPEN=1]="PARTIAL_OPEN",e[e.FULL_RESTRICTED=2]="FULL_RESTRICTED",e[e.PARTIAL_RESTRICTED=3]="PARTIAL_RESTRICTED"}(sM||(sM={})),function(e){e[e.NATIVE=0]="NATIVE",e[e.ERC20=1]="ERC20",e[e.ERC721=2]="ERC721",e[e.ERC1155=3]="ERC1155",e[e.ERC721_WITH_CRITERIA=4]="ERC721_WITH_CRITERIA",e[e.ERC1155_WITH_CRITERIA=5]="ERC1155_WITH_CRITERIA"}(uM||(uM={})),function(e){e[e.OFFER=0]="OFFER",e[e.CONSIDERATION=1]="CONSIDERATION"}(cM||(cM={})),function(e){e[e.ETH_TO_ERC721=0]="ETH_TO_ERC721",e[e.ETH_TO_ERC1155=1]="ETH_TO_ERC1155",e[e.ERC20_TO_ERC721=2]="ERC20_TO_ERC721",e[e.ERC20_TO_ERC1155=3]="ERC20_TO_ERC1155",e[e.ERC721_TO_ERC20=4]="ERC721_TO_ERC20",e[e.ERC1155_TO_ERC20=5]="ERC1155_TO_ERC20"}(lM||(lM={}));class fM{seaportLibFactory;provider;seaportContractAddress;zoneContractAddress;constructor(e,t,n,r){this.seaportLibFactory=e,this.provider=t,this.seaportContractAddress=n,this.zoneContractAddress=r}async prepareSeaportOrder(e,t,n,r,i){const{actions:a}=await this.createSeaportOrder(e,t,n,r,i),o=[],s=a.find((e=>"approval"===e.type));s&&o.push({type:tM.TRANSACTION,purpose:ZP.APPROVAL,buildTransaction:dM(s.transactionMethods,(await this.provider.getNetwork()).chainId)});const u=a.find((e=>"create"===e.type));if(!u)throw new Error("No create order action found");const c=function(e){const t=JSON.parse(e).message;return t.salt=ur.from(t.salt).toHexString(),t}(await u.getMessageToSign());return o.push({type:tM.SIGNABLE,purpose:eM.CREATE_LISTING,message:await this.getTypedDataFromOrderComponents(c)}),{actions:o,orderComponents:c,orderHash:this.getSeaportLib().getOrderHash(c)}}async fulfillOrder(e,t,n){const{orderComponents:r,tips:i}=this.mapImmutableOrderToSeaportOrderComponents(e),a=this.getSeaportLib(e),{actions:o}=await a.fulfillOrders({accountAddress:t,fulfillOrderDetails:[{order:{parameters:r,signature:e.signature},extraData:n,tips:i}]}),s=[],u=o.find((e=>"approval"===e.type));u&&s.push({type:tM.TRANSACTION,buildTransaction:dM(u.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:ZP.APPROVAL});const c=o.find((e=>"exchange"===e.type));if(!c)throw new Error("No exchange action found");return s.push({type:tM.TRANSACTION,buildTransaction:dM(c.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:ZP.FULFILL_ORDER}),{actions:s,expiration:fM.getExpirationISOTimeFromExtraData(n),order:nM(e)}}async fulfillBulkOrders(e,t){const n=e.map((e=>{const{orderComponents:t,tips:n}=this.mapImmutableOrderToSeaportOrderComponents(e.order);return{order:{parameters:t,signature:e.order.signature},extraData:e.extra_data,tips:n}})),{actions:r}=await this.getSeaportLib().fulfillOrders({fulfillOrderDetails:n,accountAddress:t}),i=[],a=r.find((e=>"approval"===e.type));a&&i.push({type:tM.TRANSACTION,buildTransaction:dM(a.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:ZP.APPROVAL});const o=r.find((e=>"exchange"===e.type));if(!o)throw new Error("No exchange action found");return i.push({type:tM.TRANSACTION,buildTransaction:dM(o.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:ZP.FULFILL_ORDER}),{actions:i,expiration:n.map((e=>fM.getExpirationISOTimeFromExtraData(e.extraData))).reduce(((e,t)=>new Date(e)<new Date(t)?e:t))}}async cancelOrders(e,t){const n=e.map((e=>this.mapImmutableOrderToSeaportOrderComponents(e).orderComponents)),r=this.getSeaportLib(e[0]),i=await r.cancelOrders(n,t);return{type:tM.TRANSACTION,buildTransaction:dM(i,(await this.provider.getNetwork()).chainId),purpose:ZP.CANCEL}}mapImmutableOrderToSeaportOrderComponents(e){return function(e,t,n){const r=e.buy.map((t=>{switch(t.type){case"NATIVE":return{startAmount:t.amount,endAmount:t.amount,itemType:uM.NATIVE,recipient:e.account_address,token:Xi,identifierOrCriteria:"0"};case"ERC20":return{startAmount:t.amount,endAmount:t.amount,itemType:uM.ERC20,recipient:e.account_address,token:t.contract_address||Xi,identifierOrCriteria:"0"};default:return{startAmount:"1",endAmount:"1",itemType:uM.ERC721,recipient:e.account_address,token:t.contract_address||Xi,identifierOrCriteria:"0"}}})),i=e.fees.map((t=>({amount:t.amount,itemType:"ERC20"===e.buy[0].type?uM.ERC20:uM.NATIVE,recipient:t.recipient_address,token:"ERC20"===e.buy[0].type?e.buy[0].contract_address:Xi,identifierOrCriteria:"0"})));return{orderComponents:{conduitKey:ra,consideration:[...r],offer:e.sell.map((e=>{const t=e;return{startAmount:"1",endAmount:"1",itemType:uM.ERC721,token:t.contract_address,identifierOrCriteria:t.token_id}})),counter:t,endTime:Math.round(new Date(e.end_at).getTime()/1e3).toString(),startTime:Math.round(new Date(e.start_at).getTime()/1e3).toString(),salt:e.salt,offerer:e.account_address,zone:n,totalOriginalConsiderationItems:r.length,orderType:sM.FULL_RESTRICTED,zoneHash:ra},tips:i}}(e,e.protocol_data.counter,this.zoneContractAddress)}createSeaportOrder(e,t,n,r,i){return this.getSeaportLib().createOrder({allowPartialFills:!1,offer:[{itemType:uM.ERC721,token:t.contractAddress,identifier:t.tokenId}],consideration:[{token:"ERC20"===n.type?n.contractAddress:void 0,amount:n.amount,recipient:e}],startTime:(r.getTime()/1e3).toFixed(0),endTime:(i.getTime()/1e3).toFixed(0),zone:this.zoneContractAddress,restrictedByZone:!0},e)}async getTypedDataFromOrderComponents(e){const{chainId:t}=await this.provider.getNetwork();return{domain:{name:"ImmutableSeaport",version:aM,chainId:t,verifyingContract:this.seaportContractAddress},types:oM,value:e}}getSeaportLib(e){const t=e?.protocol_data?.seaport_address??this.seaportContractAddress,n=aM;return this.seaportLibFactory.create(n,t)}static getExpirationISOTimeFromExtraData(e){const t=e.slice(44,60),n=parseInt(t,16);return new Date(1e3*n).toISOString()}}class pM{orderbookService;chainName;seaportAddress;constructor(e,t,n){this.orderbookService=e,this.chainName=t,this.seaportAddress=n}async fulfillmentData(e){return this.orderbookService.fulfillmentData({chainName:this.chainName,requestBody:e})}async getListing(e){return this.orderbookService.getListing({chainName:this.chainName,listingId:e})}async getTrade(e){return this.orderbookService.getTrade({chainName:this.chainName,tradeId:e})}async listListings(e){return this.orderbookService.listListings({chainName:this.chainName,...e})}async listTrades(e){return this.orderbookService.listTrades({chainName:this.chainName,...e})}async cancelOrders(e,t,n){return this.orderbookService.cancelOrders({chainName:this.chainName,requestBody:{account_address:t,orders:e,signature:n}})}async createListing({orderHash:e,orderComponents:t,orderSignature:n,makerFees:r}){if(1!==t.offer.length)throw new Error("Only one item can be listed at a time");if(Number(t.offer[0].itemType)!==uM.ERC721)throw new Error("Only ERC721 tokens can be listed");const i=[...t.consideration.map((e=>e.itemType))];if(!(1===new Set(i).size))throw new Error("All consideration items must be of the same type");return this.orderbookService.createListing({chainName:this.chainName,requestBody:{account_address:t.offerer,buy:[{type:Number(t.consideration[0].itemType)===uM.NATIVE?"NATIVE":"ERC20",amount:t.consideration[0].startAmount,contract_address:t.consideration[0].token}],fees:r.map((e=>({amount:e.amount,type:$P.MAKER_ECOSYSTEM,recipient_address:e.recipientAddress}))),end_at:new Date(parseInt(`${t.endTime.toString()}000`,10)).toISOString(),order_hash:e,protocol_data:{order_type:QP.order_type.FULL_RESTRICTED,zone_address:t.zone,seaport_address:this.seaportAddress,seaport_version:aM,counter:t.counter.toString()},salt:t.salt,sell:[{contract_address:t.offer[0].token,token_id:t.offer[0].identifierOrCriteria,type:"ERC721"}],signature:n,start_at:new Date(parseInt(`${t.startTime.toString()}000`,10)).toISOString()}})}}class hM{chainName;seaportAddress;orderbookClient;constructor(e,t,n){this.chainName=t,this.seaportAddress=n,this.orderbookClient=new WP({BASE:e})}create(){return new pM(this.orderbookClient.orders,this.chainName,this.seaportAddress)}}class mM{defaultSeaportContractAddress;provider;constructor(e,t){this.defaultSeaportContractAddress=e,this.provider=t}create(e,t){const n=e??aM,r=t??this.defaultSeaportContractAddress;return new JO.Seaport(this.provider,{seaportVersion:n,balanceAndApprovalChecksOnOrderCreation:!0,overrides:{contractAddress:r}})}}class yM{apiClient;seaport;orderbookConfig;constructor(e){const t={...function(e){switch(e){case ht.SANDBOX:return{seaportContractAddress:"0x7d117aA8BD6D31c4fa91722f246388f38ab1942c",zoneContractAddress:"0x8831867E347AB87FA30199C5B695F0A31604Bb52",apiEndpoint:"https://api.sandbox.immutable.com",chainName:"imtbl-zkevm-testnet",provider:new mp("https://rpc.testnet.immutable.com")};case ht.PRODUCTION:return{seaportContractAddress:"0x6c12aD6F0bD274191075Eb2E78D7dA5ba6453424",zoneContractAddress:"0x00338b92Bec262078B3e49BF12bbEA058916BF91",apiEndpoint:"https://api.immutable.com",chainName:"imtbl-zkevm-mainnet",provider:new mp("https://rpc.immutable.com")};default:return null}}(e.baseConfig.environment),...e.overrides};if(!t)throw new Error("Orderbook configuration not passed, please specify the environment under config.baseConfig.environment");this.orderbookConfig=t;const{apiEndpoint:n,chainName:r}=this.orderbookConfig;if(!n)throw new Error("API endpoint must be provided");this.apiClient=new hM(n,r,this.orderbookConfig.seaportContractAddress).create();const i=new mM(this.orderbookConfig.seaportContractAddress,this.orderbookConfig.provider);this.seaport=new fM(i,this.orderbookConfig.provider,this.orderbookConfig.seaportContractAddress,this.orderbookConfig.zoneContractAddress)}config(){return this.orderbookConfig}async getListing(e){return{result:nM((await this.apiClient.getListing(e)).result)}}async getTrade(e){return{result:rM((await this.apiClient.getTrade(e)).result)}}async listListings(e){const t=await this.apiClient.listListings(e);return{page:iM(t.page),result:t.result.map(nM)}}async listTrades(e){const t=await this.apiClient.listTrades(e);return{page:iM(t.page),result:t.result.map(rM)}}async prepareListing({makerAddress:e,sell:t,buy:n,orderExpiry:r}){return this.seaport.prepareSeaportOrder(e,t,n,new Date,r||new Date(Date.now()+63072e6))}async createListing(e){return{result:nM((await this.apiClient.createListing({...e})).result)}}async fulfillOrder(e,t,n){const r=await this.apiClient.fulfillmentData([{order_id:e,taker_address:t,fees:n.map((e=>({amount:e.amount,type:$P.TAKER_ECOSYSTEM,recipient_address:e.recipientAddress})))}]);if(r.result.unfulfillable_orders?.length>0)throw new Error(`Unable to prepare fulfillment date: ${r.result.unfulfillable_orders[0].reason}`);if(1!==r.result.fulfillable_orders?.length)throw new Error("unexpected fulfillable order result length");const i=r.result.fulfillable_orders[0].extra_data,a=r.result.fulfillable_orders[0].order;if(a.status.name!==YP.ACTIVE)throw new Error(`Cannot fulfil order that is not active. Current status: ${a.status}`);return this.seaport.fulfillOrder(a,t,i)}async fulfillBulkOrders(e,t){const n=await this.apiClient.fulfillmentData(e.map((e=>({order_id:e.listingId,taker_address:t,fees:e.takerFees.map((e=>({amount:e.amount,type:$P.TAKER_ECOSYSTEM,recipient_address:e.recipientAddress})))}))));try{return{...await this.seaport.fulfillBulkOrders(n.result.fulfillable_orders,t),fulfillableOrders:n.result.fulfillable_orders.map((e=>nM(e.order))),unfulfillableOrders:n.result.unfulfillable_orders.map((e=>({orderId:e.order_id,reason:e.reason}))),sufficientBalance:!0}}catch(e){if(String(e).includes("The fulfiller does not have the balances needed to fulfill."))return{fulfillableOrders:n.result.fulfillable_orders.map((e=>nM(e.order))),unfulfillableOrders:n.result.unfulfillable_orders.map((e=>({orderId:e.order_id,reason:e.reason}))),sufficientBalance:!1};throw e}}async prepareOrderCancellations(e){const t={name:"imtbl-order-book",chainId:(await this.orderbookConfig.provider.getNetwork()).chainId,verifyingContract:this.orderbookConfig.seaportContractAddress},n={orders:e.map((e=>({id:e})))};return{signableAction:{purpose:eM.OFF_CHAIN_CANCELLATION,type:tM.SIGNABLE,message:{domain:t,types:{CancelPayload:[{name:"orders",type:"Order[]"}],Order:[{name:"id",type:"string"}]},value:n}}}}async cancelOrders(e,t,n){return this.apiClient.cancelOrders(e,t,n)}async cancelOrdersOnChain(e,t){const n=await Promise.all(e.map((e=>this.apiClient.getListing(e))));for(const e of n){if(e.result.status.name!==YP.ACTIVE&&e.result.status.name!==YP.INACTIVE&&e.result.status.name!==YP.PENDING)throw new Error(`Cannot cancel order with status ${e.result.status}`);if(e.result.account_address!==t.toLowerCase())throw new Error(`Only account ${e.result.account_address} can cancel order ${e.result.id}`)}const r=n.map((e=>e.result)),i=r.map((e=>e.protocol_data.seaport_address));if(1!==new Set(...[i]).size)throw new Error("Cannot cancel multiple orders from different seaport contracts. Please group your orderIds accordingly");return{cancellationAction:await this.seaport.cancelOrders(r,t)}}}const gM=4e5,bM="https://api.sandbox.immutable.com".replace(/\/+$/,"");class vM{basePath;axios;configuration;constructor(e,t=bM,n=Qe){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}}class TM extends Error{field;constructor(e,t){super(t),this.field=e,this.name="RequiredError"}}const wM="https://example.com",AM=function(e,t,n){if(null==n)throw new TM(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},EM=async function(e,t,n){if(n&&n.apiKey){const r="function"==typeof n.apiKey?await n.apiKey(t):await n.apiKey;e[t]=r}},_M=async function(e,t){if(t&&t.accessToken){const n="function"==typeof t.accessToken?await t.accessToken():await t.accessToken;e.Authorization="Bearer "+n}};function IM(e,t,n=""){null!=t&&("object"==typeof t?Array.isArray(t)?t.forEach((t=>IM(e,t,n))):Object.keys(t).forEach((r=>IM(e,t[r],`${n}${""!==n?".":""}${r}`))):e.has(n)?e.append(n,t):e.set(n,t))}const RM=function(e,...t){const n=new URLSearchParams(e.search);IM(n,t),e.search=n.toString()},CM=function(e,t,n){const r="string"!=typeof e;return(r&&n&&n.isJsonMime?n.isJsonMime(t.headers["Content-Type"]):r)?JSON.stringify(void 0!==e?e:{}):e||""},OM=function(e){return e.pathname+e.search+e.hash},kM=function(e,t,n,r){return(i=t,a=n)=>{const o={...e.options,url:(r?.basePath||i.defaults.baseURL||a)+e.url};return i.request(o)}},SM=function(e){return{getActivity:async(t,n,r={})=>{AM("getActivity","chainName",t),AM("getActivity","activityId",n);const i="/v1/chains/{chain_name}/activities/{activity_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{activity_id}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};RM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:OM(a),options:s}},listActivities:async(t,n,r,i,a,o,s,u,c={})=>{AM("listActivities","chainName",t);const l="/v1/chains/{chain_name}/activities".replace("{chain_name}",encodeURIComponent(String(t))),d=new URL(l,wM);let f;e&&(f=e.baseOptions);const p={method:"GET",...f,...c},h={};void 0!==n&&(h.contract_address=n),void 0!==r&&(h.token_id=r),void 0!==i&&(h.account_address=i),void 0!==a&&(h.activity_type=a),void 0!==o&&(h.transaction_hash=o),void 0!==s&&(h.page_cursor=s),void 0!==u&&(h.page_size=u),RM(d,h);let m=f&&f.headers?f.headers:{};return p.headers={...m,...c.headers},{url:OM(d),options:p}},listActivityHistory:async(t,n,r,i,a,o,s={})=>{AM("listActivityHistory","chainName",t),AM("listActivityHistory","fromUpdatedAt",n);const u="/v1/chains/{chain_name}/activity-history".replace("{chain_name}",encodeURIComponent(String(t))),c=new URL(u,wM);let l;e&&(l=e.baseOptions);const d={method:"GET",...l,...s},f={};void 0!==n&&(f.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(f.to_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(f.contract_address=i),void 0!==a&&(f.page_cursor=a),void 0!==o&&(f.page_size=o),RM(c,f);let p=l&&l.headers?l.headers:{};return d.headers={...p,...s.headers},{url:OM(c),options:d}}}},NM=function(e){const t=SM(e);return{async getActivity(n,r,i){const a=await t.getActivity(n,r,i);return kM(a,Qe,bM,e)},async listActivities(n,r,i,a,o,s,u,c,l){const d=await t.listActivities(n,r,i,a,o,s,u,c,l);return kM(d,Qe,bM,e)},async listActivityHistory(n,r,i,a,o,s,u){const c=await t.listActivityHistory(n,r,i,a,o,s,u);return kM(c,Qe,bM,e)}}};const xM=function(e){return{listChains:async(t,n,r={})=>{const i=new URL("/v1/chains",wM);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...r},s={};void 0!==t&&(s.page_cursor=t),void 0!==n&&(s.page_size=n),RM(i,s);let u=a&&a.headers?a.headers:{};return o.headers={...u,...r.headers},{url:OM(i),options:o}}}},PM=function(e){const t=xM(e);return{async listChains(n,r,i){const a=await t.listChains(n,r,i);return kM(a,Qe,bM,e)}}};const MM=function(e){return{getCollection:async(t,n,r={})=>{AM("getCollection","contractAddress",t),AM("getCollection","chainName",n);const i="/v1/chains/{chain_name}/collections/{contract_address}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};RM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:OM(a),options:s}},listCollections:async(t,n,r,i,a,o={})=>{AM("listCollections","chainName",t);const s="/v1/chains/{chain_name}/collections".replace("{chain_name}",encodeURIComponent(String(t))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};n&&(d.contract_address=n),void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}},listCollectionsByNFTOwner:async(t,n,r,i,a={})=>{AM("listCollectionsByNFTOwner","accountAddress",t),AM("listCollectionsByNFTOwner","chainName",n);const o="/v1/chains/{chain_name}/accounts/{account_address}/collections".replace("{account_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),s=new URL(o,wM);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),RM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:OM(s),options:c}},refreshCollectionMetadata:async(t,n,r,i={})=>{AM("refreshCollectionMetadata","contractAddress",t),AM("refreshCollectionMetadata","chainName",n),AM("refreshCollectionMetadata","refreshCollectionMetadataRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await EM(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",RM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=CM(r,u,e),{url:OM(o),options:u}}}},BM=function(e){const t=MM(e);return{async getCollection(n,r,i){const a=await t.getCollection(n,r,i);return kM(a,Qe,bM,e)},async listCollections(n,r,i,a,o,s){const u=await t.listCollections(n,r,i,a,o,s);return kM(u,Qe,bM,e)},async listCollectionsByNFTOwner(n,r,i,a,o){const s=await t.listCollectionsByNFTOwner(n,r,i,a,o);return kM(s,Qe,bM,e)},async refreshCollectionMetadata(n,r,i,a){const o=await t.refreshCollectionMetadata(n,r,i,a);return kM(o,Qe,bM,e)}}};const DM=function(e){return{getMetadata:async(t,n,r,i={})=>{AM("getMetadata","chainName",t),AM("getMetadata","contractAddress",n),AM("getMetadata","metadataId",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/metadata/{metadata_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))).replace("{metadata_id}",encodeURIComponent(String(r))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};RM(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:OM(o),options:u}},listMetadata:async(t,n,r,i,a,o={})=>{AM("listMetadata","chainName",t),AM("listMetadata","contractAddress",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/metadata".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}},listMetadataForChain:async(t,n,r,i,a={})=>{AM("listMetadataForChain","chainName",t);const o="/v1/chains/{chain_name}/metadata".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,wM);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),RM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:OM(s),options:c}},refreshMetadataByID:async(t,n,r,i={})=>{AM("refreshMetadataByID","chainName",t),AM("refreshMetadataByID","contractAddress",n),AM("refreshMetadataByID","refreshMetadataByIDRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/metadata/refresh-metadata".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await EM(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",RM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=CM(r,u,e),{url:OM(o),options:u}},refreshNFTMetadataByTokenID:async(t,n,r,i={})=>{AM("refreshNFTMetadataByTokenID","contractAddress",t),AM("refreshNFTMetadataByTokenID","chainName",n),AM("refreshNFTMetadataByTokenID","refreshNFTMetadataByTokenIDRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/nfts/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await EM(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",RM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=CM(r,u,e),{url:OM(o),options:u}}}},FM=function(e){const t=DM(e);return{async getMetadata(n,r,i,a){const o=await t.getMetadata(n,r,i,a);return kM(o,Qe,bM,e)},async listMetadata(n,r,i,a,o,s){const u=await t.listMetadata(n,r,i,a,o,s);return kM(u,Qe,bM,e)},async listMetadataForChain(n,r,i,a,o){const s=await t.listMetadataForChain(n,r,i,a,o);return kM(s,Qe,bM,e)},async refreshMetadataByID(n,r,i,a){const o=await t.refreshMetadataByID(n,r,i,a);return kM(o,Qe,bM,e)},async refreshNFTMetadataByTokenID(n,r,i,a){const o=await t.refreshNFTMetadataByTokenID(n,r,i,a);return kM(o,Qe,bM,e)}}};const LM=function(e){return{listAllNFTOwners:async(t,n,r,i,a={})=>{AM("listAllNFTOwners","chainName",t);const o="/v1/chains/{chain_name}/nft-owners".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,wM);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),RM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:OM(s),options:c}},listNFTOwners:async(t,n,r,i,a,o={})=>{AM("listNFTOwners","contractAddress",t),AM("listNFTOwners","tokenId",n),AM("listNFTOwners","chainName",r);const s="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}/owners".replace("{contract_address}",encodeURIComponent(String(t))).replace("{token_id}",encodeURIComponent(String(n))).replace("{chain_name}",encodeURIComponent(String(r))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}},listOwnersByContractAddress:async(t,n,r,i,a,o={})=>{AM("listOwnersByContractAddress","contractAddress",t),AM("listOwnersByContractAddress","chainName",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/owners".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}}}},UM=function(e){const t=LM(e);return{async listAllNFTOwners(n,r,i,a,o){const s=await t.listAllNFTOwners(n,r,i,a,o);return kM(s,Qe,bM,e)},async listNFTOwners(n,r,i,a,o,s){const u=await t.listNFTOwners(n,r,i,a,o,s);return kM(u,Qe,bM,e)},async listOwnersByContractAddress(n,r,i,a,o,s){const u=await t.listOwnersByContractAddress(n,r,i,a,o,s);return kM(u,Qe,bM,e)}}};const qM=function(e){return{getNFT:async(t,n,r,i={})=>{AM("getNFT","contractAddress",t),AM("getNFT","tokenId",n),AM("getNFT","chainName",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{token_id}",encodeURIComponent(String(n))).replace("{chain_name}",encodeURIComponent(String(r))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};RM(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:OM(o),options:u}},listAllNFTs:async(t,n,r,i,a={})=>{AM("listAllNFTs","chainName",t);const o="/v1/chains/{chain_name}/nfts".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,wM);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),RM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:OM(s),options:c}},listNFTs:async(t,n,r,i,a,o={})=>{AM("listNFTs","contractAddress",t),AM("listNFTs","chainName",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/nfts".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}},listNFTsByAccountAddress:async(t,n,r,i,a,o={})=>{AM("listNFTsByAccountAddress","accountAddress",t),AM("listNFTsByAccountAddress","chainName",n);const s="/v1/chains/{chain_name}/accounts/{account_address}/nfts".replace("{account_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.contract_address=r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}}}},jM=function(e){const t=qM(e);return{async getNFT(n,r,i,a){const o=await t.getNFT(n,r,i,a);return kM(o,Qe,bM,e)},async listAllNFTs(n,r,i,a,o){const s=await t.listAllNFTs(n,r,i,a,o);return kM(s,Qe,bM,e)},async listNFTs(n,r,i,a,o,s){const u=await t.listNFTs(n,r,i,a,o,s);return kM(u,Qe,bM,e)},async listNFTsByAccountAddress(n,r,i,a,o,s){const u=await t.listNFTsByAccountAddress(n,r,i,a,o,s);return kM(u,Qe,bM,e)}}};const GM=function(e){return{cancelOrders:async(t,n,r={})=>{AM("cancelOrders","chainName",t),AM("cancelOrders","cancelOrdersRequestBody",n);const i="/v1/chains/{chain_name}/orders/cancel".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",RM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=CM(n,s,e),{url:OM(a),options:s}},createListing:async(t,n,r={})=>{AM("createListing","chainName",t),AM("createListing","createListingRequestBody",n);const i="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",RM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=CM(n,s,e),{url:OM(a),options:s}},fulfillmentData:async(t,n,r={})=>{AM("fulfillmentData","chainName",t),AM("fulfillmentData","fulfillmentDataRequest",n);const i="/v1/chains/{chain_name}/orders/fulfillment-data".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",RM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=CM(n,s,e),{url:OM(a),options:s}},getListing:async(t,n,r={})=>{AM("getListing","chainName",t),AM("getListing","listingId",n);const i="/v1/chains/{chain_name}/orders/listings/{listing_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{listing_id}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};RM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:OM(a),options:s}},getTrade:async(t,n,r={})=>{AM("getTrade","chainName",t),AM("getTrade","tradeId",n);const i="/v1/chains/{chain_name}/trades/{trade_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{trade_id}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};RM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:OM(a),options:s}},listListings:async(t,n,r,i,a,o,s,u,c,l,d,f,p={})=>{AM("listListings","chainName",t);const h="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),m=new URL(h,wM);let y;e&&(y=e.baseOptions);const g={method:"GET",...y,...p},b={};void 0!==n&&(b.status=n),void 0!==r&&(b.sell_item_contract_address=r),void 0!==i&&(b.buy_item_contract_address=i),void 0!==a&&(b.account_address=a),void 0!==o&&(b.sell_item_metadata_id=o),void 0!==s&&(b.sell_item_token_id=s),void 0!==u&&(b.from_updated_at=u instanceof Date?u.toISOString():u),void 0!==c&&(b.page_size=c),void 0!==l&&(b.sort_by=l),void 0!==d&&(b.sort_direction=d),void 0!==f&&(b.page_cursor=f),RM(m,b);let v=y&&y.headers?y.headers:{};return g.headers={...v,...p.headers},{url:OM(m),options:g}},listTrades:async(t,n,r,i,a,o,s,u={})=>{AM("listTrades","chainName",t);const c="/v1/chains/{chain_name}/trades".replace("{chain_name}",encodeURIComponent(String(t))),l=new URL(c,wM);let d;e&&(d=e.baseOptions);const f={method:"GET",...d,...u},p={};void 0!==n&&(p.account_address=n),void 0!==r&&(p.from_indexed_at=r instanceof Date?r.toISOString():r),void 0!==i&&(p.page_size=i),void 0!==a&&(p.sort_by=a),void 0!==o&&(p.sort_direction=o),void 0!==s&&(p.page_cursor=s),RM(l,p);let h=d&&d.headers?d.headers:{};return f.headers={...h,...u.headers},{url:OM(l),options:f}}}},HM=function(e){const t=GM(e);return{async cancelOrders(n,r,i){const a=await t.cancelOrders(n,r,i);return kM(a,Qe,bM,e)},async createListing(n,r,i){const a=await t.createListing(n,r,i);return kM(a,Qe,bM,e)},async fulfillmentData(n,r,i){const a=await t.fulfillmentData(n,r,i);return kM(a,Qe,bM,e)},async getListing(n,r,i){const a=await t.getListing(n,r,i);return kM(a,Qe,bM,e)},async getTrade(n,r,i){const a=await t.getTrade(n,r,i);return kM(a,Qe,bM,e)},async listListings(n,r,i,a,o,s,u,c,l,d,f,p,h){const m=await t.listListings(n,r,i,a,o,s,u,c,l,d,f,p,h);return kM(m,Qe,bM,e)},async listTrades(n,r,i,a,o,s,u,c){const l=await t.listTrades(n,r,i,a,o,s,u,c);return kM(l,Qe,bM,e)}}};const zM=function(e){return{createCounterfactualAddress:async(t,n,r={})=>{AM("createCounterfactualAddress","chainName",t),AM("createCounterfactualAddress","createCounterfactualAddressRequest",n);const i="/v1/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};await _M(u,e),u["Content-Type"]="application/json",RM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=CM(n,s,e),{url:OM(a),options:s}},createCounterfactualAddressDeprecated:async(t,n={})=>{AM("createCounterfactualAddressDeprecated","createCounterfactualAddressRequestDeprecated",t);const r=new URL("/passport-mr/v1/counterfactual-address",wM);let i;e&&(i=e.baseOptions);const a={method:"POST",...i,...n},o={};await _M(o,e),o["Content-Type"]="application/json",RM(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=CM(t,a,e),{url:OM(r),options:a}},getContractAbi:async(t,n,r,i={})=>{AM("getContractAbi","chainName",t),AM("getContractAbi","contractAddress",n),AM("getContractAbi","methodId",r);const a="/v1/chains/{chain_name}/passport/transaction-metadata".replace("{chain_name}",encodeURIComponent(String(t))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i},c={},l={};await _M(c,e),void 0!==n&&(l.contract_address=n),void 0!==r&&(l.method_id=r),RM(o,l);let d=s&&s.headers?s.headers:{};return u.headers={...c,...d,...i.headers},{url:OM(o),options:u}},getLinkedAddresses:async(t,n,r={})=>{AM("getLinkedAddresses","userId",t),AM("getLinkedAddresses","chainName",n);const i="/v1/chains/{chain_name}/passport/users/{user_id}/linked-addresses".replace("{user_id}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r},u={};await _M(u,e),RM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},{url:OM(a),options:s}},getLinkedAddressesDeprecated:async(t,n={})=>{AM("getLinkedAddressesDeprecated","userId",t);const r="/passport-mr/v1/users/{userId}/linked-addresses".replace("{userId}",encodeURIComponent(String(t))),i=new URL(r,wM);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...n},s={};await _M(s,e),RM(i,{});let u=a&&a.headers?a.headers:{};return o.headers={...s,...u,...n.headers},{url:OM(i),options:o}}}},WM=function(e){const t=zM(e);return{async createCounterfactualAddress(n,r,i){const a=await t.createCounterfactualAddress(n,r,i);return kM(a,Qe,bM,e)},async createCounterfactualAddressDeprecated(n,r){const i=await t.createCounterfactualAddressDeprecated(n,r);return kM(i,Qe,bM,e)},async getContractAbi(n,r,i,a){const o=await t.getContractAbi(n,r,i,a);return kM(o,Qe,bM,e)},async getLinkedAddresses(n,r,i){const a=await t.getLinkedAddresses(n,r,i);return kM(a,Qe,bM,e)},async getLinkedAddressesDeprecated(n,r){const i=await t.getLinkedAddressesDeprecated(n,r);return kM(i,Qe,bM,e)}}};const VM=function(e){return{getERC20Token:async(t,n,r={})=>{AM("getERC20Token","contractAddress",t),AM("getERC20Token","chainName",n);const i="/v1/chains/{chain_name}/tokens/{contract_address}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};RM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:OM(a),options:s}},listERC20Tokens:async(t,n,r,i,a={})=>{AM("listERC20Tokens","chainName",t);const o="/v1/chains/{chain_name}/tokens".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,wM);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),RM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:OM(s),options:c}}}},KM=function(e){const t=VM(e);return{async getERC20Token(n,r,i){const a=await t.getERC20Token(n,r,i);return kM(a,Qe,bM,e)},async listERC20Tokens(n,r,i,a,o){const s=await t.listERC20Tokens(n,r,i,a,o);return kM(s,Qe,bM,e)}}};var XM=Object.freeze({__proto__:null,APIError400AllOfCodeEnum:{ValidationError:"VALIDATION_ERROR"},APIError401AllOfCodeEnum:{UnauthorisedRequest:"UNAUTHORISED_REQUEST"},APIError403AllOfCodeEnum:{AuthenticationError:"AUTHENTICATION_ERROR"},APIError404AllOfCodeEnum:{ResourceNotFound:"RESOURCE_NOT_FOUND"},APIError429AllOfCodeEnum:{TooManyRequestsError:"TOO_MANY_REQUESTS_ERROR"},APIError500AllOfCodeEnum:{InternalServerError:"INTERNAL_SERVER_ERROR"},APIError501AllOfCodeEnum:{NotImplementedError:"NOT_IMPLEMENTED_ERROR"},ActiveOrderStatusNameEnum:{Active:"ACTIVE"},ActivitiesApi:class extends vM{getActivity(e,t){return NM(this.configuration).getActivity(e.chainName,e.activityId,t).then((e=>e(this.axios,this.basePath)))}listActivities(e,t){return NM(this.configuration).listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listActivityHistory(e,t){return NM(this.configuration).listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ActivitiesApiAxiosParamCreator:SM,ActivitiesApiFactory:function(e,t,n){const r=NM(e);return{getActivity:(e,i)=>r.getActivity(e.chainName,e.activityId,i).then((e=>e(n,t))),listActivities:(e,i)=>r.listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listActivityHistory:(e,i)=>r.listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ActivitiesApiFp:NM,ActivityType:{Mint:"mint",Burn:"burn",Transfer:"transfer",Sale:"sale",Deposit:"deposit",Withdrawal:"withdrawal"},CancelledOrderStatusCancellationTypeEnum:{OnChain:"ON_CHAIN",OffChain:"OFF_CHAIN"},CancelledOrderStatusNameEnum:{Cancelled:"CANCELLED"},ChainsApi:class extends vM{listChains(e={},t){return PM(this.configuration).listChains(e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ChainsApiAxiosParamCreator:xM,ChainsApiFactory:function(e,t,n){const r=PM(e);return{listChains:(e={},i)=>r.listChains(e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ChainsApiFp:PM,CollectionContractType:{Erc721:"ERC721",Erc1155:"ERC1155"},CollectionsApi:class extends vM{getCollection(e,t){return BM(this.configuration).getCollection(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listCollections(e,t){return BM(this.configuration).listCollections(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listCollectionsByNFTOwner(e,t){return BM(this.configuration).listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshCollectionMetadata(e,t){return BM(this.configuration).refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,t).then((e=>e(this.axios,this.basePath)))}},CollectionsApiAxiosParamCreator:MM,CollectionsApiFactory:function(e,t,n){const r=BM(e);return{getCollection:(e,i)=>r.getCollection(e.contractAddress,e.chainName,i).then((e=>e(n,t))),listCollections:(e,i)=>r.listCollections(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listCollectionsByNFTOwner:(e,i)=>r.listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),refreshCollectionMetadata:(e,i)=>r.refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,i).then((e=>e(n,t)))}},CollectionsApiFp:BM,Configuration:class{apiKey;username;password;accessToken;basePath;baseOptions;formDataCtor;constructor(e={}){this.apiKey=e.apiKey,this.username=e.username,this.password=e.password,this.accessToken=e.accessToken,this.basePath=e.basePath,this.baseOptions=e.baseOptions,this.formDataCtor=e.formDataCtor}isJsonMime(e){const t=new RegExp("^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$","i");return null!==e&&(t.test(e)||"application/json-patch+json"===e.toLowerCase())}},ERC1155ItemTypeEnum:{Erc1155:"ERC1155"},ERC20ItemTypeEnum:{Erc20:"ERC20"},ERC721ItemTypeEnum:{Erc721:"ERC721"},ExpiredOrderStatusNameEnum:{Expired:"EXPIRED"},FailedOrderCancellationReasonCodeEnum:{Filled:"FILLED"},FeeTypeEnum:{Royalty:"ROYALTY",MakerEcosystem:"MAKER_ECOSYSTEM",TakerEcosystem:"TAKER_ECOSYSTEM",Protocol:"PROTOCOL"},FilledOrderStatusNameEnum:{Filled:"FILLED"},GetContractAbiResTransactionTypeEnum:{Erc20Approve:"ERC20_APPROVE"},InactiveOrderStatusNameEnum:{Inactive:"INACTIVE"},ListListingsSortByEnum:{CreatedAt:"created_at",UpdatedAt:"updated_at",BuyItemAmount:"buy_item_amount"},ListListingsSortDirectionEnum:{Asc:"asc",Desc:"desc"},ListTradesSortByEnum:{IndexedAt:"indexed_at"},ListTradesSortDirectionEnum:{Asc:"asc",Desc:"desc"},MetadataApi:class extends vM{getMetadata(e,t){return FM(this.configuration).getMetadata(e.chainName,e.contractAddress,e.metadataId,t).then((e=>e(this.axios,this.basePath)))}listMetadata(e,t){return FM(this.configuration).listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listMetadataForChain(e,t){return FM(this.configuration).listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshMetadataByID(e,t){return FM(this.configuration).refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,t).then((e=>e(this.axios,this.basePath)))}refreshNFTMetadataByTokenID(e,t){return FM(this.configuration).refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,t).then((e=>e(this.axios,this.basePath)))}},MetadataApiAxiosParamCreator:DM,MetadataApiFactory:function(e,t,n){const r=FM(e);return{getMetadata:(e,i)=>r.getMetadata(e.chainName,e.contractAddress,e.metadataId,i).then((e=>e(n,t))),listMetadata:(e,i)=>r.listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listMetadataForChain:(e,i)=>r.listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),refreshMetadataByID:(e,i)=>r.refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,i).then((e=>e(n,t))),refreshNFTMetadataByTokenID:(e,i)=>r.refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,i).then((e=>e(n,t)))}},MetadataApiFp:FM,MintRequestStatus:{Pending:"pending",Succeeded:"succeeded",Failed:"failed"},NFTContractType:{Erc721:"ERC721"},NativeItemTypeEnum:{Native:"NATIVE",Erc20:"ERC20",Erc721:"ERC721",Erc1155:"ERC1155"},NftOwnersApi:class extends vM{listAllNFTOwners(e,t){return UM(this.configuration).listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTOwners(e,t){return UM(this.configuration).listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listOwnersByContractAddress(e,t){return UM(this.configuration).listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftOwnersApiAxiosParamCreator:LM,NftOwnersApiFactory:function(e,t,n){const r=UM(e);return{listAllNFTOwners:(e,i)=>r.listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTOwners:(e,i)=>r.listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listOwnersByContractAddress:(e,i)=>r.listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},NftOwnersApiFp:UM,NftsApi:class extends vM{getNFT(e,t){return jM(this.configuration).getNFT(e.contractAddress,e.tokenId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listAllNFTs(e,t){return jM(this.configuration).listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTs(e,t){return jM(this.configuration).listNFTs(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTsByAccountAddress(e,t){return jM(this.configuration).listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftsApiAxiosParamCreator:qM,NftsApiFactory:function(e,t,n){const r=jM(e);return{getNFT:(e,i)=>r.getNFT(e.contractAddress,e.tokenId,e.chainName,i).then((e=>e(n,t))),listAllNFTs:(e,i)=>r.listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTs:(e,i)=>r.listNFTs(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTsByAccountAddress:(e,i)=>r.listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},NftsApiFp:jM,OrderStatusName:{Pending:"PENDING",Active:"ACTIVE",Inactive:"INACTIVE",Filled:"FILLED",Expired:"EXPIRED",Cancelled:"CANCELLED"},OrderTypeEnum:{Listing:"LISTING"},OrdersApi:class extends vM{cancelOrders(e,t){return HM(this.configuration).cancelOrders(e.chainName,e.cancelOrdersRequestBody,t).then((e=>e(this.axios,this.basePath)))}createListing(e,t){return HM(this.configuration).createListing(e.chainName,e.createListingRequestBody,t).then((e=>e(this.axios,this.basePath)))}fulfillmentData(e,t){return HM(this.configuration).fulfillmentData(e.chainName,e.fulfillmentDataRequest,t).then((e=>e(this.axios,this.basePath)))}getListing(e,t){return HM(this.configuration).getListing(e.chainName,e.listingId,t).then((e=>e(this.axios,this.basePath)))}getTrade(e,t){return HM(this.configuration).getTrade(e.chainName,e.tradeId,t).then((e=>e(this.axios,this.basePath)))}listListings(e,t){return HM(this.configuration).listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then((e=>e(this.axios,this.basePath)))}listTrades(e,t){return HM(this.configuration).listTrades(e.chainName,e.accountAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then((e=>e(this.axios,this.basePath)))}},OrdersApiAxiosParamCreator:GM,OrdersApiFactory:function(e,t,n){const r=HM(e);return{cancelOrders:(e,i)=>r.cancelOrders(e.chainName,e.cancelOrdersRequestBody,i).then((e=>e(n,t))),createListing:(e,i)=>r.createListing(e.chainName,e.createListingRequestBody,i).then((e=>e(n,t))),fulfillmentData:(e,i)=>r.fulfillmentData(e.chainName,e.fulfillmentDataRequest,i).then((e=>e(n,t))),getListing:(e,i)=>r.getListing(e.chainName,e.listingId,i).then((e=>e(n,t))),getTrade:(e,i)=>r.getTrade(e.chainName,e.tradeId,i).then((e=>e(n,t))),listListings:(e,i)=>r.listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then((e=>e(n,t))),listTrades:(e,i)=>r.listTrades(e.chainName,e.accountAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then((e=>e(n,t)))}},OrdersApiFp:HM,PassportApi:class extends vM{createCounterfactualAddress(e,t){return WM(this.configuration).createCounterfactualAddress(e.chainName,e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}createCounterfactualAddressDeprecated(e,t){return WM(this.configuration).createCounterfactualAddressDeprecated(e.createCounterfactualAddressRequestDeprecated,t).then((e=>e(this.axios,this.basePath)))}getContractAbi(e,t){return WM(this.configuration).getContractAbi(e.chainName,e.contractAddress,e.methodId,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddresses(e,t){return WM(this.configuration).getLinkedAddresses(e.userId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddressesDeprecated(e,t){return WM(this.configuration).getLinkedAddressesDeprecated(e.userId,t).then((e=>e(this.axios,this.basePath)))}},PassportApiAxiosParamCreator:zM,PassportApiFactory:function(e,t,n){const r=WM(e);return{createCounterfactualAddress:(e,i)=>r.createCounterfactualAddress(e.chainName,e.createCounterfactualAddressRequest,i).then((e=>e(n,t))),createCounterfactualAddressDeprecated:(e,i)=>r.createCounterfactualAddressDeprecated(e.createCounterfactualAddressRequestDeprecated,i).then((e=>e(n,t))),getContractAbi:(e,i)=>r.getContractAbi(e.chainName,e.contractAddress,e.methodId,i).then((e=>e(n,t))),getLinkedAddresses:(e,i)=>r.getLinkedAddresses(e.userId,e.chainName,i).then((e=>e(n,t))),getLinkedAddressesDeprecated:(e,i)=>r.getLinkedAddressesDeprecated(e.userId,i).then((e=>e(n,t)))}},PassportApiFp:WM,PendingOrderStatusNameEnum:{Pending:"PENDING"},ProtocolDataOrderTypeEnum:{FullRestricted:"FULL_RESTRICTED"},SaleFeeTypeEnum:{Royalty:"ROYALTY"},TokenContractType:{Erc20:"ERC20"},TokensApi:class extends vM{getERC20Token(e,t){return KM(this.configuration).getERC20Token(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listERC20Tokens(e,t){return KM(this.configuration).listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},TokensApiAxiosParamCreator:VM,TokensApiFactory:function(e,t,n){const r=KM(e);return{getERC20Token:(e,i)=>r.getERC20Token(e.contractAddress,e.chainName,i).then((e=>e(n,t))),listERC20Tokens:(e,i)=>r.listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},TokensApiFp:KM});class JM extends Error{code;details;link;traceId;constructor({message:e,code:t,details:n,link:r,trace_id:i}){super(e),this.code=t,this.details=n,this.link=r,this.traceId=i}}const YM={sdkVersion:"ts-immutable-sdk-multi-rollup-api-client-0.41.1"},QM=({baseConfig:e,basePath:t,headers:n})=>{if(!t.trim())throw Error("basePath can not be empty");const r={...e,basePath:t,baseOptions:{headers:{...n||{},...YM}}};return new XM.Configuration(r)};class $M{apiConfig;baseConfig;constructor({baseConfig:e,overrides:t}){if(this.baseConfig=e,t)this.apiConfig=QM(t);else switch(e.environment){case ht.SANDBOX:this.apiConfig=QM({basePath:"https://api.sandbox.immutable.com",baseConfig:e});break;case ht.PRODUCTION:this.apiConfig=QM({basePath:"https://api.immutable.com",baseConfig:e});break;default:this.apiConfig=QM({basePath:"https://api.sandbox.immutable.com",baseConfig:e})}}}function ZM(e){if(Qe.isAxiosError(e)&&e.response){const t=e.response.data;return t.code&&t.message?new JM({code:t.code,message:t.message,details:t.details||null,link:t.link||"",trace_id:t.trace_id||""}):new JM({code:e.code??e.response?.status.toString()??"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}return new JM({code:"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}class eB{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;constructor(e){this.config=new $M(e),this.activities=new XM.ActivitiesApi(this.config.apiConfig),this.chains=new XM.ChainsApi(this.config.apiConfig),this.collections=new XM.CollectionsApi(this.config.apiConfig),this.nfts=new XM.NftsApi(this.config.apiConfig),this.nftOwners=new XM.NftOwnersApi(this.config.apiConfig),this.tokens=new XM.TokensApi(this.config.apiConfig),this.metadata=new XM.MetadataApi(this.config.apiConfig)}async listActivities(e){return await this.activities.listActivities(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listActivityHistory(e){return await this.activities.listActivityHistory(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async getActivity(e){return await this.activities.getActivity(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listChains(e){return await this.chains.listChains(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listCollections(e){return await this.collections.listCollections(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listCollectionsByNFTOwner(e){return await this.collections.listCollectionsByNFTOwner(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async getCollection(e){return await this.collections.getCollection(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async getNFT(e){return await this.nfts.getNFT(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTs(e){return await this.nfts.listNFTs(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTsByAccountAddress(e){return await this.nfts.listNFTsByAccountAddress(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listAllNFTs(e){return await this.nfts.listAllNFTs(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTOwners(e){return await this.nftOwners.listNFTOwners(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTOwnersByContractAddress(e){return await this.nftOwners.listOwnersByContractAddress(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listAllNFTOwners(e){return await this.nftOwners.listAllNFTOwners(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listTokens(e){return await this.tokens.listERC20Tokens(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async getToken(e){return await this.tokens.getERC20Token(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async getMetadata(e){return await this.metadata.getMetadata(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTMetadataByContractAddress(e){return await this.metadata.listMetadata(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTMetadataByChain(e){return await this.metadata.listMetadataForChain(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async refreshCollectionMetadata(e){return await this.collections.refreshCollectionMetadata(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async refreshNFTMetadata(e){return await this.metadata.refreshNFTMetadataByTokenID(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async refreshStackedMetadata(e){return await this.metadata.refreshMetadataByID(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}}function tB(t,n,r,i){const a=r.get(t),o=r.get(n);if(!a)throw new om(`Chain:${t} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(!o)throw new om(`Chain:${n} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);let s=MT;i.isDevelopment&&(s=PT),i.isProduction&&(s=BT);const u=new cw({baseConfig:new mt({environment:i.environment}),bridgeInstance:s,rootProvider:a,childProvider:o});return new rw(u)}async function nB(e,t){const n=await t.remote.getConfig("dex");return new KO({chainId:e,baseConfig:new mt({environment:t.environment}),overrides:n?.overrides})}function rB(e){return new yM({baseConfig:{environment:e.environment}})}function iB(e){return new eB({baseConfig:{environment:e.environment}})}const aB="0x0000000000000000000000000000000000000001",oB=18;async function sB(t,n){const r=km(n),i=Sm(n);if(!t.get(r))throw new Error(`Missing JsonRpcProvider for chain id: ${r}`);try{const a=tB(r,i,t,n),o=await async function(e,t,n,r){const i=t===km(r)?JT.DEPOSIT:JT.WITHDRAW;return await e.getFee({action:i,gasMultiplier:1.1,sourceChainId:t.toString(),destinationChainId:n.toString()})}(a,r,i,n);return{gasEstimateType:e.GasEstimateType.BRIDGE_TO_L2,fees:o,token:n.networkMap.get(r)?.nativeCurrency}}catch{return{gasEstimateType:e.GasEstimateType.BRIDGE_TO_L2,fees:{sourceChainGas:ur.from(0),bridgeFee:ur.from(0),imtblFee:ur.from(0),totalFees:ur.from(0)},token:n.networkMap.get(r)?.nativeCurrency}}}async function uB(t,n,r){switch(t.gasEstimateType){case e.GasEstimateType.BRIDGE_TO_L2:return await sB(n,r);case e.GasEstimateType.SWAP:return await async function(t){const n=Sm(t),r=await t.remote.getConfig("gasEstimateTokens"),{inAddress:i,outAddress:a}=r[n].swapAddresses;try{const r=await nB(n,t),{swap:o}=await r.getUnsignedSwapTxFromAmountIn(aB,i,a,ur.from(Dh("1",oB)));return o.gasFeeEstimate?{gasEstimateType:e.GasEstimateType.SWAP,fees:{totalFees:o.gasFeeEstimate.value?ur.from(o.gasFeeEstimate.value):void 0,token:{address:o.gasFeeEstimate.token.address,symbol:o.gasFeeEstimate.token.symbol??"",name:o.gasFeeEstimate.token.name??"",decimals:o.gasFeeEstimate.token.decimals??oB}}}:{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}catch{return{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}}(r);default:throw new om("Invalid type provided for gasEstimateType",e.CheckoutErrorType.INVALID_GAS_ESTIMATE_TYPE)}}const cB=t=>(t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC721)return void r.push(t);const{contractAddress:a,spenderAddress:o,id:s}=t,u=`${a}${o}${s}`;n.get(u)||n.set(u,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC20)return void r.push(t);const{tokenAddress:a,spenderAddress:o,amount:s}=t,u=`${a}${o}`,c=n.get(u);c&&c.type===e.ItemType.ERC20?c.amount=ur.from(c.amount).add(s):n.set(u,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.NATIVE)return void r.push(t);const{amount:a}=t,o=n.get(i);o&&o.type===e.ItemType.NATIVE?o.amount=ur.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),lB=async(t,n,r,i)=>{try{const e=new Rl(r,JSON.stringify(Em),t);return await e.allowance(n,i)}catch(t){throw new om("Failed to get the allowance for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r})}},dB=async(t,n,r,i,a)=>{try{const e=new Rl(r,JSON.stringify(Em),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch{throw new om("Failed to get the approval transaction for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r})}},fB=async(t,n,r,i)=>{try{const e=new Rl(r,JSON.stringify(_m),t);return await e.isApprovedForAll(n,i)}catch(t){throw new om("Failed to check approval for all ERC721s of collection",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{ownerAddress:n,contractAddress:r,spenderAddress:i})}},pB=async(t,n,r,i,a)=>{try{const e=new Rl(r,JSON.stringify(_m),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch(t){throw new om("Failed to get the approval transaction for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:a.toString(),contractAddress:r,spenderAddress:i,ownerAddress:n})}},hB=async(t,n,r)=>{try{const e=new Rl(n,JSON.stringify(_m),t);return await e.getApproved(r)}catch(t){throw new om("Failed to get approved address for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:r.toString(),contractAddress:n})}},mB=(t,n)=>{const r=parseInt(t,10);if(Number.isNaN(r))throw new om("Invalid ERC721 ID",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:t,contractAddress:n});return r},yB=async(t,n,r)=>{let i=!0;const a=[],o=new Map,s=new Map,u=new Map,c=new Map,l=await(async(t,n,r)=>{const i=new Map,a=new Map;for(const o of n){if(o.type!==e.ItemType.ERC721)continue;const{contractAddress:n,spenderAddress:s}=o,u=`${n}-${s}`;i.set(u,!1),a.has(u)||a.set(u,fB(t,r,n,s))}const o=await Promise.all(a.values()),s=Array.from(a.keys());return o.forEach(((e,t)=>{i.set(s[t],e)})),i})(t,r,n);for(const n of r){if(n.type!==e.ItemType.ERC721)continue;const{contractAddress:r,id:i,spenderAddress:u}=n,c=`${r}-${u}`;if(l.get(c)){a.push({sufficient:!0,itemRequirement:n});continue}const d=`${r}-${i}`,f=mB(i,r);o.set(d,n),s.set(d,hB(t,r,f))}const d=await Promise.all(s.values()),f=Array.from(s.keys());for(let r=0;r<d.length;r++){const s=o.get(f[r]);if(!s||s.type!==e.ItemType.ERC721)continue;if(d[r]===s.spenderAddress){a.push({sufficient:!0,itemRequirement:s});continue}i=!1;const{contractAddress:l,id:p,spenderAddress:h}=s,m=`${l}-${p}`,y=mB(p,l);u.set(m,{type:e.ItemType.ERC721,sufficient:!1,itemRequirement:s,approvalTransaction:void 0}),c.set(m,pB(t,n,l,h,y))}const p=await Promise.all(c.values()),h=Array.from(c.keys());return p.forEach(((e,t)=>{const n=u.get(h[t]);n&&(n.sufficient||(n.approvalTransaction=e))})),{sufficient:i,allowances:a.concat(Array.from(u.values()))}},gB=t=>(t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC721)return void r.push(t);const{contractAddress:a,id:o}=t,s=`${a}${o}`;n.get(s)||n.set(s,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC20)return void r.push(t);const{tokenAddress:a,amount:o}=t,s=`${a}`,u=n.get(s);u&&u.type===e.ItemType.ERC20?u.amount=ur.from(u.amount).add(o):n.set(s,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.NATIVE)return void r.push(t);const{amount:a}=t,o=n.get(i);o&&o.type===e.ItemType.NATIVE?o.amount=ur.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),bB=async(t,n,r,i)=>{try{const a=new Map;(t=>t.map((t=>{switch(t.type){case e.ItemType.ERC20:return{address:t.tokenAddress};case e.ItemType.NATIVE:return{address:hm};case e.ItemType.ERC721:default:return{address:t.contractAddress}}})))(i).forEach((e=>{e.address&&a.set(e.address.toLocaleLowerCase(),e)}));const{balances:o}=await Hm(t,n,r,Sm(t));return o.filter((e=>a.get((e.token.address||hm).toLocaleLowerCase())))}catch(t){throw new om("Failed to get balances",e.CheckoutErrorType.GET_BALANCE_ERROR)}},vB=async(t,n,r,i)=>{const a=gB(i),o=[],s=[];if(a.forEach((t=>{switch(t.type){case e.ItemType.ERC20:case e.ItemType.NATIVE:o.push(t);break;case e.ItemType.ERC721:s.push(t)}})),0===s.length&&0===o.length)throw new om("Unsupported item requirement balance check",e.CheckoutErrorType.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR);const u=[];o.length>0&&u.push(bB(t,n,r,a)),s.length>0&&u.push((async(t,n,r)=>{const i=[],a=new Map,o=new Map;r.forEach((n=>{if(n.type!==e.ItemType.ERC721)return;const r=new Rl(n.contractAddress,JSON.stringify(_m),t);a.set(n.contractAddress,n),o.set(n.contractAddress,r.ownerOf(n.id))}));try{const t=await Promise.all(o.values()),r=Array.from(o.keys());t.forEach(((t,o)=>{const s=a.get(r[o]);let u=0;s&&xm(n,t)&&(u=1),i.push({type:e.ItemType.ERC721,balance:ur.from(u),formattedBalance:u.toString(),contractAddress:s.contractAddress,id:s.id})}))}catch(t){throw new om("Failed to get ERC721 balances",e.CheckoutErrorType.GET_ERC721_BALANCE_ERROR)}return i})(n,r,a));const c=await Promise.all(u),l=[];if(o.length>0&&c.length>0){const t=c.shift();t&&o.forEach((n=>{l.push(((t,n)=>{let r;t.type===e.ItemType.ERC20?r=n.find((e=>xm(e.token?.address,t.tokenAddress))):t.type===e.ItemType.NATIVE&&(r=n.find((e=>Mm(e.token?.address))));const i=t.amount,a=i.isNegative()||i.isZero()||(r?.balance.gte(i)??!1),o=i.sub(r?.balance??ur.from(0));let s="",u="",c=pm;r&&(c=r.token?.decimals??pm,s=r.token.name,u=r.token.symbol);let l=r;return t.type===e.ItemType.NATIVE?(l||(l={type:e.ItemType.NATIVE,balance:ur.from(0),formattedBalance:"0",token:mm}),{sufficient:a,type:e.ItemType.NATIVE,delta:{balance:o,formattedBalance:Bh(o,c)},current:{...l,type:e.ItemType.NATIVE},required:{...l,type:e.ItemType.NATIVE,balance:ur.from(t.amount),formattedBalance:Bh(t.amount,c)}}):(l||(l={type:t.type,balance:ur.from(0),formattedBalance:"0",token:{name:s,symbol:u,address:t.tokenAddress,decimals:c}}),{sufficient:a,type:e.ItemType.ERC20,delta:{balance:o,formattedBalance:Bh(o,c)},current:l,required:{...l,balance:ur.from(t.amount),formattedBalance:Bh(t.amount,c)}})})(n,t))}))}if(s.length>0&&c.length>0){const t=c.shift();t&&s.forEach((n=>{l.push(((t,n)=>{const r=ur.from(1),i=n.find((e=>{const n=e;return xm(n.contractAddress,t.contractAddress)&&n.id===t.id})),a=r.isNegative()||r.isZero()||(i?.balance.gte(r)??!1),o=r.sub(i?.balance??ur.from(0));let s=i;return s||(s={type:e.ItemType.ERC721,balance:ur.from(0),formattedBalance:"0",contractAddress:t.contractAddress,id:t.id}),{sufficient:a,type:e.ItemType.ERC721,delta:{balance:o,formattedBalance:o.toString()},current:s,required:{...s,balance:ur.from(1),formattedBalance:"1"}}})(n,t))}))}return{sufficient:void 0===l.find((e=>!1===e.sufficient)),balanceRequirements:l}},TB=async(t,n)=>{try{return await t.estimateGas(n)}catch(t){throw new om("Failed to estimate gas for transaction",e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT)}},wB=async(t,n,r)=>{const i=[];let a=ur.from(0);for(const e of n)void 0!==e.approvalTransaction&&i.push(TB(t,e.approvalTransaction));if(r.type===e.TransactionOrGasType.TRANSACTION)i.push(TB(t,r.transaction));else{const e=(e=>(e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas)(e)?ur.from(e.maxFeePerGas).add(ur.from(e.maxPriorityFeePerGas)):e.gasPrice?ur.from(e.gasPrice):null)(await t.getFeeData());if(null!==e){const t=e?.mul(r.gasToken.limit);t&&(a=a.add(t))}}return(await Promise.all(i)).forEach((e=>{a=a.add(e)})),a.eq(0)?null:((t,n)=>n.type===e.TransactionOrGasType.TRANSACTION||n.gasToken.type===e.GasTokenType.NATIVE?{type:e.ItemType.NATIVE,amount:t}:{type:e.ItemType.ERC20,amount:t,tokenAddress:n.gasToken.tokenAddress,spenderAddress:""})(a,r)},AB=(t,n)=>({checkDexAvailability:async()=>{let r;try{r=await Qe.post(`${t?ym[fm]:n?ym[ht.PRODUCTION]:ym[ht.SANDBOX]}/v1/availability/checkout/swap`)}catch(t){if(r=t.response,403===r.status)return!1;throw new om(`Error fetching from api: ${r.status} ${r.statusText}`,e.CheckoutErrorType.API_ERROR)}return!0}}),EB=async()=>!0,_B=async e=>{const t=AB(e.isDevelopment,e.isProduction);try{return await t.checkDexAvailability()}catch{return!1}};async function IB(t,n){if(t.isProduction&&n?.has(e.ChainId.ETHEREUM))return n;if(n?.has(e.ChainId.SEPOLIA))return n;const r=new Map;return(await cm(t,{type:e.NetworkFilterTypes.ALL})).networks.forEach((e=>{const n=t.networkMap.get(e.chainId)?.rpcUrls[0],i=new mp(n);r.set(e.chainId,i)})),r}const RB=async(e,t,n,r,i)=>{const a=new Map;try{const o=await nB(t,e),s=[],u=[];for(const e of i)e!==r.address&&(s.push(o.getUnsignedSwapTxFromAmountOut(n,e,r.address,r.amount,1)),u.push(e));return(await Um(e,"Time to resolve swap quotes from the dex",Promise.allSettled(s))).forEach(((e,t)=>{if("rejected"===e.status)return;const n=u[t];a.set(n,{quote:e.value.quote,approval:e.value.approval?.gasFeeEstimate??null,swap:e.value.swap.gasFeeEstimate})})),a}catch{return a}},CB=(t,n,r)=>{let i,a=ur.from(0),o="0";t&&(a=t.value,o=Bh(t.value,t.token.decimals),i={name:t.token.name??"",symbol:t.token.symbol??"",address:t.token.address,decimals:t.token.decimals});let s,u=ur.from(0),c="0";n&&(u=n.value,c=Bh(n.value,n.token.decimals),s={name:n.token.name??"",symbol:n.token.symbol??"",address:n.token.address,decimals:n.token.decimals});const l=[];for(const t of r)l.push({type:e.FeeType.SWAP_FEE,amount:t.amount.value,formattedAmount:Bh(t.amount.value,t.amount.token.decimals),token:{name:t.amount.token.name??"",symbol:t.amount.token.symbol??"",address:t.amount.token.address,decimals:t.amount.token.decimals}});return{approvalGasFee:{type:e.FeeType.GAS,amount:a,formattedAmount:o,token:i},swapGasFee:{type:e.FeeType.GAS,amount:u,formattedAmount:c,token:s},swapFees:l}},OB=(t,n,r,i)=>{const a=r.token.address;let o=e.ItemType.ERC20;return Mm(a)&&(o=e.ItemType.NATIVE),{type:e.FundingStepType.SWAP,chainId:t,fundingItem:{type:o,fundsRequired:{amount:n,formattedAmount:Bh(n,r.token.decimals)},userBalance:{balance:r.balance,formattedBalance:r.formattedBalance},token:r.token},fees:i}},kB=(e,t)=>{if(!t)return{sufficient:!0,approvalGasFee:ur.from(0),approvalGasTokenAddress:""};const n=t.value,r=t.token.address;if(0===e.length)return{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r};const i=e.find((e=>Mm(e.token.address)&&Mm(r)||xm(e.token.address,r)));return i?i.balance.lt(n)?{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!0,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}},SB=(e,t,n,r,i)=>{const a=new Map;if(t.approvalGasFee.gt(ur.from(0))&&a.set(t.approvalGasTokenAddress,t.approvalGasFee),n){const e=a.get(n.token.address);e?a.set(n.token.address,e.add(n.value)):a.set(n.token.address,n.value)}if(i){const e=a.get(i.address);e?a.set(i.address,e.add(i.amount)):a.set(i.address,i.amount)}for(const e of r){const t=a.get(e.amount.token.address);t?a.set(e.amount.token.address,t.add(e.amount.value)):a.set(e.amount.token.address,e.amount.value)}for(const[t,n]of a.entries()){if(n===ur.from(0))continue;const r=e.find((e=>Mm(e.token.address)&&Mm(t)||xm(e.token.address,t)));if(!r)return!1;if(r.balance.lt(n))return!1}return!0},NB=(t,n,r,i,a,o)=>{let s=ur.from(0),u="",c=!1;if(n.balanceRequirements.forEach((n=>{n.type!==e.ItemType.NATIVE&&n.type!==e.ItemType.ERC20||n.required.token.address&&xm(n.required.token.address,r)&&(u=n.required.token.address,c=!0,s=t.sub(n.required.balance))})),!c)return!0;xm(a.approvalGasTokenAddress,u)&&(s=s.sub(a.approvalGasFee));for(const e of o)xm(e.amount.token.address,u)&&(s=s.sub(e.amount.value));return s.gte(i)},xB=async(t,n,r,i,a,o,s)=>{const u=[];if(!n.swap)return u;if(0===o.length)return u;if(!(t=>t.type===e.ItemType.ERC20?!!t.required.token.address:t.type===e.ItemType.NATIVE&&Mm(t.required.token.address))(i))return u;const c=(t=>{let n="",r=ur.from(0);switch(t.type){case e.ItemType.ERC20:n=t.required.token.address,r=t.delta.balance;break;case e.ItemType.NATIVE:r=t.delta.balance}return{address:n,amount:r}})(i),l=Sm(t),d=a.get(l);if(!d)return u;const f=d.balances;if(0===f.length)return u;const p=await RB(t,Sm(t),r,c,o),h=Array.from(p.keys());for(const e of h){const t=p.get(e);if(!t)continue;const n=f.find((t=>xm(t.token.address,e)));if(!n)continue;const r=t.quote.amount;if(n.balance.lt(r.value))continue;const i=kB(f,t.approval);if(!i.sufficient)continue;if(!SB(f,i,t.swap,t.quote.fees,{amount:r.value,address:e}))continue;if(!NB(n.balance,s,e,r.value,i,t.quote.fees))continue;const a=CB(t.approval,t.swap,t.quote.fees);u.push(OB(l,r.value,n,a))}return u},PB=(e,t)=>t&&t.success?e.filter((e=>"address"in e?t.balances.find((t=>xm(t.token.address,e.address)&&t.balance.gt(0))):t.balances.find((e=>!("address"in e.token)&&e.balance.gt(0))))):[],MB=async(t,n)=>{if(n.onRamp){return(await Pm(t,{type:e.TokenFilterTypes.ONRAMP})).tokens}return[]},BB=async(t,n,r)=>{if(r.bridge){const r=km(t),i=(await Pm(t,{type:e.TokenFilterTypes.BRIDGE,chainId:r})).tokens,a=n.get(r);return PB(i,a)}return[]},DB=async(t,n,r)=>{const i={};return i.swap=await(async(t,n,r)=>{if(r.swap){const r=(await Pm(t,{type:e.TokenFilterTypes.SWAP})).tokens,i=n.get(Sm(t));return PB(r,i)}return[]})(t,n,r),i.bridge=await BB(t,n,r),i.onRamp=await MB(t,r),i},FB="0x0000000000000000000000000000000000000eee",LB=async(e,t)=>(await t.remote.getConfig("imxAddressMapping"))[e]??"",UB=async(t,n)=>{if(Mm(n))return{l1address:await LB(km(t),t),l2address:hm};const r=(i=Sm(t))===e.ChainId.IMTBL_ZKEVM_MAINNET?e.ChainSlug.IMTBL_ZKEVM_MAINNET:i===e.ChainId.IMTBL_ZKEVM_TESTNET?e.ChainSlug.IMTBL_ZKEVM_TESTNET:i===e.ChainId.IMTBL_ZKEVM_DEVNET?e.ChainSlug.IMTBL_ZKEVM_DEVNET:"";var i;const a=iB(t),o=(await a.getToken({chainName:r,contractAddress:n})).result.root_contract_address;return xm(o??"",FB)?{l1address:"native",l2address:n}:null!==o?{l1address:o,l2address:n}:void 0},qB=(e,t)=>(e=>{for(const t of e.balances)if(Mm(t.token.address))return t.balance;return ur.from(0)})(e).gte(t),jB=(t,n,r,i,a)=>{const o=a?.decimals??pm,s=[];return n.gt(0)&&s.push({type:e.FeeType.BRIDGE_FEE,amount:n,formattedAmount:Bh(n,o),token:a}),r.gt(0)&&s.push({type:e.FeeType.IMMUTABLE_FEE,amount:r,formattedAmount:Bh(r,o),token:a}),{approvalGasFee:{type:e.FeeType.GAS,amount:i,formattedAmount:Bh(i,pm),token:a},bridgeGasFee:{type:e.FeeType.GAS,amount:t,formattedAmount:Bh(t,pm),token:a},bridgeFees:s}},GB=(t,n,r,i,a)=>({type:e.FundingStepType.BRIDGE,chainId:t,fundingItem:{type:i,fundsRequired:{amount:r.amount,formattedAmount:r.formattedAmount},userBalance:{balance:n.balance,formattedBalance:n.formattedBalance},token:{name:n.token.name,symbol:n.token.symbol,address:n.token.address,decimals:n.token.decimals}},fees:a}),HB=async(t,n,r,i,a)=>{if(!r.bridge)return;const o=km(t),s=Sm(t),u=t.networkMap.get(o)?.nativeCurrency,c=a.get(o);if(!n.get(o))throw new om("No L1 provider available",e.CheckoutErrorType.PROVIDER_ERROR,{chainId:o.toString()});if(void 0===c||!1===c.success)return;const l=await BB(t,a,r);if(0===l.length)return;const d=await UB(t,i.l2address);if(!d)return;const{l1address:f}=d;if(Mm(f)){if(!l.find((e=>Mm(e.address))))return}else if(!l.find((e=>xm(e.address,f))))return;const p=await(async(t,n,r,i)=>{const a=tB(r,i,n,t);try{return{...await a.getFee({action:JT.DEPOSIT,gasMultiplier:1.1,sourceChainId:r.toString(),destinationChainId:i.toString()}),approvalGas:ur.from(0)}}catch(t){throw new om("Error estimating gas for bridge",e.CheckoutErrorType.BRIDGE_GAS_ESTIMATE_ERROR,{message:t.message})}})(t,n,o,s),{sourceChainGas:h,approvalGas:m,bridgeFee:y,imtblFee:g,totalFees:b}=p;if(!qB(c,b))return;if(Mm(f)){const t=c.balances.find((e=>Mm(e.token.address)));if(t&&t.balance.gte(i.amount.add(b))){const n=jB(h,y,g,m,u);return GB(o,t,i,e.ItemType.NATIVE,n)}return}const v=c.balances.find((e=>xm(e.token.address,f)));if(v&&v.balance.gte(i.amount)){const t=jB(h,y,g,m,u);return GB(o,v,i,e.ItemType.ERC20,t)}},zB=(e,t)=>{let n=ur.from(0);return e.quote.fees.forEach((e=>{xm(e.amount.token.address,t)&&(n=n.add(e.amount.value))})),e.approval&&xm(e.approval.token.address,t)&&(n=n.add(e.approval.value)),n},WB=(t,n)=>{for(const r of t.balanceRequirements)if((r.type===e.ItemType.NATIVE||r.type===e.ItemType.ERC20)&&xm(r.required.token.address,n))return r.required.balance;return ur.from(0)},VB=(e,t,n)=>{const r=n?.balance??ur.from(0);if(r.gte(e.add(t)))return ur.from(0);if(r.lte(0))return e.add(t);const i=r.sub(t);return i.gte(0)?e.sub(i):e.add(t).sub(r)},KB=async(e,t,n,r,i,a,o,s,u)=>{const{l1balances:c,l2balances:l}=((e,t)=>{const n={l1balances:[],l2balances:[]},r=t.get(km(e)),i=t.get(Sm(e));return r?void 0!==r.error?n:r.success&&i?void 0!==i.error?n:i.success?{l1balances:r.balances,l2balances:i.balances}:n:n:n})(e,a),d=r.required.token.address;if(((e,t,n,r,i,a)=>0===e.length||0===t.length||0===n.length||0===r.length||!i.bridge||!i.swap||void 0===a||""===a)(o,s,c,l,n,d))return[];const f=await(async(e,t)=>{const n=t.map((t=>UB(e,t.address??"")));return(await Promise.all(n)).filter((e=>void 0!==e))})(e,s),p=((e,t,n,r)=>{const i=[];for(const a of r){if(!t.includes(a.l1address))continue;if(xm(a.l2address,e))continue;const r=n.find((e=>xm(e.address,a.l2address)));r&&i.push(r)}return i})(d,o,s,f);if(0===p.length)return[];const h=await(async(e,t,n,r,i)=>{const a=[];for(const e of i)e.address&&a.push(e.address);return await RB(e,Sm(e),t,{address:n,amount:r.delta.balance},a)})(e,i,d,r,p),m=((e,t,n,r,i)=>{const a=[];for(const[o,s]of e){const e=n.find((e=>xm(e.token.address,o))),u=r.find((e=>xm(e.l2address,o)));if(!u)continue;const{l1address:c,l2address:l}=u;if(!c)continue;const d=t.find((e=>!(void 0!==e.token.address||!xm(c,FB))||xm(e.token.address,c)));if(!d)continue;const f=s.quote.amountWithMaxSlippage.value,p=zB(s,o),h=f.add(p),m=WB(i,o),y=VB(h,m,e);y.lte(0)||y.gte(d.balance)||a.push({amount:y,formattedAmount:Bh(y,d.token.decimals),l2address:l})}return a})(h,c,l,f,u);if(0===m.length)return[];const y=new Map,g=new Map,b=[];for(const r of m)r.l2address&&(y.set(r.l2address,HB(e,t,n,r,a)),g.set(r.l2address,{amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address}));const v=await Promise.all(y.values()),T=Array.from(y.keys()),w=[];if(v.forEach(((e,t)=>{const n=T[t];if(void 0===e)return;w.push(n);const r=g.get(n);r&&b.push({amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address})})),0===w.length)return[];if(0===b.length)return[];const A=((e,t,n,r,i)=>{const a=new Map;for(const[e,n]of t)a.set(e,{success:n.success,balances:n.balances});const o=new Map;for(const e of n)e.token.address&&o.set(e.token.address,e);for(const e of r){const{amount:t,l2address:n}=e;if(""===n)continue;let r=ur.from(0);const a=o.get(n);a&&(r=a.balance);const s=r.add(t),u=i.find((e=>xm(e.address,n)));o.set(n,{balance:s,formattedBalance:Bh(s,u.decimals),token:u})}const s=Array.from(o.values());return a.set(Sm(e),{success:!0,balances:s}),a})(e,a,l,b,s),E=await xB(e,n,i,r,A,w,u);if(!E)return[];const _=((e,t)=>{const n=[];for(const r of t){const{chainId:t,fundingItem:i}=r,{userBalance:a}=r.fundingItem,o=e.get(t);if(!o)continue;let s=ur.from(0),u="0";const c=o.balances.find((e=>xm(e.token.address,i.token.address)));c&&(s=c.balance,u=c.formattedBalance),a.balance=s,a.formattedBalance=u,n.push(r)}return n})(a,E);return((e,t,n)=>{const r=[];for(const i of e){if(!i)continue;const e=n.find((e=>void 0===i.fundingItem.token.address?xm(e.l1address,FB)&&e.l2address:xm(e.l1address,i.fundingItem.token.address)&&e.l2address));if(!e)continue;const a=t.find((t=>xm(t.fundingItem.token.address,e.l2address)));a&&r.push({bridgeFundingStep:i,swapFundingStep:a})}return r})(v,_,f)},XB=async(t,n,r)=>{if(!n.onRamp)return;if(void 0===r)return;const i=await(async(t,n,r)=>{if(![e.ItemType.ERC20,e.ItemType.NATIVE].includes(r.type))return;const{required:i,current:a,delta:o}=r;let s=!1;return(await MB(t,n)).forEach((e=>{e.address&&i.token&&(Mm(i.token.address)||xm(e.address,i.token.address))&&(s=!0)})),s?{type:e.FundingStepType.ONRAMP,chainId:Sm(t),fundingItem:{type:Mm(i.token.address)?e.ItemType.NATIVE:e.ItemType.ERC20,fundsRequired:{amount:o.balance,formattedAmount:o.formattedBalance},userBalance:{balance:a.balance,formattedBalance:a.formattedBalance},token:i.token}}:void 0})(t,n,r);return i},JB=async(t,n,r,i)=>{if(!(e=>e.bridge||e.swap||e.onRamp)(i))return{type:e.RoutingOutcomeType.NO_ROUTE_OPTIONS,message:"No routing options are available"};let a;try{a=await IB(t)}catch(t){throw new om("Error occurred while creating read only providers",e.CheckoutErrorType.PROVIDER_ERROR,{message:t.message})}const o=await Um(t,"Time to get token balances inside router",(async(t,n,r,i)=>{const a=new Map,o=new Map;if(0===n.size){const n={success:!1,error:new om("No L1 or L2 provider available",e.CheckoutErrorType.PROVIDER_ERROR),balances:[]};return a.set(km(t),n),a.set(Sm(t),n),a}if(i.bridge){const i=km(t);n.has(i)?o.set(i,Hm(t,n.get(i),r,i)):a.set(km(t),{success:!1,error:new om(`No L1 provider available for ${i}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]})}const s=Sm(t);if(n.has(s)?o.set(s,Hm(t,n.get(s),r,s)):a.set(Sm(t),{success:!1,error:new om(`No L2 provider available for ${s}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]}),o.size>0){const t=Array.from(o.keys());(await Promise.allSettled(o.values())).forEach(((n,r)=>{const i=t[r];"fulfilled"===n.status?a.set(i,{success:!0,balances:n.value.balances}):a.set(i,{success:!1,error:new om(`Error getting ${s} balances`,e.CheckoutErrorType.GET_BALANCE_ERROR),balances:[]})}))}return a})(t,a,n,i)),s=await Um(t,"Time to get routing allowlist",DB(t,o,i)),u=(e=>{let t,n=0;for(const r of e.balanceRequirements)r.sufficient||(n++,t=r);if(1===n)return t})(r),c=[];c.push((async(t,n,r,i,a)=>{let o;if(void 0===i)return;if(i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20)return;const s={amount:i.delta.balance,formattedAmount:i.delta.formattedBalance,l2address:i.required.token.address??""};return r.bridge&&i&&(o=await HB(t,n,r,s,a)),o})(t,a,i,u,o)),c.push((async(e,t,n,r,i,a,o)=>{const s=[];if(!t.swap)return s;if(void 0===n)return s;if(void 0===a)return s;const u=i.get(Sm(e));if(!u)return s;if(void 0!==u.error||!u.success)return s;if(0===a.length)return s;const c=a.filter((e=>e.address)).map((e=>e.address));return 0===c.length?s:await xB(e,t,r,n,i,c,o)})(t,i,u,n,o,s.swap,r)),c.push(XB(t,i,u)),c.push((async(t,n,r,i,a,o,s,u)=>{if(!i)return[];const c=o.get(km(t)),l=o.get(Sm(t));if(!c)return[];if(void 0!==c.error||!c.success)return[];if(!l)return[];if(void 0!==l.error||!l.success)return[];const d=(s?.bridge??[]).map((e=>void 0===e.address?FB:e.address)),f=s?.swap??[];return i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20?[]:await KB(t,n,r,i,a,o,d,f,u)})(t,a,i,u,n,o,s,r));const l=await Um(t,"Time to resolve all routes",Promise.all(c));let d,f,p=[],h=[];if(l.forEach(((e,t)=>{0===t&&(d=e),1===t&&(p=e),2===t&&(f=e),3===t&&(h=e)})),!d&&0===p.length&&!f&&0===h.length)return{type:e.RoutingOutcomeType.NO_ROUTES_FOUND,message:"Smart Checkout did not find any funding routes to fulfill the transaction"};const m={type:e.RoutingOutcomeType.ROUTES_FOUND,fundingRoutes:[]};let y=0;return p.length>0&&(y++,p.forEach((e=>{m.fundingRoutes.push({priority:y,steps:[e]})}))),d&&(y++,m.fundingRoutes.push({priority:y,steps:[d]})),f&&(y++,m.fundingRoutes.push({priority:y,steps:[f]})),h&&(y++,h.forEach((e=>{const t=e.bridgeFundingStep,n=e.swapFundingStep;m.fundingRoutes.push({priority:y,steps:[t,n]})}))),m},YB=async(t,n,r,i)=>{const a=await n.getSigner().getAddress();let o=cB(r);const s=(async(t,n,r)=>{let i=!0;const a=[],o=new Map,s=new Map,u=new Map,c=new Map;for(const i of r){if(i.type!==e.ItemType.ERC20)continue;const{tokenAddress:r,spenderAddress:a}=i,u=`${r}${a}`;o.set(u,i),s.set(u,lB(t,n,r,a))}const l=await Promise.all(s.values()),d=Array.from(s.keys());for(let r=0;r<l.length;r++){const s=o.get(d[r]);if(!s||s.type!==e.ItemType.ERC20)continue;if(l[r].gte(s.amount)){a.push({sufficient:!0,itemRequirement:s});continue}i=!1;const{tokenAddress:f,spenderAddress:p}=s,h=`${f}${p}`,m=s.amount.sub(l[r]);u.set(h,{type:e.ItemType.ERC20,sufficient:!1,delta:m,itemRequirement:s,approvalTransaction:void 0}),c.set(h,dB(t,n,f,p,m))}const f=await Promise.all(c.values()),p=Array.from(c.keys());return f.forEach(((e,t)=>{const n=u.get(p[t]);n&&(n.sufficient||(n.approvalTransaction=e))})),{sufficient:i,allowances:a.concat(Array.from(u.values()))}})(n,a,o),u=yB(n,a,o),c=await Um(t,"Time to calculate token allowances",Promise.all([s,u])),l=((e,t)=>{const n=[];if(!e.sufficient)for(const t of e.allowances)t.sufficient||n.push(t);if(!t.sufficient)for(const e of t.allowances)e.sufficient||n.push(e);return n})(c[0],c[1]),d=await Um(t,"Time to run gas calculator",wB(n,l,i));null!==d&&(o.push(d),o=cB(o));const f=await Um(t,"Time to run balance checks",vB(t,n,a,o)),{sufficient:p}=f,h=f.balanceRequirements;if(p)return{sufficient:p,transactionRequirements:h};const m=await Um(t,"Time to fetch available routing options",(async(e,t)=>{const n={onRamp:e.isOnRampEnabled,swap:e.isSwapEnabled,bridge:e.isBridgeEnabled},r=[];if(n.onRamp&&r.push({id:"onRamp",promise:EB()}),n.swap&&r.push({id:"swap",promise:_B(e)}),r.length>0){const e=r.map((e=>e.promise));(await Promise.allSettled(e)).forEach(((e,t)=>{const i=r[t].id;n[i]=n[i]&&"fulfilled"===e.status&&e.value}))}return n.bridge=n.bridge&&!(e=>!0===e.provider?.isPassport??!1)(t),n})(t,n));return{sufficient:p,transactionRequirements:h,router:{availableRoutingOptions:m,routingOutcome:await Um(t,"Total time to run the routing calculator",JB(t,a,f,m))}}};var QB;!function(e){e.SUCCESS="SUCCESS",e.FAILED="FAILED"}(QB||(QB={}));const $B=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>Jm(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new om("An error occurred while executing the approval transaction",e.CheckoutErrorType.EXECUTE_APPROVAL_TRANSACTION_ERROR,{message:t.message})}for(const e of r)if(0===e.status)return{type:QB.FAILED,transactionHash:e.transactionHash,reason:"Approval transaction failed and was reverted"};return{type:QB.SUCCESS}},ZB=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>Jm(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new om("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:t.message})}for(const e of r)if(0===e.status)return{type:QB.FAILED,transactionHash:e.transactionHash,reason:"Fulfillment transaction failed and was reverted"};return{type:QB.SUCCESS}},eD=async e=>{let t=[];const n=[];for(const t of e)t.type===tM.TRANSACTION&&t.purpose===ZP.FULFILL_ORDER&&n.push(t.buildTransaction());return t=await Promise.all(n),t},tD=(e,t)=>{const n=e.amount,r=Math.round(n.percentageDecimal*10**6);return t.mul(ur.from(r)).div(10**6)},nD=(e,t)=>Dh(e.amount.token,t),rD=(t,n,r=18)=>{let i=ur.from(0);const a=ur.from(n),o=a.mul(1e6).div(10**6),s=[];for(const n of t){let t=ur.from(0);if(Object.hasOwn(n.amount,"percentageDecimal"))t=tD(n,a),i=i.add(t);else{if(!Object.hasOwn(n.amount,"token"))throw new om("Unknown fee type parsed, must be percentageDecimal or token",e.CheckoutErrorType.ORDER_FEE_ERROR);t=nD(n,r),i=i.add(t)}if(i.gt(o))throw new om("The combined fees are above the allowed maximum of 100%",e.CheckoutErrorType.ORDER_FEE_ERROR);t.gt(0)&&s.push({amount:t.toString(),recipientAddress:n.recipient})}return s},iD=(t,n,r,i)=>{switch(t){case e.ItemType.ERC20:return{type:t,amount:r,tokenAddress:n,spenderAddress:i};case e.ItemType.NATIVE:default:return{type:e.ItemType.NATIVE,amount:r}}},aD=async(t,n,r)=>{if(0===r.length)throw new om("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR);let i,a="",o=18;const s=gM,u=rB(t),c=iB(t),l=await Um(t,"Time to get the address from the provider",n.getSigner().getAddress());Gm.clear(),Hm(t,n,l,km(t)),Hm(t,n,l,Sm(t));const{id:d,takerFees:f}=r[0];let p;try{i=await Um(t,"Time to fetch the listing from the orderbook",u.getListing(d));const{seaportContractAddress:e,chainName:n}=u.config();p=n,a=e}catch(t){throw new om("An error occurred while getting the order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{orderId:d,message:t.message})}if(0===i.result.buy.length)throw new om("An error occurred with the get order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{orderId:d,message:"No buy side tokens found on order"});const h=i.result.buy[0];if("ERC20"===h.type){const e=await Um(t,"Time to get decimals of token contract for the buy token",c.getToken({contractAddress:h.contractAddress,chainName:p}));e.result.decimals&&(o=e.result.decimals)}let m=[];f&&f.length>0&&(m=rD(f,h.amount,o));let y=[],g=[],b=[];const v=performance.now();try{const{actions:e}=await Um(t,"Time to call fulfillOrder from the orderbook",u.fulfillOrder(d,l,m));b=e,y=await Um(t,"Time to construct the unsigned approval transactions",(async e=>{let t=[];const n=[];for(const t of e)t.type===tM.TRANSACTION&&t.purpose===ZP.APPROVAL&&n.push(t.buildTransaction());return t=await Promise.all(n),t})(e))}catch(n){const r=(performance.now()-v)/1e3;if(Lm(t,"Time to call fulfillOrder from the orderbook",r),n.message.includes(YP.EXPIRED))throw new om("Order is expired",e.CheckoutErrorType.ORDER_EXPIRED_ERROR,{orderId:d});if(!n.message.includes("The fulfiller does not have the balances needed to fulfill"))throw new om("Error occurred while trying to fulfill the order",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{orderId:d,message:n.message})}try{g=await Um(t,"Time to construct the unsigned fulfillment transactions",eD(b))}catch{}let T=ur.from("0"),w=e.ItemType.NATIVE,A="";const E=i.result.buy;if(E.length>0)switch(E[0].type){case"NATIVE":w=e.ItemType.NATIVE;break;case"ERC20":w=e.ItemType.ERC20,A=E[0].contractAddress;break;default:throw new om("Purchasing token type is unsupported",e.CheckoutErrorType.UNSUPPORTED_TOKEN_TYPE_ERROR,{orderId:d})}E.forEach((t=>{t.type!==e.ItemType.ERC721&&(T=T.add(ur.from(t.amount)))}));i.result.fees.forEach((e=>{T=T.add(ur.from(e.amount))}));const _=[iD(w,A,T,a)],I=await Um(t,"Total time running smart checkout",YB(t,n,_,((t,n)=>n.length>0?{type:e.TransactionOrGasType.TRANSACTION,transaction:n[0]}:{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:ur.from(t)}})(s,g)));if(I.sufficient){const t=await $B(n,y);if(t.type===QB.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason,smartCheckoutResult:I};try{0===g.length&&(g=await eD(b))}catch(t){throw new om("Error fetching fulfillment transaction",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{message:t.message})}const r=await ZB(n,g);return r.type===QB.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:r.transactionHash,reason:r.reason,smartCheckoutResult:I}:{status:e.CheckoutStatus.SUCCESS,smartCheckoutResult:I}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:I}},oD=(t,n,r)=>({type:e.ItemType.ERC721,id:t,contractAddress:n,spenderAddress:r}),sD=async(t,n,r)=>{let i,a,o="";if(0===r.length)throw new om("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR);const{buyToken:s,sellToken:u,makerFees:c}=r[0];let l=18;if(s.type===e.ItemType.ERC20){const e=new Rl(s.tokenAddress,JSON.stringify(Em),n);l=await Um(t,"Time to get decimals of token contract for the buy token",e.decimals())}const d=((t,n=18)=>{const r=Dh(t.amount,n);return t.type===e.ItemType.NATIVE?{type:e.ItemType.NATIVE,amount:r.toString()}:{type:e.ItemType.ERC20,amount:r.toString(),contractAddress:t.tokenAddress}})(s,l);try{const r=await Um(t,"Time to get the address from the provider",n.getSigner().getAddress());i=rB(t);const{seaportContractAddress:s}=i.config();o=s,a=await Um(t,"Time to prepare the listing from the orderbook",i.prepareListing({makerAddress:r,buy:d,sell:{type:e.ItemType.ERC721,contractAddress:u.collectionAddress,tokenId:u.id}}))}catch(t){throw new om("An error occurred while preparing the listing",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR,{message:t.message,id:u.id,collectionAddress:u.collectionAddress})}const f=[oD(u.id,u.collectionAddress,o)],p=await Um(t,"Total time running smart checkout",YB(t,n,f,{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:ur.from(gM)}}));if(p.sufficient){const t=await(async e=>{let t=[],n=[];const r=[],i=[];for(const t of e)t.type===tM.TRANSACTION&&(t.purpose===ZP.APPROVAL&&r.push(t.buildTransaction()),t.purpose===ZP.FULFILL_ORDER&&i.push(t.buildTransaction()));return t=await Promise.all(r),n=await Promise.all(i),{approvalTransactions:t,fulfillmentTransactions:n}})(a.actions),r=await $B(n,t.approvalTransactions);if(r.type===QB.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:r.transactionHash,reason:r.reason,smartCheckoutResult:p};const o=((e,t,n)=>{let r;for(const e of n)e.type===tM.SIGNABLE&&e.purpose===eM.CREATE_LISTING&&(r={domain:e.message.domain,types:e.message.types,value:e.message.value});if(r)return{orderHash:e,orderComponents:t,unsignedMessage:r}})(a.orderHash,a.orderComponents,a.actions);if(!o)throw new om("The unsigned message is missing after preparing the listing",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{id:u.id,collectionAddress:u.collectionAddress});const s=await(async(t,n)=>{try{const e=await t.getSigner()._signTypedData(n.unsignedMessage.domain,n.unsignedMessage.types,n.unsignedMessage.value);return{orderComponents:n.orderComponents,orderHash:n.orderHash,signedMessage:e}}catch(t){throw new om("An error occurred while signing the message",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{message:t.message})}})(n,o);let f="";const h={orderComponents:s.orderComponents,orderHash:s.orderHash,orderSignature:s.signedMessage,makerFees:[]};if(void 0!==c){const t=rD(c,d.amount,l);if(t.length!==c.length)throw new om("One of the fees is too small, must be greater than 0.000001",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR);h.makerFees=t}try{f=(await i.createListing(h)).result.id}catch(t){throw new om("An error occurred while creating the listing",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR,{message:t.message,collectionId:u.id,collectionAddress:u.collectionAddress})}return{status:e.CheckoutStatus.SUCCESS,orderIds:[f],smartCheckoutResult:p}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:p}};class uD{config;constructor(e){this.config=e}async feeEstimate(){const e=await this.config.remote.getConfig("onramp");return e[Vh.TRANSAK]?.fees}async createWidgetUrl(e){return await this.getTransakWidgetUrl(e)}async getTransakWidgetUrl(e){let t=`${bm[this.config.environment]}?`;if(t+=`${`apiKey=${(await this.config.remote.getConfig("onramp"))[Vh.TRANSAK].publishableApiKey}`}&network=immutablezkevm&defaultPaymentMethod=credit_debit_card&disablePaymentMethods=sepa_bank_transfer,gbp_bank_transfer,pm_cash_app,pm_jwire,pm_paymaya,pm_bpi,pm_ubp,pm_grabpay,pm_shopeepay,pm_gcash,pm_pix,pm_astropay,pm_pse,inr_bank_transfer&productsAvailed=buy&exchangeScreenTitle=Buy&themeColor=0D0D0D`,e.isPassport&&e.email){t+=`&email=${encodeURIComponent(e.email)}&isAutoFillUserData=true&disableWalletAddressForm=true`}return e.tokenAmount&&e.tokenSymbol?t+=`&defaultCryptoAmount=${e.tokenAmount}&cryptoCurrencyCode=${e.tokenSymbol}`:t+="&defaultCryptoCurrency=IMX",e.walletAddress&&(t+=`&walletAddress=${e.walletAddress}`),t}}async function cD(t,n){const r=[];n.forEach((n=>{if(n.type===e.ItemType.ERC20){const{tokenAddress:e}=n;r.push((i=e,a=Em,o=t,new Rl(i,a,o)).decimals())}var i,a,o}));const i=await Promise.all(r),a=n.map(((t,n)=>t.type===e.ItemType.NATIVE?{...t,amount:Dh(t.amount,18)}:t.type===e.ItemType.ERC20?{...t,amount:Dh(t.amount,i[n])}:t));return a}function lD(e){if(void 0===window)throw new Error("missing window object: please run Checkout client side");if(void 0===document)throw new Error("missing document object: please run Checkout client side");const t="immutable-checkout-widgets-bundle",n=function(e){const t=Rm();if(void 0===e||void 0===e.major)return t;if(!Number.isInteger(e.major)||e.major<0)return t;if(void 0!==e.minor&&e.minor<0)return t;if(void 0!==e.patch&&e.patch<0)return t;if(0===e.major&&void 0===e.minor)return t;if(0===e.major&&0===e.minor&&void 0===e.patch)return t;if(0===e.major&&void 0===e.minor&&void 0===e.patch)return t;if(0===e.major&&0===e.minor&&0===e.patch)return t;let n=e.major.toString();return void 0===e.minor||(Number.isInteger(e.minor)&&(n+=`.${e.minor.toString()}`),void 0===e.patch||(Number.isInteger(e.patch)&&(n+=`.${e.patch.toString()}`),void 0===e.prerelease||"alpha"!==e.prerelease||("alpha"===e.prerelease&&(n+=`-${e.prerelease}`),void 0===e.build||Number.isInteger(e.build)&&e.build>=0&&(n+=`.${e.build.toString()}`)))),n}(e),r=document.getElementById(t);if(r)return{loaded:!0,element:r};const i=document.createElement("script");let a=`https://cdn.jsdelivr.net/npm/@imtbl/sdk@${n}/dist/browser/checkout/widgets.js`;return i.setAttribute("id",t),i.setAttribute("data-version",n),i.setAttribute("src",a),document.head.appendChild(i),{loaded:!1,element:i}}const dD=["https://checkout-api.dev.immutable.com","https://checkout-api.sandbox.immutable.com","https://checkout-api.immutable.com"];class fD{config;axiosInstance;constructor(e){this.config=e,this.axiosInstance=Qe.create(),this.setupInterceptors()}shouldAddPublishableKey(e){return dD.some((t=>e.startsWith(t)))}setupInterceptors(){this.axiosInstance.interceptors.request.use((e=>{const t=this.config?.baseConfig?.publishableKey;if(t&&this.shouldAddPublishableKey(e.url||"")){if(!t.startsWith("pk_imapik-"))throw new Error("Invalid Publishable key. Create your Publishable key in Immutable developer hub. https://hub.immutable.com");e.headers["x-immutable-publishable-key"]=t}return e}),(e=>Promise.reject(e)))}async request(e){return await this.axiosInstance.request(e)}async get(e,t){const n={...t,url:e};return await this.request(n)}async post(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}async put(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}async delete(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}}const pD={baseConfig:{environment:ht.SANDBOX},passport:void 0};e.Checkout=class{readOnlyProviders;httpClient;config;fiatRampService;availability;passport;constructor(e=pD){this.httpClient=new fD(e),this.config=new Nm(e,this.httpClient),this.fiatRampService=new uD(this.config),this.readOnlyProviders=new Map,this.availability=AB(this.config.isDevelopment,this.config.isProduction),this.passport=e.passport}async widgets(t){const n=this;await n.config.remote.getConfig();const r=new Promise(((r,i)=>{try{lD(t.version).loaded&&"undefined"!=typeof ImmutableCheckoutWidgets?r(new ImmutableCheckoutWidgets.WidgetsFactory(n,t.config)):function e(){"undefined"!=typeof ImmutableCheckoutWidgets?r(new ImmutableCheckoutWidgets.WidgetsFactory(n,t.config)):setTimeout(e,100)}()}catch(t){i(new om("Failed to load widgets script",e.CheckoutErrorType.WIDGETS_SCRIPT_LOAD_ERROR,{message:t.message}))}}));return r}async createProvider(e){return await Vm(e.walletProviderName,this.passport)}async checkIsWalletConnected(t){return async function(t){if(!t?.provider?.request)throw new om("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{rpcMethod:Jh.CHECK_CONNECTION});let n=[];try{n=await t.provider.request({method:Jh.CHECK_CONNECTION,params:[]})}catch(t){throw new om("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{rpcMethod:Jh.CHECK_CONNECTION})}return{isConnected:n&&n.length>0,walletAddress:n[0]??""}}(await Xm(this.config,t.provider,{allowUnsupportedProvider:!0}))}async connect(t){const n=await Xm(this.config,t.provider,{allowUnsupportedProvider:!0});return await async function(t){if(!t||!t.provider?.request)throw new om("Incompatible provider",e.CheckoutErrorType.PROVIDER_REQUEST_MISSING_ERROR,{details:"Attempting to connect with an incompatible provider"});return await sm((async()=>{t.provider.request&&await t.provider.request({method:Jh.CONNECT,params:[]})}),{type:e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR}),t}(n),{provider:n}}async switchNetwork(e){const t=await Xm(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await dm(this.config,t,e.chainId)}async getTokenInfo(e){return await Bm(e.provider,e.tokenAddress)}async getBalance(e){const t=await Xm(this.config,e.provider);return e.tokenAddress&&""!==e.tokenAddress?await jm(t,e.walletAddress,e.tokenAddress):await qm(this.config,t,e.walletAddress)}async getAllBalances(e){return Hm(this.config,e.provider,e.walletAddress,e.chainId)}async getNetworkAllowList(e){return await cm(this.config,e)}async getTokenAllowList(e){return await Pm(this.config,e)}async getWalletAllowList(t){return await async function(t){const n=[],r=t.exclude?.map((e=>e.walletProviderName))??[];let i=Object.values(e.WalletProviderName);0!==r.length&&(i=i.filter((e=>!r.includes(e))));for(const e of i)n.push({walletProviderName:e});return{wallets:n}}(t)}async sendTransaction(e){const t=await Xm(this.config,e.provider);return await Jm(t,e.transaction)}async getNetworkInfo(e){const t=await Xm(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await lm(this.config,t)}async buy(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await Xm(this.config,e.provider);return await aD(this.config,t,e.orders)}async sell(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await Xm(this.config,e.provider);return await sD(this.config,t,e.orders)}async cancel(t){console.warn("This endpoint currently only processes the first order in the array.");const n=await Xm(this.config,t.provider);return await(async(t,n,r)=>{let i;if(0===r.length)throw new om("No orderIds were provided to the orderIds array. Please provide at least one orderId.",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR);const a=r[0];try{const e=await Um(t,"Time to get the address from the provider",n.getSigner().getAddress()),r=rB(t),o=await Um(t,"Time to get the cancel order from the orderbook",r.cancelOrdersOnChain([a],e));i=await o.cancellationAction.buildTransaction()}catch(t){throw new om("An error occurred while cancelling the order listing",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR,{orderId:a,message:t.message})}const o=await ZB(n,[i]);return o.type===QB.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:o.transactionHash,reason:o.reason}:{status:e.CheckoutStatus.SUCCESS}})(this.config,n,t.orderIds)}async smartCheckout(t){const n=await Xm(this.config,t.provider);let r=[];try{r=await cD(n,t.itemRequirements)}catch(t){throw new om("Failed to map item requirements",e.CheckoutErrorType.ITEM_REQUIREMENTS_ERROR)}return await YB(this.config,n,r,t.transactionOrGasAmount)}static isWeb3Provider(e){return Km(e)}async gasEstimate(e){return this.readOnlyProviders=await IB(this.config,this.readOnlyProviders),await uB(e,this.readOnlyProviders,this.config)}async createFiatRampUrl(t){let n,r,i="IMX";const a=await t.web3Provider.getSigner().getAddress(),o=t.web3Provider.provider?.isPassport||!1;if(o&&t.passport){const e=await t.passport.getUserInfo();r=e?.email}const s=await Pm(this.config,{type:e.TokenFilterTypes.ONRAMP}),u=s.tokens?.find((e=>xm(e.address,t.tokenAddress)));return u&&(n=t.tokenAmount,i=u.symbol),await this.fiatRampService.createWidgetUrl({exchangeType:t.exchangeType,isPassport:o,walletAddress:a,tokenAmount:n,tokenSymbol:i,email:r})}async getExchangeFeeEstimate(){return await this.fiatRampService.feeEstimate()}async isSwapAvailable(){return this.availability.checkDexAvailability()}},e.CheckoutConfiguration=Nm,e.IMMUTABLE_API_BASE_URL=ym}));
35
+ function(e){var t=n,r=t.lib,i=r.WordArray,a=r.Hasher,o=t.algo,s=i.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),u=i.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),c=i.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),l=i.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),d=i.create([0,1518500249,1859775393,2400959708,2840853838]),f=i.create([1352829926,1548603684,1836072691,2053994217,0]),p=o.RIPEMD160=a.extend({_doReset:function(){this._hash=i.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var n=0;n<16;n++){var r=t+n,i=e[r];e[r]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var a,o,p,T,w,A,E,_,I,R,C,O=this._hash.words,k=d.words,S=f.words,N=s.words,x=u.words,P=c.words,M=l.words;for(A=a=O[0],E=o=O[1],_=p=O[2],I=T=O[3],R=w=O[4],n=0;n<80;n+=1)C=a+e[t+N[n]]|0,C+=n<16?h(o,p,T)+k[0]:n<32?m(o,p,T)+k[1]:n<48?y(o,p,T)+k[2]:n<64?g(o,p,T)+k[3]:b(o,p,T)+k[4],C=(C=v(C|=0,P[n]))+w|0,a=w,w=T,T=v(p,10),p=o,o=C,C=A+e[t+x[n]]|0,C+=n<16?b(E,_,I)+S[0]:n<32?g(E,_,I)+S[1]:n<48?y(E,_,I)+S[2]:n<64?m(E,_,I)+S[3]:h(E,_,I)+S[4],C=(C=v(C|=0,M[n]))+R|0,A=R,R=I,I=v(_,10),_=E,E=C;C=O[1]+p+I|0,O[1]=O[2]+T+R|0,O[2]=O[3]+w+A|0,O[3]=O[4]+a+E|0,O[4]=O[0]+o+_|0,O[0]=C},_doFinalize:function(){var e=this._data,t=e.words,n=8*this._nDataBytes,r=8*e.sigBytes;t[r>>>5]|=128<<24-r%32,t[14+(r+64>>>9<<4)]=16711935&(n<<8|n>>>24)|4278255360&(n<<24|n>>>8),e.sigBytes=4*(t.length+1),this._process();for(var i=this._hash,a=i.words,o=0;o<5;o++){var s=a[o];a[o]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8)}return i},clone:function(){var e=a.clone.call(this);return e._hash=this._hash.clone(),e}});function h(e,t,n){return e^t^n}function m(e,t,n){return e&t|~e&n}function y(e,t,n){return(e|~t)^n}function g(e,t,n){return e&n|t&~n}function b(e,t,n){return e^(t|~n)}function v(e,t){return e<<t|e>>>32-t}t.RIPEMD160=a._createHelper(p),t.HmacRIPEMD160=a._createHmacHelper(p)}(),n.RIPEMD160)}(dN)),hN(),mN||(mN=1,function(e,t){var n;e.exports=(n=CS(),hN(),function(){var e=n,t=e.lib,r=t.Base,i=t.WordArray,a=e.algo,o=a.SHA256,s=a.HMAC,u=a.PBKDF2=r.extend({cfg:r.extend({keySize:4,hasher:o,iterations:25e4}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var n=this.cfg,r=s.create(n.hasher,e),a=i.create(),o=i.create([1]),u=a.words,c=o.words,l=n.keySize,d=n.iterations;u.length<l;){var f=r.update(t).finalize(o);r.reset();for(var p=f.words,h=p.length,m=f,y=1;y<d;y++){m=r.finalize(m),r.reset();for(var g=m.words,b=0;b<h;b++)p[b]^=g[b]}a.concat(f),c[0]++}return a.sigBytes=4*l,a}});e.PBKDF2=function(e,t,n){return u.create(n).compute(e,t)}}(),n.PBKDF2)}(yN)),vN(),AN(),IN(),ON(),NN(),MN(),BN||(BN=1,function(e,t){var n,r;e.exports=(r=CS(),AN(),r.mode.ECB=((n=r.lib.BlockCipherMode.extend()).Encryptor=n.extend({processBlock:function(e,t){this._cipher.encryptBlock(e,t)}}),n.Decryptor=n.extend({processBlock:function(e,t){this._cipher.decryptBlock(e,t)}}),n),r.mode.ECB)}(DN)),FN||(FN=1,function(e,t){var n;e.exports=(n=CS(),AN(),n.pad.AnsiX923={pad:function(e,t){var n=e.sigBytes,r=4*t,i=r-n%r,a=n+i-1;e.clamp(),e.words[a>>>2]|=i<<24-a%4*8,e.sigBytes+=i},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Ansix923)}(LN)),UN||(UN=1,function(e,t){var n;e.exports=(n=CS(),AN(),n.pad.Iso10126={pad:function(e,t){var r=4*t,i=r-e.sigBytes%r;e.concat(n.lib.WordArray.random(i-1)).concat(n.lib.WordArray.create([i<<24],1))},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}},n.pad.Iso10126)}(qN)),jN||(jN=1,function(e,t){var n;e.exports=(n=CS(),AN(),n.pad.Iso97971={pad:function(e,t){e.concat(n.lib.WordArray.create([2147483648],1)),n.pad.ZeroPadding.pad(e,t)},unpad:function(e){n.pad.ZeroPadding.unpad(e),e.sigBytes--}},n.pad.Iso97971)}(GN)),HN||(HN=1,function(e,t){var n;e.exports=(n=CS(),AN(),n.pad.ZeroPadding={pad:function(e,t){var n=4*t;e.clamp(),e.sigBytes+=n-(e.sigBytes%n||n)},unpad:function(e){var t=e.words,n=e.sigBytes-1;for(n=e.sigBytes-1;n>=0;n--)if(t[n>>>2]>>>24-n%4*8&255){e.sigBytes=n+1;break}}},n.pad.ZeroPadding)}(zN)),WN||(WN=1,function(e,t){var n;e.exports=(n=CS(),AN(),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)}(VN)),KN||(KN=1,function(e,t){var n,r,i,a;e.exports=(a=CS(),AN(),r=(n=a).lib.CipherParams,i=n.enc.Hex,n.format.Hex={stringify:function(e){return e.ciphertext.toString(i)},parse:function(e){var t=i.parse(e);return r.create({ciphertext:t})}},a.format.Hex)}(XN)),JN||(JN=1,function(e,t){var n;e.exports=(n=CS(),zS(),YS(),vN(),AN(),function(){var e=n,t=e.lib.BlockCipher,r=e.algo,i=[],a=[],o=[],s=[],u=[],c=[],l=[],d=[],f=[],p=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var n=0,r=0;for(t=0;t<256;t++){var h=r^r<<1^r<<2^r<<3^r<<4;h=h>>>8^255&h^99,i[n]=h,a[h]=n;var m=e[n],y=e[m],g=e[y],b=257*e[h]^16843008*h;o[n]=b<<24|b>>>8,s[n]=b<<16|b>>>16,u[n]=b<<8|b>>>24,c[n]=b,b=16843009*g^65537*y^257*m^16843008*n,l[h]=b<<24|b>>>8,d[h]=b<<16|b>>>16,f[h]=b<<8|b>>>24,p[h]=b,n?(n=m^e[e[e[g^m]]],r^=e[e[r]]):n=r=1}}();var h=[0,1,2,4,8,16,32,64,128,27,54],m=r.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,n=e.sigBytes/4,r=4*((this._nRounds=n+6)+1),a=this._keySchedule=[],o=0;o<r;o++)o<n?a[o]=t[o]:(c=a[o-1],o%n?n>6&&o%n==4&&(c=i[c>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c]):(c=i[(c=c<<8|c>>>24)>>>24]<<24|i[c>>>16&255]<<16|i[c>>>8&255]<<8|i[255&c],c^=h[o/n|0]<<24),a[o]=a[o-n]^c);for(var s=this._invKeySchedule=[],u=0;u<r;u++){if(o=r-u,u%4)var c=a[o];else c=a[o-4];s[u]=u<4||o<=4?c:l[i[c>>>24]]^d[i[c>>>16&255]]^f[i[c>>>8&255]]^p[i[255&c]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,s,u,c,i)},decryptBlock:function(e,t){var n=e[t+1];e[t+1]=e[t+3],e[t+3]=n,this._doCryptBlock(e,t,this._invKeySchedule,l,d,f,p,a),n=e[t+1],e[t+1]=e[t+3],e[t+3]=n},_doCryptBlock:function(e,t,n,r,i,a,o,s){for(var u=this._nRounds,c=e[t]^n[0],l=e[t+1]^n[1],d=e[t+2]^n[2],f=e[t+3]^n[3],p=4,h=1;h<u;h++){var m=r[c>>>24]^i[l>>>16&255]^a[d>>>8&255]^o[255&f]^n[p++],y=r[l>>>24]^i[d>>>16&255]^a[f>>>8&255]^o[255&c]^n[p++],g=r[d>>>24]^i[f>>>16&255]^a[c>>>8&255]^o[255&l]^n[p++],b=r[f>>>24]^i[c>>>16&255]^a[l>>>8&255]^o[255&d]^n[p++];c=m,l=y,d=g,f=b}m=(s[c>>>24]<<24|s[l>>>16&255]<<16|s[d>>>8&255]<<8|s[255&f])^n[p++],y=(s[l>>>24]<<24|s[d>>>16&255]<<16|s[f>>>8&255]<<8|s[255&c])^n[p++],g=(s[d>>>24]<<24|s[f>>>16&255]<<16|s[c>>>8&255]<<8|s[255&l])^n[p++],b=(s[f>>>24]<<24|s[c>>>16&255]<<16|s[l>>>8&255]<<8|s[255&d])^n[p++],e[t]=m,e[t+1]=y,e[t+2]=g,e[t+3]=b},keySize:8});e.AES=t._createHelper(m)}(),n.AES)}(YN)),ZN(),ex||(ex=1,function(e,t){var n;e.exports=(n=CS(),zS(),YS(),vN(),AN(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=r.RC4=t.extend({_doReset:function(){for(var e=this._key,t=e.words,n=e.sigBytes,r=this._S=[],i=0;i<256;i++)r[i]=i;i=0;for(var a=0;i<256;i++){var o=i%n,s=t[o>>>2]>>>24-o%4*8&255;a=(a+r[i]+s)%256;var u=r[i];r[i]=r[a],r[a]=u}this._i=this._j=0},_doProcessBlock:function(e,t){e[t]^=a.call(this)},keySize:8,ivSize:0});function a(){for(var e=this._S,t=this._i,n=this._j,r=0,i=0;i<4;i++){n=(n+e[t=(t+1)%256])%256;var a=e[t];e[t]=e[n],e[n]=a,r|=e[(e[t]+e[n])%256]<<24-8*i}return this._i=t,this._j=n,r}e.RC4=t._createHelper(i);var o=r.RC4Drop=i.extend({cfg:i.cfg.extend({drop:192}),_doReset:function(){i._doReset.call(this);for(var e=this.cfg.drop;e>0;e--)a.call(this)}});e.RC4Drop=t._createHelper(o)}(),n.RC4)}(tx)),nx||(nx=1,function(e,t){var n;e.exports=(n=CS(),zS(),YS(),vN(),AN(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],a=[],o=[],s=r.Rabbit=t.extend({_doReset:function(){for(var e=this._key.words,t=this.cfg.iv,n=0;n<4;n++)e[n]=16711935&(e[n]<<8|e[n]>>>24)|4278255360&(e[n]<<24|e[n]>>>8);var r=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],i=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];for(this._b=0,n=0;n<4;n++)u.call(this);for(n=0;n<8;n++)i[n]^=r[n+4&7];if(t){var a=t.words,o=a[0],s=a[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=c>>>16|4294901760&l,f=l<<16|65535&c;for(i[0]^=c,i[1]^=d,i[2]^=l,i[3]^=f,i[4]^=c,i[5]^=d,i[6]^=l,i[7]^=f,n=0;n<4;n++)u.call(this)}},_doProcessBlock:function(e,t){var n=this._X;u.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function u(){for(var e=this._X,t=this._C,n=0;n<8;n++)a[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<a[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<a[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<a[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<a[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<a[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<a[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<a[6]>>>0?1:0)|0,this._b=t[7]>>>0<a[7]>>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,s=r>>>16,u=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=u^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.Rabbit=t._createHelper(s)}(),n.Rabbit)}(rx)),ix||(ix=1,function(e,t){var n;e.exports=(n=CS(),zS(),YS(),vN(),AN(),function(){var e=n,t=e.lib.StreamCipher,r=e.algo,i=[],a=[],o=[],s=r.RabbitLegacy=t.extend({_doReset:function(){var e=this._key.words,t=this.cfg.iv,n=this._X=[e[0],e[3]<<16|e[2]>>>16,e[1],e[0]<<16|e[3]>>>16,e[2],e[1]<<16|e[0]>>>16,e[3],e[2]<<16|e[1]>>>16],r=this._C=[e[2]<<16|e[2]>>>16,4294901760&e[0]|65535&e[1],e[3]<<16|e[3]>>>16,4294901760&e[1]|65535&e[2],e[0]<<16|e[0]>>>16,4294901760&e[2]|65535&e[3],e[1]<<16|e[1]>>>16,4294901760&e[3]|65535&e[0]];this._b=0;for(var i=0;i<4;i++)u.call(this);for(i=0;i<8;i++)r[i]^=n[i+4&7];if(t){var a=t.words,o=a[0],s=a[1],c=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),l=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),d=c>>>16|4294901760&l,f=l<<16|65535&c;for(r[0]^=c,r[1]^=d,r[2]^=l,r[3]^=f,r[4]^=c,r[5]^=d,r[6]^=l,r[7]^=f,i=0;i<4;i++)u.call(this)}},_doProcessBlock:function(e,t){var n=this._X;u.call(this),i[0]=n[0]^n[5]>>>16^n[3]<<16,i[1]=n[2]^n[7]>>>16^n[5]<<16,i[2]=n[4]^n[1]>>>16^n[7]<<16,i[3]=n[6]^n[3]>>>16^n[1]<<16;for(var r=0;r<4;r++)i[r]=16711935&(i[r]<<8|i[r]>>>24)|4278255360&(i[r]<<24|i[r]>>>8),e[t+r]^=i[r]},blockSize:4,ivSize:2});function u(){for(var e=this._X,t=this._C,n=0;n<8;n++)a[n]=t[n];for(t[0]=t[0]+1295307597+this._b|0,t[1]=t[1]+3545052371+(t[0]>>>0<a[0]>>>0?1:0)|0,t[2]=t[2]+886263092+(t[1]>>>0<a[1]>>>0?1:0)|0,t[3]=t[3]+1295307597+(t[2]>>>0<a[2]>>>0?1:0)|0,t[4]=t[4]+3545052371+(t[3]>>>0<a[3]>>>0?1:0)|0,t[5]=t[5]+886263092+(t[4]>>>0<a[4]>>>0?1:0)|0,t[6]=t[6]+1295307597+(t[5]>>>0<a[5]>>>0?1:0)|0,t[7]=t[7]+3545052371+(t[6]>>>0<a[6]>>>0?1:0)|0,this._b=t[7]>>>0<a[7]>>>0?1:0,n=0;n<8;n++){var r=e[n]+t[n],i=65535&r,s=r>>>16,u=((i*i>>>17)+i*s>>>15)+s*s,c=((4294901760&r)*r|0)+((65535&r)*r|0);o[n]=u^c}e[0]=o[0]+(o[7]<<16|o[7]>>>16)+(o[6]<<16|o[6]>>>16)|0,e[1]=o[1]+(o[0]<<8|o[0]>>>24)+o[7]|0,e[2]=o[2]+(o[1]<<16|o[1]>>>16)+(o[0]<<16|o[0]>>>16)|0,e[3]=o[3]+(o[2]<<8|o[2]>>>24)+o[1]|0,e[4]=o[4]+(o[3]<<16|o[3]>>>16)+(o[2]<<16|o[2]>>>16)|0,e[5]=o[5]+(o[4]<<8|o[4]>>>24)+o[3]|0,e[6]=o[6]+(o[5]<<16|o[5]>>>16)+(o[4]<<16|o[4]>>>16)|0,e[7]=o[7]+(o[6]<<8|o[6]>>>24)+o[5]|0}e.RabbitLegacy=t._createHelper(s)}(),n.RabbitLegacy)}(ax)),ux(),n)}(PS);var cx=PS.exports,lx=yt&&yt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(xS,"__esModule",{value:!0}),xS.Base=void 0;const dx=wn,fx=lx(cx);class px{print(){px.print(this)}bufferIndexOf(e,t,n=!1){if(n)return this.binarySearch(e,t,dx.Buffer.compare);return this.linearSearch(e,t,((e,t)=>e.equals(t)))}static binarySearch(e,t,n){let r=0,i=e.length-1;for(;r<=i;){const a=Math.floor((r+i)/2),o=n(e[a],t);if(0===o){for(let r=a-1;r>=0;r--)if(0!==n(e[r],t))return r+1;return 0}o<0?r=a+1:i=a-1}return-1}binarySearch(e,t,n){return px.binarySearch(e,t,n)}static linearSearch(e,t,n){for(let r=0;r<e.length;r++)if(n(e[r],t))return r;return-1}linearSearch(e,t,n){return px.linearSearch(e,t,n)}static bufferify(e){if(!dx.Buffer.isBuffer(e)){if("object"==typeof e&&e.words)return dx.Buffer.from(e.toString(fx.default.enc.Hex),"hex");if(px.isHexString(e))return dx.Buffer.from(e.replace(/^0x/,""),"hex");if("string"==typeof e)return dx.Buffer.from(e);if("bigint"==typeof e)return dx.Buffer.from(e.toString(16),"hex");if(e instanceof Uint8Array)return dx.Buffer.from(e.buffer);if("number"==typeof e){let t=e.toString();return t.length%2&&(t=`0${t}`),dx.Buffer.from(t,"hex")}if(ArrayBuffer.isView(e))return dx.Buffer.from(e.buffer,e.byteOffset,e.byteLength)}return e}bigNumberify(e){return px.bigNumberify(e)}static bigNumberify(e){if("bigint"==typeof e)return e;if("string"==typeof e)return e.startsWith("0x")&&px.isHexString(e)?BigInt("0x"+e.replace("0x","").toString()):BigInt(e);if(dx.Buffer.isBuffer(e))return BigInt("0x"+e.toString("hex"));if(e instanceof Uint8Array)return BigInt(e);if("number"==typeof e)return BigInt(e);throw new Error("cannot bigNumberify")}static isHexString(e){return"string"==typeof e&&/^(0x)?[0-9A-Fa-f]*$/.test(e)}static print(e){console.log(e.toString())}bufferToHex(e,t=!0){return px.bufferToHex(e,t)}static bufferToHex(e,t=!0){return`${t?"0x":""}${(e||dx.Buffer.alloc(0)).toString("hex")}`}bufferify(e){return px.bufferify(e)}bufferifyFn(e){return t=>{const n=e(t);return dx.Buffer.isBuffer(n)?n:this.isHexString(n)?dx.Buffer.from(n.replace("0x",""),"hex"):"string"==typeof n?dx.Buffer.from(n):"bigint"==typeof n?dx.Buffer.from(t.toString(16),"hex"):ArrayBuffer.isView(n)?dx.Buffer.from(n.buffer,n.byteOffset,n.byteLength):dx.Buffer.from(e(fx.default.enc.Hex.parse(t.toString("hex"))).toString(fx.default.enc.Hex),"hex")}}isHexString(e){return px.isHexString(e)}log2(e){return 1===e?0:1+this.log2(e/2|0)}zip(e,t){return e.map(((e,n)=>[e,t[n]]))}static hexZeroPad(e,t){return"0x"+e.replace("0x","").padStart(t,"0")}}xS.Base=px,xS.default=px;var hx=yt&&yt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(AS,"__esModule",{value:!0}),AS.MerkleTree=void 0;const mx=wn,yx=hx((function(e){for(var t=new Buffer(e.length),n=0,r=e.length-1;n<=r;++n,--r)t[n]=e[r],t[r]=e[n];return t})),gx=hx(OS),bx=hx(NS),vx=hx(xS);let Tx=class e extends vx.default{constructor(e,t=gx.default,n={}){if(super(),this.duplicateOdd=!1,this.concatenator=mx.Buffer.concat,this.hashLeaves=!1,this.isBitcoinTree=!1,this.leaves=[],this.layers=[],this.sortLeaves=!1,this.sortPairs=!1,this.sort=!1,this.fillDefaultHash=null,this.complete=!1,n.complete){if(n.isBitcoinTree)throw new Error('option "complete" is incompatible with "isBitcoinTree"');if(n.duplicateOdd)throw new Error('option "complete" is incompatible with "duplicateOdd"')}if(this.isBitcoinTree=!!n.isBitcoinTree,this.hashLeaves=!!n.hashLeaves,this.sortLeaves=!!n.sortLeaves,this.sortPairs=!!n.sortPairs,this.complete=!!n.complete,n.fillDefaultHash)if("function"==typeof n.fillDefaultHash)this.fillDefaultHash=n.fillDefaultHash;else{if(!mx.Buffer.isBuffer(n.fillDefaultHash)&&"string"!=typeof n.fillDefaultHash)throw new Error('method "fillDefaultHash" must be a function, Buffer, or string');this.fillDefaultHash=(e,t)=>n.fillDefaultHash}this.sort=!!n.sort,this.sort&&(this.sortLeaves=!0,this.sortPairs=!0),this.duplicateOdd=!!n.duplicateOdd,n.concatenator&&(this.concatenator=n.concatenator),this.hashFn=this.bufferifyFn(t),this.processLeaves(e)}getOptions(){var e,t;return{complete:this.complete,isBitcoinTree:this.isBitcoinTree,hashLeaves:this.hashLeaves,sortLeaves:this.sortLeaves,sortPairs:this.sortPairs,sort:this.sort,fillDefaultHash:null!==(t=null===(e=this.fillDefaultHash)||void 0===e?void 0:e.toString())&&void 0!==t?t:null,duplicateOdd:this.duplicateOdd}}processLeaves(e){if(this.hashLeaves&&(e=e.map(this.hashFn)),this.leaves=e.map(this.bufferify),this.sortLeaves&&(this.leaves=this.leaves.sort(mx.Buffer.compare)),this.fillDefaultHash)for(let e=this.leaves.length;e<Math.pow(2,Math.ceil(Math.log2(this.leaves.length)));e++)this.leaves.push(this.bufferify(this.fillDefaultHash(e,this.hashFn)));this.createHashes(this.leaves)}createHashes(e){for(this.layers=[e];e.length>1;){const t=this.layers.length;this.layers.push([]);const n=this.complete&&1===t&&!Number.isInteger(Math.log2(e.length))?2*e.length-Math.pow(2,Math.ceil(Math.log2(e.length))):e.length;for(let r=0;r<e.length;r+=2){if(r>=n){this.layers[t].push(...e.slice(n));break}if(r+1===e.length&&e.length%2==1){const n=e[e.length-1];let i=n;if(this.isBitcoinTree){i=this.hashFn(this.concatenator([yx.default(n),yx.default(n)])),i=yx.default(this.hashFn(i)),this.layers[t].push(i);continue}if(!this.duplicateOdd){this.layers[t].push(e[r]);continue}}const i=e[r],a=r+1===e.length?i:e[r+1];let o=null;o=this.isBitcoinTree?[yx.default(i),yx.default(a)]:[i,a],this.sortPairs&&o.sort(mx.Buffer.compare);let s=this.hashFn(this.concatenator(o));this.isBitcoinTree&&(s=yx.default(this.hashFn(s))),this.layers[t].push(s)}e=this.layers[t]}}addLeaf(e,t=!1){t&&(e=this.hashFn(e)),this.processLeaves(this.leaves.concat(e))}addLeaves(e,t=!1){t&&(e=e.map(this.hashFn)),this.processLeaves(this.leaves.concat(e))}getLeaves(e){return Array.isArray(e)?(this.hashLeaves&&(e=e.map(this.hashFn),this.sortLeaves&&(e=e.sort(mx.Buffer.compare))),this.leaves.filter((t=>-1!==this.bufferIndexOf(e,t,this.sortLeaves)))):this.leaves}getLeaf(e){return e<0||e>this.leaves.length-1?mx.Buffer.from([]):this.leaves[e]}getLeafIndex(e){e=this.bufferify(e);const t=this.getLeaves();for(let n=0;n<t.length;n++){if(t[n].equals(e))return n}return-1}getLeafCount(){return this.leaves.length}getHexLeaves(){return this.leaves.map((e=>this.bufferToHex(e)))}static marshalLeaves(t){return JSON.stringify(t.map((t=>e.bufferToHex(t))),null,2)}static unmarshalLeaves(t){let n=null;if("string"==typeof t)n=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");n=t}if(!n)return[];if(!Array.isArray(n))throw new Error("Expected JSON string to be array");return n.map(e.bufferify)}getLayers(){return this.layers}getHexLayers(){return this.layers.reduce(((e,t)=>(Array.isArray(t)?e.push(t.map((e=>this.bufferToHex(e)))):e.push(t),e)),[])}getLayersFlat(){const e=this.layers.reduce(((e,t)=>(Array.isArray(t)?e.unshift(...t):e.unshift(t),e)),[]);return e.unshift(mx.Buffer.from([0])),e}getHexLayersFlat(){return this.getLayersFlat().map((e=>this.bufferToHex(e)))}getLayerCount(){return this.getLayers().length}getRoot(){return 0===this.layers.length?mx.Buffer.from([]):this.layers[this.layers.length-1][0]||mx.Buffer.from([])}getHexRoot(){return this.bufferToHex(this.getRoot())}getProof(e,t){if(void 0===e)throw new Error("leaf is required");e=this.bufferify(e);const n=[];if(!Number.isInteger(t)){t=-1;for(let n=0;n<this.leaves.length;n++)0===mx.Buffer.compare(e,this.leaves[n])&&(t=n)}if(t<=-1)return[];for(let e=0;e<this.layers.length;e++){const r=this.layers[e],i=t%2,a=i?t-1:this.isBitcoinTree&&t===r.length-1&&e<this.layers.length-1?t:t+1;a<r.length&&n.push({position:i?"left":"right",data:r[a]}),t=t/2|0}return n}getHexProof(e,t){return this.getProof(e,t).map((e=>this.bufferToHex(e.data)))}getProofs(){const e=[];return this.getProofsDFS(this.layers.length-1,0,[],e),e}getProofsDFS(e,t,n,r){const i=t%2;if(-1===e)return void(i||r.push([...n].reverse()));if(t>=this.layers[e].length)return;const a=this.layers[e],o=i?t-1:t+1;let s=!1;o<a.length&&(s=!0,n.push({position:i?"left":"right",data:a[o]}));const u=2*t,c=2*t+1;this.getProofsDFS(e-1,u,n,r),this.getProofsDFS(e-1,c,n,r),s&&n.splice(n.length-1,1)}getHexProofs(){return this.getProofs().map((e=>this.bufferToHex(e.data)))}getPositionalHexProof(e,t){return this.getProof(e,t).map((e=>["left"===e.position?0:1,this.bufferToHex(e.data)]))}static marshalProof(t){const n=t.map((t=>"string"==typeof t?t:mx.Buffer.isBuffer(t)?e.bufferToHex(t):{position:t.position,data:e.bufferToHex(t.data)}));return JSON.stringify(n,null,2)}static unmarshalProof(t){let n=null;if("string"==typeof t)n=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");n=t}if(!n)return[];if(!Array.isArray(n))throw new Error("Expected JSON string to be array");return n.map((t=>{if("string"==typeof t)return e.bufferify(t);if(t instanceof Object)return{position:t.position,data:e.bufferify(t.data)};throw new Error("Expected item to be of type string or object")}))}static marshalTree(t){const n=t.getHexRoot(),r=t.leaves.map((t=>e.bufferToHex(t))),i=t.getHexLayers(),a=t.getOptions();return JSON.stringify({options:a,root:n,layers:i,leaves:r},null,2)}static unmarshalTree(t,n=gx.default,r={}){let i=null;if("string"==typeof t)i=JSON.parse(t);else{if(!(t instanceof Object))throw new Error("Expected type of string or object");i=t}if(!i)throw new Error("could not parse json");return r=Object.assign({},i.options||{},r),new e(i.leaves,n,r)}getProofIndices(e,t){const n=Math.pow(2,t);let r=new Set;for(const t of e){let e=n+t;for(;e>1;)r.add(1^e),e=e/2|0}const i=e.map((e=>n+e)),a=Array.from(r).sort(((e,t)=>e-t)).reverse();r=i.concat(a);const o=new Set,s=[];for(let e of r)if(!o.has(e))for(s.push(e);e>1&&(o.add(e),o.has(1^e));)e=e/2|0;return s.filter((t=>!e.includes(t-n)))}getProofIndicesForUnevenTree(e,t){const n=Math.ceil(Math.log2(t)),r=[];for(let e=0;e<n;e++){t%2!=0&&r.push({index:e,leavesCount:t}),t=Math.ceil(t/2)}const i=[];let a=e;for(let e=0;e<n;e++){const t=a.map((e=>e%2==0?e+1:e-1));let n=t.filter((e=>!a.includes(e)));const o=r.find((({index:t})=>t===e));o&&a.includes(o.leavesCount-1)&&(n=n.slice(0,-1)),i.push(n),a=[...new Set(a.map((e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2)))]}return i}getMultiProof(e,t){this.complete||console.warn("Warning: For correct multiProofs it's strongly recommended to set complete: true"),t||(t=e,e=this.getLayersFlat());if(this.isUnevenTree()&&t.every(Number.isInteger))return this.getMultiProofForUnevenTree(t);if(!t.every(Number.isInteger)){let e=t;this.sortPairs&&(e=e.sort(mx.Buffer.compare));let n=e.map((e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves))).sort(((e,t)=>e===t?0:e>t?1:-1));if(!n.every((e=>-1!==e)))throw new Error("Element does not exist in Merkle tree");const r=[],i=[];let a=[];for(let e=0;e<this.layers.length;e++){const t=this.layers[e];for(let e=0;e<n.length;e++){const o=n[e],s=this.getPairNode(t,o);r.push(t[o]),s&&i.push(s),a.push(o/2|0)}n=a.filter(((e,t,n)=>n.indexOf(e)===t)),a=[]}return i.filter((e=>!r.includes(e)))}return this.getProofIndices(t,Math.log2(e.length/2|0)).map((t=>e[t]))}getMultiProofForUnevenTree(e,t){t||(t=e,e=this.getLayers());let n=[],r=t;for(const t of e){const e=[];for(const n of r){if(n%2==0){const i=n+1;if(!r.includes(i)&&t[i]){e.push(t[i]);continue}}const i=n-1;r.includes(i)||!t[i]||e.push(t[i])}n=n.concat(e);const i=new Set;for(const e of r)e%2!=0?e%2!=0?i.add((e-1)/2):i.add((e+1)/2):i.add(e/2);r=Array.from(i)}return n}getHexMultiProof(e,t){return this.getMultiProof(e,t).map((e=>this.bufferToHex(e)))}getProofFlags(e,t){if(!Array.isArray(e)||e.length<=0)throw new Error("Invalid Inputs!");let n;if(n=e.every(Number.isInteger)?[...e].sort(((e,t)=>e===t?0:e>t?1:-1)):e.map((e=>this.bufferIndexOf(this.leaves,e,this.sortLeaves))).sort(((e,t)=>e===t?0:e>t?1:-1)),!n.every((e=>-1!==e)))throw new Error("Element does not exist in Merkle tree");const r=t.map((e=>this.bufferify(e))),i=[],a=[];for(let e=0;e<this.layers.length;e++){const t=this.layers[e];n=n.reduce(((e,n)=>{if(!i.includes(t[n])){const e=this.getPairNode(t,n),o=r.includes(t[n])||r.includes(e);e&&a.push(!o),i.push(t[n]),i.push(e)}return e.push(n/2|0),e}),[])}return a}verify(e,t,n){let r=this.bufferify(t);if(n=this.bufferify(n),!Array.isArray(e)||!t||!n)return!1;for(let t=0;t<e.length;t++){const n=e[t];let i=null,a=null;if("string"==typeof n)i=this.bufferify(n),a=!0;else if(Array.isArray(n))a=0===n[0],i=this.bufferify(n[1]);else if(mx.Buffer.isBuffer(n))i=n,a=!0;else{if(!(n instanceof Object))throw new Error("Expected node to be of type string or object");i=this.bufferify(n.data),a="left"===n.position}const o=[];this.isBitcoinTree?(o.push(yx.default(r)),o[a?"unshift":"push"](yx.default(i)),r=this.hashFn(this.concatenator(o)),r=yx.default(this.hashFn(r))):this.sortPairs?-1===mx.Buffer.compare(r,i)?(o.push(r,i),r=this.hashFn(this.concatenator(o))):(o.push(i,r),r=this.hashFn(this.concatenator(o))):(o.push(r),o[a?"unshift":"push"](i),r=this.hashFn(this.concatenator(o)))}return 0===mx.Buffer.compare(r,n)}verifyMultiProof(e,t,n,r,i){if(this.isUnevenTree())return this.verifyMultiProofForUnevenTree(e,t,n,r,i);const a=Math.ceil(Math.log2(r));e=this.bufferify(e),n=n.map((e=>this.bufferify(e))),i=i.map((e=>this.bufferify(e)));const o={};for(const[e,r]of this.zip(t,n))o[Math.pow(2,a)+e]=r;for(const[e,n]of this.zip(this.getProofIndices(t,a),i))o[e]=n;let s=Object.keys(o).map((e=>+e)).sort(((e,t)=>e-t));s=s.slice(0,s.length-1);let u=0;for(;u<s.length;){const e=s[u];if(e>=2&&{}.hasOwnProperty.call(o,1^e)){let t=[o[e-e%2],o[e-e%2+1]];this.sortPairs&&(t=t.sort(mx.Buffer.compare));const n=t[1]?this.hashFn(this.concatenator(t)):t[0];o[e/2|0]=n,s.push(e/2|0)}u+=1}return!t.length||{}.hasOwnProperty.call(o,1)&&o[1].equals(e)}verifyMultiProofWithFlags(e,t,n,r){e=this.bufferify(e),t=t.map(this.bufferify),n=n.map(this.bufferify);const i=t.length,a=r.length,o=[];let s=0,u=0,c=0;for(let e=0;e<a;e++){const a=[r[e]?s<i?t[s++]:o[u++]:n[c++],s<i?t[s++]:o[u++]].sort(mx.Buffer.compare);o[e]=this.hashFn(this.concatenator(a))}return 0===mx.Buffer.compare(o[a-1],e)}verifyMultiProofForUnevenTree(e,t,n,r,i){e=this.bufferify(e),n=n.map((e=>this.bufferify(e))),i=i.map((e=>this.bufferify(e)));const a=this.calculateRootForUnevenTree(t,n,r,i);return e.equals(a)}getDepth(){return this.getLayers().length-1}getLayersAsObject(){const e=this.getLayers().map((e=>e.map((e=>this.bufferToHex(e,!1))))),t=[];for(let n=0;n<e.length;n++){const r=[];for(let i=0;i<e[n].length;i++){const a={[e[n][i]]:null};if(t.length){a[e[n][i]]={};const r=t.shift(),o=Object.keys(r)[0];if(a[e[n][i]][o]=r[o],t.length){const r=t.shift(),o=Object.keys(r)[0];a[e[n][i]][o]=r[o]}}r.push(a)}t.push(...r)}return t[0]}static verify(t,n,r,i=gx.default,a={}){return new e([],i,a).verify(t,n,r)}static getMultiProof(t,n){return new e([]).getMultiProof(t,n)}resetTree(){this.leaves=[],this.layers=[]}getPairNode(e,t){const n=t%2==0?t+1:t-1;return n<e.length?e[n]:null}toTreeString(){const e=this.getLayersAsObject();return bx.default.asTree(e,!0)}toString(){return this.toTreeString()}isUnevenTree(e){const t=(null==e?void 0:e.length)||this.getDepth();return!this.isPowOf2(t)}isPowOf2(e){return e&&!(e&e-1)}calculateRootForUnevenTree(e,t,n,r){const i=this.zip(e,t).sort((([e],[t])=>e-t)),a=i.map((([e])=>e)),o=this.getProofIndicesForUnevenTree(a,n);let s=0;const u=[];for(let e=0;e<o.length;e++){const t=o[e],n=s;s+=t.length,u[e]=this.zip(t,r.slice(n,s))}const c=[i];for(let e=0;e<u.length;e++){const t=u[e].concat(c[e]).sort((([e],[t])=>e-t)).map((([,e])=>e)),n=c[e].map((([e])=>e)),r=[...new Set(n.map((e=>e%2==0?e/2:e%2==0?(e+1)/2:(e-1)/2)))],i=[];for(let e=0;e<r.length;e++){const n=r[e],a=t[2*e],o=t[2*e+1],s=o?this.hashFn(this.concatenator([a,o])):a;i.push([n,s])}c.push(i)}return c[c.length-1][0][1]}};AS.MerkleTree=Tx,"undefined"!=typeof window&&(window.MerkleTree=Tx),AS.default=Tx;var wx={},Ax=yt&&yt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wx,"__esModule",{value:!0}),wx.MerkleMountainRange=void 0;const Ex=wn,_x=Ax(OS),Ix=Ax(xS);class Rx extends Ix.default{constructor(e=_x.default,t=[],n,r,i){super(),this.root=Ex.Buffer.alloc(0),this.size=0,this.width=0,this.hashes={},this.data={},t=t.map(this.bufferify),this.hashFn=this.bufferifyFn(e),this.hashLeafFn=n,this.peakBaggingFn=r,this.hashBranchFn=i;for(const e of t)this.append(e)}append(e){e=this.bufferify(e);const t=this.hashFn(e),n=this.bufferToHex(t);this.data[n]&&this.bufferToHex(this.hashFn(this.data[n]))===n||(this.data[n]=e);const r=this.hashLeaf(this.size+1,t);this.hashes[this.size+1]=r,this.width+=1;const i=this.getPeakIndexes(this.width);this.size=this.getSize(this.width);const a=[];for(let e=0;e<i.length;e++)a[e]=this._getOrCreateNode(i[e]);this.root=this.peakBagging(this.width,a)}hashLeaf(e,t){return t=this.bufferify(t),this.hashLeafFn?this.bufferify(this.hashLeafFn(e,t)):this.hashFn(Ex.Buffer.concat([this.bufferify(e),t]))}hashBranch(e,t,n){return this.hashBranchFn?this.bufferify(this.hashBranchFn(e,t,n)):this.hashFn(Ex.Buffer.concat([this.bufferify(e),this.bufferify(t),this.bufferify(n)]))}getPeaks(){const e=this.getPeakIndexes(this.width),t=[];for(let n=0;n<e.length;n++)t[n]=this.hashes[e[n]];return t}getLeafIndex(e){return e%2==1?this.getSize(e):this.getSize(e-1)+1}getPeakIndexes(e){const t=this.numOfPeaks(e),n=[];let r=0,i=0;for(let a=255;a>0&&!(0!=(e&1<<a-1)&&(i=i+(1<<a)-1,n[r++]=i,n.length>=t));a--);if(r!==n.length)throw new Error("invalid bit calculation");return n}numOfPeaks(e){let t=e,n=0;for(;t>0;)t%2==1&&n++,t>>=1;return n}peakBagging(e,t){const n=this.getSize(e);if(this.numOfPeaks(e)!==t.length)throw new Error("received invalid number of peaks");return 0!==e||t.length?this.peakBaggingFn?this.bufferify(this.peakBaggingFn(n,t)):this.hashFn(Ex.Buffer.concat([this.bufferify(n),...t.map(this.bufferify)])):Ex.Buffer.alloc(0)}getSize(e){return(e<<1)-this.numOfPeaks(e)}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.getRoot())}getNode(e){return this.hashes[e]}mountainHeight(e){let t=1;for(;1<<t<=e+t;)t++;return t-1}heightAt(e){let t=e,n=0,r=0;for(;t>n;)t-=(1<<r)-1,r=this.mountainHeight(t),n=(1<<r)-1;return r-(n-t)}isLeaf(e){return 1===this.heightAt(e)}getChildren(e){const t=e-(1<<this.heightAt(e)-1),n=e-1;if(t===n)throw new Error("not a parent");return[t,n]}getMerkleProof(e){if(e>this.size)throw new Error("out of range");if(!this.isLeaf(e))throw new Error("not a leaf");const t=this.root,n=this.width,r=this.getPeakIndexes(this.width),i=[];let a=0;for(let t=0;t<r.length;t++)i[t]=this.hashes[r[t]],r[t]>=e&&0===a&&(a=r[t]);let o=0,s=0,u=this.heightAt(a);const c=[];for(;a!==e;)u--,[o,s]=this.getChildren(a),a=e<=o?o:s,c[u-1]=this.hashes[e<=o?s:o];return{root:t,width:n,peakBagging:i,siblings:c}}verify(e,t,n,r,i,a){r=this.bufferify(r);if(this.getSize(t)<n)throw new Error("index is out of range");if(!e.equals(this.peakBagging(t,i)))throw new Error("invalid root hash from the peaks");let o,s=0;const u=this.getPeakIndexes(t);for(let e=0;e<u.length;e++)if(u[e]>=n){o=i[e],s=u[e];break}if(!o)throw new Error("target not found");let c=a.length+1;const l=new Array(c);let d,f=0,p=0;for(;c>0&&(l[--c]=s,s!==n);)[f,p]=this.getChildren(s),s=n>f?p:f;for(;c<l.length;)s=l[c],d=0===c?this.hashLeaf(s,this.hashFn(r)):s-1===l[c-1]?this.hashBranch(s,a[c-1],d):this.hashBranch(s,d,a[c-1]),c++;if(!d.equals(o))throw new Error("hashed peak is invalid");return!0}peaksToPeakMap(e,t){const n={};let r=0,i=0,a=t.length;for(let o=1;o<=32;o++)r=32-o,i=1<<o-1,n[r]=0!=(e&i)?t[--a]:0;if(0!==a)throw new Error("invalid number of peaks");return n}peakMapToPeaks(e,t){const n=this.numOfPeaks(e),r=new Array(n);let i=0;for(let e=0;e<32;e++)0!==t[e]&&(r[i++]=t[e]);if(i!==n)throw new Error("invalid number of peaks");return r}peakUpdate(e,t,n){const r={},i=e+1;let a=this.getLeafIndex(i),o=this.hashLeaf(a,n),s=0,u=0,c=!1,l=!1,d=!1;for(let n=1;n<=32;n++)s=32-n,d?r[s]=t[s]:(u=1<<n-1,c=0!=(e&u),l=0!=(i&u),a++,c&&(o=this.hashBranch(a,t[s],o)),l?(r[s]=c?t[s]:o,d=!0):r[s]=0);return r}rollUp(e,t,n,r){if(!e.equals(this.peakBagging(t,n)))throw new Error("invalid root hash from the peaks");let i=t,a=this.peaksToPeakMap(t,n);for(let e=0;e<r.length;e++)a=this.peakUpdate(i,a,r[e]),i++;return this.peakBagging(i,this.peakMapToPeaks(i,a))}_getOrCreateNode(e){if(e>this.size)throw new Error("out of range");if(!this.hashes[e]){const[t,n]=this.getChildren(e),r=this._getOrCreateNode(t),i=this._getOrCreateNode(n);this.hashes[e]=this.hashBranch(e,r,i)}return this.hashes[e]}}wx.MerkleMountainRange=Rx,"undefined"!=typeof window&&(window.MerkleMountainRange=Rx),wx.default=Rx;var Cx={},Ox=yt&&yt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Cx,"__esModule",{value:!0}),Cx.IncrementalMerkleTree=void 0;const kx=Ox(xS),Sx=Ox(NS);class Nx extends kx.default{constructor(e,t){if(super(),this.hashFn=e,t.depth&&(this.depth=t.depth),t.arity&&(this.arity=t.arity),this.depth<1)throw new Error("depth must be greater than 0");if(this.arity<1)throw new Error("arity must be greater than 0");const n=[];let r=t.zeroValue;if(this.zeroValue=r,this.zeroes=[],this.depth)for(let e=0;e<this.depth;e++)this.zeroes.push(r),n[e]=[],r=this.hashFn(Array(this.arity).fill(r));this.nodes=n,this.root=r}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.bufferify(this.getRoot()))}insert(e){if(this.depth&&this.arity&&this.nodes[0].length>=this.getMaxLeaves())throw new Error("tree is full");let t=e,n=this.nodes[0].length;for(let e=0;e<this.depth;e+=1){const r=n-n%this.arity,i=r+this.arity,a=[];this.nodes[e][n]=t;for(let t=r;t<i;t+=1)t<this.nodes[e].length?a.push(this.nodes[e][t]):a.push(this.zeroes[e]);t=this.hashFn(a),n=Math.floor(n/this.arity)}this.root=t}delete(e){this.update(e,this.zeroValue)}update(e,t){if(e<0||e>=this.nodes[0].length)throw new Error("out of bounds");let n=t;for(let t=0;t<this.depth;t+=1){const r=e-e%this.arity,i=r+this.arity,a=[];this.nodes[t][e]=n;for(let e=r;e<i;e+=1)e<this.nodes[t].length?a.push(this.nodes[t][e]):a.push(this.zeroes[t]);n=this.hashFn(a),e=Math.floor(e/this.arity)}this.root=n}getDepth(){return this.depth}getArity(){return this.arity}getMaxLeaves(){return Math.pow(this.depth,this.arity)}indexOf(e){return this.nodes[0].indexOf(e)}getLeaves(){const e=this.copyList(this.nodes[0]);for(let t=this.nodes[0].length;t<this.getMaxLeaves();t++)e[t]=this.zeroValue;return e}copyList(e){return e.map((e=>BigInt(e)))}getLayers(){const e=[];for(const t of this.nodes)e.push(this.copyList(t));if(e[0].length<this.getMaxLeaves()){let t=e[0].length;for(let n=t;n<this.getMaxLeaves();n++)e[0][n]=this.zeroValue;for(let n=0;n<this.depth;n++){const r=t-t%this.arity,i=r+this.arity;for(let t=r;t<i;t++)t>=e[n].length&&(e[n][t]=this.zeroes[n]);t=Math.floor(t/this.arity)}}return e.push([this.root]),e}getHexLayers(){return this.getLayers().reduce(((e,t)=>(Array.isArray(t)?e.push(t.map((e=>this.bufferToHex(this.bufferify(e))))):e.push(t),e)),[])}getLayersAsObject(){const e=this.getLayers().map((e=>e.map((e=>this.bufferToHex(this.bufferify(e),!1))))),t=[];for(let n=0;n<e.length;n++){const r=[];for(let i=0;i<e[n].length;i++){const a={[e[n][i]]:null};if(t.length){a[e[n][i]]={};const r=t.shift(),o=Object.keys(r)[0];if(a[e[n][i]][o]=r[o],t.length){const r=t.shift(),o=Object.keys(r)[0];a[e[n][i]][o]=r[o]}}r.push(a)}t.push(...r)}return t[0]}computeRoot(){let e,t=this.nodes[0].length;for(let n=0;n<this.depth;n+=1){const r=t-t%this.arity,i=r+this.arity,a=[];for(let e=r;e<i;e+=1)e<this.nodes[n].length?a.push(this.nodes[n][e]):a.push(this.zeroes[n]);e=this.hashFn(a),t=Math.floor(t/this.arity)}return e}getProof(e){if(e<0||e>=this.nodes[0].length)throw new Error("The leaf does not exist in this tree");const t=[],n=[],r=e;for(let r=0;r<this.depth;r+=1){const i=e%this.arity,a=e-i,o=a+this.arity;n[r]=i,t[r]=[];for(let n=a;n<o;n+=1)n!==e&&(n<this.nodes[r].length?t[r].push(this.nodes[r][n]):t[r].push(this.zeroes[r]));e=Math.floor(e/this.arity)}return{root:this.root,leaf:this.nodes[0][r],pathIndices:n,siblings:t}}verify(e){let t=e.leaf;for(let n=0;n<e.siblings.length;n+=1){const r=e.siblings[n].slice();r.splice(e.pathIndices[n],0,t),t=this.hashFn(r)}return e.root===t}toString(){return this.toTreeString()}toTreeString(){const e=this.getLayersAsObject();return Sx.default.asTree(e,!0)}}Cx.IncrementalMerkleTree=Nx,"undefined"!=typeof window&&(window.IncrementalMerkleTree=Nx),Cx.default=Nx;var xx={};Object.defineProperty(xx,"__esModule",{value:!0}),xx.MerkleSumTree=xx.ProofStep=xx.Leaf=xx.Bucket=void 0;const Px=xS;class Mx{constructor(e,t){this.size=BigInt(e),this.hashed=t,this.parent=null,this.left=null,this.right=null}}xx.Bucket=Mx;xx.Leaf=class{constructor(e,t,n){this.hashFn=e,this.rng=t.map((e=>BigInt(e))),this.data=n}getBucket(){let e;return e=this.data?this.hashFn(this.data):Buffer.alloc(32),new Mx(BigInt(this.rng[1])-BigInt(this.rng[0]),e)}};class Bx{constructor(e,t){this.bucket=e,this.right=t}}xx.ProofStep=Bx;class Dx extends Px.Base{constructor(e,t){super(),this.leaves=e,this.hashFn=t,Dx.checkConsecutive(e),this.buckets=[];for(const t of e)this.buckets.push(t.getBucket());let n=[];for(const e of this.buckets)n.push(e);for(;1!==n.length;){const e=[];for(;n.length;)if(n.length>=2){const t=n.shift(),r=n.shift(),i=t.size+r.size,a=this.hashFn(Buffer.concat([this.sizeToBuffer(t.size),this.bufferify(t.hashed),this.sizeToBuffer(r.size),this.bufferify(r.hashed)])),o=new Mx(i,a);r.parent=o,t.parent=r.parent,t.right=r,r.left=t,e.push(o)}else e.push(n.shift());n=e}this.root=n[0]}sizeToBuffer(e){const t=Buffer.alloc(8);return new DataView(t.buffer).setBigInt64(0,BigInt(e),!1),t}static checkConsecutive(e){let t=BigInt(0);for(const n of e){if(n.rng[0]!==t)throw new Error("leaf ranges are invalid");t=BigInt(n.rng[1])}}getProof(e){let t=this.buckets[Number(e)];const n=[];for(;t&&t.parent;){const e=!!t.right,r=t.right?t.right:t.left;t=t.parent,n.push(new Bx(r,e))}return n}sum(e){let t=BigInt(0);for(const n of e)t+=BigInt(n);return t}verifyProof(e,t,n){const r=[this.sum(n.filter((e=>!e.right)).map((e=>e.bucket.size))),BigInt(e.size)-this.sum(n.filter((e=>e.right)).map((e=>e.bucket.size)))];if(r[0]!==t.rng[0]||r[1]!==t.rng[1])return!1;let i,a=t.getBucket();for(const e of n)i=e.right?this.hashFn(Buffer.concat([this.sizeToBuffer(a.size),this.bufferify(a.hashed),this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed)])):this.hashFn(Buffer.concat([this.sizeToBuffer(e.bucket.size),this.bufferify(e.bucket.hashed),this.sizeToBuffer(a.size),this.bufferify(a.hashed)])),a=new Mx(BigInt(a.size)+BigInt(e.bucket.size),i);return a.size===e.size&&a.hashed.toString("hex")===e.hashed.toString("hex")}}xx.MerkleSumTree=Dx,"undefined"!=typeof window&&(window.MerkleSumTree=Dx),xx.default=Dx,function(e){var t=yt&&yt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.MerkleTree=void 0;const n=t(AS);e.MerkleTree=n.default;var r=wx;Object.defineProperty(e,"MerkleMountainRange",{enumerable:!0,get:function(){return r.MerkleMountainRange}});var i=Cx;Object.defineProperty(e,"IncrementalMerkleTree",{enumerable:!0,get:function(){return i.IncrementalMerkleTree}});var a=xx;Object.defineProperty(e,"MerkleSumTree",{enumerable:!0,get:function(){return a.MerkleSumTree}}),e.default=n.default}(wS);var Fx={};Object.defineProperty(Fx,"__esModule",{value:!0}),Fx.DefaultGetter=void 0;const Lx=Ak,Ux=new Nk.Logger("defaults"),qx={integer:0,address:(0,Lx.hexZeroPad)("0x",20),bool:!1,bytes:"0x",string:""},jx=e=>void 0!==e&&(null!=e&&(["string","number"].includes(typeof e)&&BigInt(e)===BigInt(0)||Array.isArray(e)&&e.every(jx)||"object"==typeof e&&Object.values(e).every(jx)||"boolean"==typeof e&&!1===e));class Gx{constructor(e){this.types=e,this.defaultValues={};for(const t in e){const e=this.getDefaultValue(t);this.defaultValues[t]=e,jx(e)||Ux.throwError(`Got non-empty value for type ${t} in default generator: ${e}`)}}static from(e,t){const{defaultValues:n}=new Gx(e);return t?n[t]:n}getDefaultValue(e){if(this.defaultValues[e])return this.defaultValues[e];const t=function(e){var t;const[,n]=null!==(t=e.match(/^bytes(\d+)$/))&&void 0!==t?t:[];return n?(0,Lx.hexZeroPad)("0x",parseInt(n)):(e.match(/^(u?)int(\d*)$/)&&(e="integer"),qx[e])}(e);if(void 0!==t)return t;const n=e.match(/^(.*)(\x5b(\d*)\x5d)$/);if(n){const e=n[1],t=parseInt(n[3]);if(t>0){const n=this.getDefaultValue(e);return Array(t).fill(n)}return[]}const r=this.types[e];return r?r.reduce(((e,{name:t,type:n})=>Object.assign(Object.assign({},e),{[t]:this.getDefaultValue(n)})),{}):Ux.throwArgumentError(`unknown type: ${e}`,"type",e)}}Fx.DefaultGetter=Gx;var Hx={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getNextLayer=e.getRoot=e.fillArray=e.hashConcat=e.bufferKeccak=e.hexToBuffer=e.bufferToHex=e.chunk=e.makeArray=void 0;const t=Ak;e.makeArray=(e,t)=>Array(e).fill(0).map(((e,n)=>t(n)));e.chunk=(t,n)=>(0,e.makeArray)(Math.ceil(t.length/n),(e=>t.slice(e*n,(e+1)*n)));e.bufferToHex=e=>(0,t.hexlify)(e);e.hexToBuffer=e=>Buffer.from(e.slice(2),"hex");e.bufferKeccak=n=>(0,e.hexToBuffer)((0,t.keccak256)(n));e.hashConcat=n=>(0,e.bufferKeccak)((0,t.hexConcat)(n));e.fillArray=(e,t,n)=>(t>e.length&&e.push(...Array(t-e.length).fill(n)),e);e.getRoot=(t,n=!0)=>{if(0===t.length)throw new Error("empty tree");const r=[t.map((t=>{const r=Buffer.isBuffer(t)?t:(0,e.hexToBuffer)(t);return n?(0,e.bufferKeccak)(r):r}))];for(;r[r.length-1].length>1;)r.push((0,e.getNextLayer)(r[r.length-1]));return r[r.length-1][0]};e.getNextLayer=t=>(0,e.chunk)(t,2).map(e.hashConcat)}(Hx),Object.defineProperty(TS,"__esModule",{value:!0}),TS.Eip712MerkleTree=void 0;const zx=Ck,Wx=Ak,Vx=wS,Kx=Fx,Xx=Hx;TS.Eip712MerkleTree=class{get completedSize(){return Math.pow(2,this.depth)}getCompleteElements(){const e=this.elements;return(0,Xx.fillArray)([...e],this.completedSize,this.defaultNode)}getCompleteLeaves(){const e=this.elements.map(this.leafHasher);return(0,Xx.fillArray)([...e],this.completedSize,this.defaultLeaf)}get root(){return this.tree.getHexRoot()}getProof(e){const t=this.getCompleteLeaves()[e];return{leaf:t,proof:this.tree.getHexProof(t,e),root:this.tree.getHexRoot()}}getEncodedProofAndSignature(e,t){const{proof:n}=this.getProof(e);return((e,t,n=`0x${"ff".repeat(64)}`)=>(0,Wx.hexConcat)([n,`0x${e.toString(16).padStart(6,"0")}`,Wx.defaultAbiCoder.encode([`uint256[${t.length}]`],[t])]))(e,n,t)}getDataToSign(){let e=this.getCompleteElements();for(;e.length>2;)e=(0,Xx.chunk)(e,2);return e}add(e){this.elements.push(e)}getBulkOrderHash(){const e=this.encoder.hashStruct("BulkOrder",{tree:this.getDataToSign()}),t=this.getCompleteLeaves().map(Xx.hexToBuffer),n=(0,Xx.bufferToHex)((0,Xx.getRoot)(t,!1)),r=(0,Wx.keccak256)((0,Wx.toUtf8Bytes)(this.encoder._types.BulkOrder));if((0,Wx.keccak256)((0,Wx.hexConcat)([r,n]))!==e)throw new Error("expected derived bulk order hash to match");return e}constructor(e,t,n,r,i){this.types=e,this.rootType=t,this.leafType=n,this.elements=r,this.depth=i;const a=zx._TypedDataEncoder.from(e);var o,s;this.encoder=a,this.leafHasher=e=>a.hashStruct(n,e),this.defaultNode=Kx.DefaultGetter.from(e,n),this.defaultLeaf=this.leafHasher(this.defaultNode),this.tree=(o=this.getCompleteLeaves(),s=this.defaultLeaf,new Vx.MerkleTree(o.map(Xx.hexToBuffer),Xx.bufferKeccak,{complete:!0,sort:!1,hashLeaves:!1,fillDefaultHash:(0,Xx.hexToBuffer)(s)}))}},Object.defineProperty(vS,"__esModule",{value:!0}),vS.getBulkOrderTypeHashes=vS.getBulkOrderTypeHash=vS.getBulkOrderTree=vS.getBulkOrderTreeHeight=void 0;const Jx=Ak,Yx=TS,Qx=Fx,$x=Hx,Zx=zk;function eP(e){const t=Object.assign({},Zx.EIP_712_BULK_ORDER_TYPE);return t.BulkOrder=[{name:"tree",type:`OrderComponents${"[2]".repeat(e)}`}],t}function tP(e){return Math.max(Math.ceil(Math.log2(e)),1)}function nP(e){const t=eP(e),n=Jx._TypedDataEncoder.from(t),r=(0,Jx.toUtf8Bytes)(n._types.BulkOrder);return(0,Jx.keccak256)(r)}vS.getBulkOrderTreeHeight=tP,vS.getBulkOrderTree=function(e,t=0,n=tP(e.length+t)){const r=eP(n),i=Qx.DefaultGetter.from(r,"OrderComponents");let a=[...e];return t>0&&(a=[...(0,$x.fillArray)([],t,i),...e]),new Yx.Eip712MerkleTree(r,"BulkOrder","OrderComponents",a,n)},vS.getBulkOrderTypeHash=nP,vS.getBulkOrderTypeHashes=function(e){const t=[];for(let n=0;n<e;n++)t.push(nP(n+1));return t};var rP={},iP={},aP={};Object.defineProperty(aP,"__esModule",{value:!0}),aP.MerkleTree=void 0;const oP=wk,sP=Ak,uP=wS,cP=e=>(0,sP.keccak256)(Buffer.from(oP.BigNumber.from(e).toHexString().slice(2).padStart(64,"0"),"hex"));aP.MerkleTree=class{constructor(e){this.tree=new uP.default(e.map(cP),sP.keccak256,{sort:!0})}getProof(e){return this.tree.getHexProof(cP(e))}getRoot(){return this.tree.getRoot().toString("hex")?this.tree.getHexRoot():"0"}},Object.defineProperty(iP,"__esModule",{value:!0}),iP.shouldUseMatchForFulfill=iP.generateRandomSalt=iP.mapOrderAmountsFromUnitsToFill=iP.mapOrderAmountsFromFilledStatus=iP.totalItemsAmount=iP.areAllCurrenciesSame=iP.mapInputItemToOfferItem=iP.deductFees=iP.feeToConsiderationItem=void 0;const lP=wk,dP=Ak,fP=zk,pP=eS(),hP=aP,mP=(e,t)=>lP.BigNumber.from(e).mul(lP.BigNumber.from(t)).div(fP.ONE_HUNDRED_PERCENT_BP);iP.feeToConsiderationItem=({fee:e,token:t,baseAmount:n,baseEndAmount:r=n})=>({itemType:t===lP.ethers.constants.AddressZero?fP.ItemType.NATIVE:fP.ItemType.ERC20,token:t,identifierOrCriteria:"0",startAmount:mP(n,e.basisPoints).toString(),endAmount:mP(r,e.basisPoints).toString(),recipient:e.recipient});iP.deductFees=(e,t)=>{if(!t)return e;const n=t.reduce(((e,t)=>e+t.basisPoints),0);return e.map((e=>Object.assign(Object.assign({},e),{startAmount:(0,pP.isCurrencyItem)(e)?lP.BigNumber.from(e.startAmount).sub(mP(e.startAmount,n)).toString():e.startAmount,endAmount:(0,pP.isCurrencyItem)(e)?lP.BigNumber.from(e.endAmount).sub(mP(e.endAmount,n)).toString():e.endAmount})))};iP.mapInputItemToOfferItem=e=>{var t,n,r,i,a,o,s,u;if("itemType"in e){if("identifiers"in e||"criteria"in e){const i="criteria"in e?e.criteria:new hP.MerkleTree(e.identifiers).getRoot();return{itemType:e.itemType===fP.ItemType.ERC721?fP.ItemType.ERC721_WITH_CRITERIA:fP.ItemType.ERC1155_WITH_CRITERIA,token:e.token,identifierOrCriteria:i,startAmount:null!==(t=e.amount)&&void 0!==t?t:"1",endAmount:null!==(r=null!==(n=e.endAmount)&&void 0!==n?n:e.amount)&&void 0!==r?r:"1"}}return"amount"in e||"endAmount"in e?{itemType:e.itemType,token:e.token,identifierOrCriteria:null!==(i=e.identifier)&&void 0!==i?i:"0",startAmount:e.amount,endAmount:null!==(o=null!==(a=e.endAmount)&&void 0!==a?a:e.amount)&&void 0!==o?o:"1"}:{itemType:e.itemType,token:e.token,identifierOrCriteria:e.identifier,startAmount:"1",endAmount:"1"}}return{itemType:e.token&&e.token!==lP.ethers.constants.AddressZero?fP.ItemType.ERC20:fP.ItemType.NATIVE,token:null!==(s=e.token)&&void 0!==s?s:lP.ethers.constants.AddressZero,identifierOrCriteria:"0",startAmount:e.amount,endAmount:null!==(u=e.endAmount)&&void 0!==u?u:e.amount}};iP.areAllCurrenciesSame=({offer:e,consideration:t})=>{const n=[...e,...t].filter(pP.isCurrencyItem);return n.every((({itemType:e,token:t})=>e===n[0].itemType&&t.toLowerCase()===n[0].token.toLowerCase()))};iP.totalItemsAmount=e=>(lP.BigNumber.from(0),lP.BigNumber.from(0),e.map((({startAmount:e,endAmount:t})=>({startAmount:e,endAmount:t}))).reduce((({startAmount:e,endAmount:t},{startAmount:n,endAmount:r})=>({startAmount:e.add(n),endAmount:t.add(r)})),{startAmount:lP.BigNumber.from(0),endAmount:lP.BigNumber.from(0)}));iP.mapOrderAmountsFromFilledStatus=(e,{totalFilled:t,totalSize:n})=>{if(t.eq(0)||n.eq(0))return e;const r=n.sub(t).mul(fP.ONE_HUNDRED_PERCENT_BP).div(n);return{parameters:Object.assign(Object.assign({},e.parameters),{offer:e.parameters.offer.map((e=>Object.assign(Object.assign({},e),{startAmount:mP(e.startAmount,r).toString(),endAmount:mP(e.endAmount,r).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:mP(e.startAmount,r).toString(),endAmount:mP(e.endAmount,r).toString()})))}),signature:e.signature}};const yP=(e,t,n)=>lP.BigNumber.from(e).mul(lP.BigNumber.from(t)).div(n);iP.mapOrderAmountsFromUnitsToFill=(e,{unitsToFill:t,totalSize:n})=>{const r=lP.BigNumber.from(t);if(r.lte(0))throw new Error("Units to fill must be greater than 1");const i=(0,pP.getMaximumSizeForOrder)(e);return n.eq(0)&&(n=i),{parameters:Object.assign(Object.assign({},e.parameters),{offer:e.parameters.offer.map((e=>Object.assign(Object.assign({},e),{startAmount:yP(e.startAmount,r,n).toString(),endAmount:yP(e.endAmount,r,n).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:yP(e.startAmount,r,n).toString(),endAmount:yP(e.endAmount,r,n).toString()})))}),signature:e.signature}};iP.generateRandomSalt=e=>e?`0x${Buffer.from((0,dP.concat)([(0,dP.keccak256)((0,dP.toUtf8Bytes)(e)).slice(0,10),Uint8Array.from(Array(20).fill(0)),(0,dP.randomBytes)(8)])).toString("hex")}`:`0x${Buffer.from((0,dP.randomBytes)(8)).toString("hex").padStart(64,"0")}`;iP.shouldUseMatchForFulfill=()=>!0,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.getAdvancedOrderNumeratorDenominator=e.generateFulfillOrdersFulfillments=e.fulfillAvailableOrders=e.validateAndSanitizeFromOrderStatus=e.fulfillStandardOrder=e.fulfillBasicOrder=e.shouldUseBasicFulfill=void 0;const t=wk,n=zk,r=Wk,i=cS,a=Qk(),o=Zk,s=eS(),u=iP,c=tS;e.shouldUseBasicFulfill=({offer:e,consideration:r,offerer:i},a)=>{if(!a.eq(0))return!1;if(e.length>1||0===r.length)return!1;const o=[...e,...r],c=o.filter((({itemType:e})=>[n.ItemType.ERC721,n.ItemType.ERC1155].includes(e))),l=o.filter((({itemType:e})=>(0,s.isCriteriaItem)(e)));if((0,s.isNativeCurrencyItem)(e[0]))return!1;if(1!==c.length||0!==l.length)return!1;if(!(0,u.areAllCurrenciesSame)({offer:e,consideration:r}))return!1;if(o.some((({startAmount:e,endAmount:t})=>e!==t)))return!1;const[d,...f]=r;if(d.recipient.toLowerCase()!==i.toLowerCase())return!1;if(r.length>1&&f.every((t=>t.itemType===e[0].itemType))&&(0,u.totalItemsAmount)(f).endAmount.gt(e[0].endAmount))return!1;const p=o.filter(s.isCurrencyItem),h=p.filter((({itemType:e})=>e===n.ItemType.NATIVE)).every((({token:e})=>e===t.ethers.constants.AddressZero)),m=p.every((({identifierOrCriteria:e})=>t.BigNumber.from(e).eq(0))),y=c.filter((({itemType:e})=>e===n.ItemType.ERC721)).every((({endAmount:e})=>"1"===e));return h&&m&&y};const l={[n.ItemType.ERC20]:{[n.ItemType.ERC721]:n.BasicOrderRouteType.ERC721_TO_ERC20,[n.ItemType.ERC1155]:n.BasicOrderRouteType.ERC1155_TO_ERC20},[n.ItemType.ERC721]:{[n.ItemType.NATIVE]:n.BasicOrderRouteType.ETH_TO_ERC721,[n.ItemType.ERC20]:n.BasicOrderRouteType.ERC20_TO_ERC721},[n.ItemType.ERC1155]:{[n.ItemType.NATIVE]:n.BasicOrderRouteType.ETH_TO_ERC1155,[n.ItemType.ERC20]:n.BasicOrderRouteType.ERC20_TO_ERC1155}};function d(e,t){const{isValidated:n,isCancelled:r,totalFilled:i,totalSize:a}=t;if(a.gt(0)&&i.div(a).eq(1))throw new Error("The order you are trying to fulfill is already filled");if(r)throw new Error("The order you are trying to fulfill is cancelled");return n?{parameters:Object.assign({},e.parameters),signature:"0x"}:e}function f(e){const t=({sourceOrDestination:e,operator:t="",token:n,identifier:r})=>`${e}-${t}-${n}-${r}`,n={},r={};return e.forEach((({order:e,offererOperator:r,offerCriteria:i},o)=>{const u=(0,a.getItemToCriteriaMap)(e.parameters.offer,i);return e.parameters.offer.forEach(((i,a)=>{var c,l,d;const f=`${t({sourceOrDestination:e.parameters.offerer,operator:r,token:i.token,identifier:null!==(l=null===(c=u.get(i))||void 0===c?void 0:c.identifier)&&void 0!==l?l:i.identifierOrCriteria})}${(0,s.isErc721Item)(i.itemType)?a:""}`;n[f]=[...null!==(d=n[f])&&void 0!==d?d:[],{orderIndex:o,itemIndex:a}]}))})),e.forEach((({order:e,considerationCriteria:n,tips:i},o)=>{const u=(0,a.getItemToCriteriaMap)(e.parameters.consideration,n);return[...e.parameters.consideration,...i].forEach(((e,n)=>{var i,a,c;const l=`${t({sourceOrDestination:e.recipient,token:e.token,identifier:null!==(a=null===(i=u.get(e))||void 0===i?void 0:i.identifier)&&void 0!==a?a:e.identifierOrCriteria})}${(0,s.isErc721Item)(e.itemType)?n:""}`;r[l]=[...null!==(c=r[l])&&void 0!==c?c:[],{orderIndex:o,itemIndex:n}]}))})),{offerFulfillments:Object.values(n),considerationFulfillments:Object.values(r)}}e.fulfillBasicOrder=function({order:e,seaportContract:a,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:u,timeBasedItemParams:d,offererOperator:f,fulfillerOperator:p,signer:h,tips:m=[],conduitKey:y=n.NO_CONDUIT,domain:g},b){var v,T;const{offer:w,consideration:A}=e.parameters,E=[...A,...m],_=w[0],[I,...R]=E,C=null===(v=l[_.itemType])||void 0===v?void 0:v[I.itemType];if(void 0===C)throw new Error("Order parameters did not result in a valid basic fulfillment");const O=R.map((({startAmount:e,recipient:t})=>({amount:e,recipient:t}))),k=E.filter((e=>e.itemType!==w[0].itemType)),S=null===(T=(0,s.getSummedTokenAndIdentifierAmounts)({items:k,criterias:[],timeBasedItemParams:Object.assign(Object.assign({},d),{isConsiderationItem:!0})})[t.ethers.constants.AddressZero])||void 0===T?void 0:T[0],N=(0,i.validateBasicFulfillBalancesAndApprovals)({offer:w,consideration:E,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:u,timeBasedItemParams:d,offererOperator:f,fulfillerOperator:p}),x={offerer:e.parameters.offerer,offererConduitKey:e.parameters.conduitKey,zone:e.parameters.zone,basicOrderType:e.parameters.orderType+4*C,offerToken:_.token,offerIdentifier:_.identifierOrCriteria,offerAmount:_.endAmount,considerationToken:I.token,considerationIdentifier:I.identifierOrCriteria,considerationAmount:I.endAmount,startTime:e.parameters.startTime,endTime:e.parameters.endTime,salt:e.parameters.salt,totalOriginalAdditionalRecipients:e.parameters.consideration.length-1,signature:e.signature,fulfillerConduitKey:y,additionalRecipients:O,zoneHash:e.parameters.zoneHash},P={value:S},M=[...(0,r.getApprovalActions)(N,b,h),{type:"exchange",transactionMethods:(0,c.getTransactionMethods)(a.connect(h),"fulfillBasicOrder",[x,P],g)}];return{actions:M,executeAllActions:()=>(0,c.executeAllActions)(M)}},e.fulfillStandardOrder=function({order:n,unitsToFill:o=0,totalSize:l,totalFilled:d,offerCriteria:f,considerationCriteria:p,tips:h=[],extraData:m,seaportContract:y,offererBalancesAndApprovals:g,fulfillerBalancesAndApprovals:b,offererOperator:v,fulfillerOperator:T,timeBasedItemParams:w,conduitKey:A,recipientAddress:E,signer:_,domain:I},R){var C;const O=o?(0,u.mapOrderAmountsFromUnitsToFill)(n,{unitsToFill:o,totalSize:l}):(0,u.mapOrderAmountsFromFilledStatus)(n,{totalFilled:d,totalSize:l}),{parameters:{offer:k,consideration:S}}=O,N=[...S,...h],x=k.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),P=N.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),M=x.length>0||P.length>0;if(x.length!==f.length||P.length!==p.length)throw new Error("You must supply the appropriate criterias for criteria based items");const B=null===(C=(0,s.getSummedTokenAndIdentifierAmounts)({items:N,criterias:p,timeBasedItemParams:Object.assign(Object.assign({},w),{isConsiderationItem:!0})})[t.ethers.constants.AddressZero])||void 0===C?void 0:C[0],D=(0,i.validateStandardFulfillBalancesAndApprovals)({offer:k,consideration:N,offerCriteria:f,considerationCriteria:p,offererBalancesAndApprovals:g,fulfillerBalancesAndApprovals:b,timeBasedItemParams:w,offererOperator:v,fulfillerOperator:T}),F={value:B},L=(0,r.getApprovalActions)(D,R,_),U=E!==t.ethers.constants.AddressZero,q=Boolean(o)||M||U,j=Object.assign(Object.assign({},n),{parameters:Object.assign(Object.assign({},n.parameters),{consideration:[...n.parameters.consideration,...h],totalOriginalConsiderationItems:S.length})}),{numerator:G,denominator:H}=(0,e.getAdvancedOrderNumeratorDenominator)(n,o),z=[...L,{type:"exchange",transactionMethods:q?(0,c.getTransactionMethods)(y.connect(_),"fulfillAdvancedOrder",[Object.assign(Object.assign({},j),{numerator:G,denominator:H,extraData:null!=m?m:"0x"}),M?(0,a.generateCriteriaResolvers)({orders:[n],offerCriterias:[f],considerationCriterias:[p]}):[],A,E,F],I):(0,c.getTransactionMethods)(y.connect(_),"fulfillOrder",[j,A,F],I)}];return{actions:z,executeAllActions:()=>(0,c.executeAllActions)(z)}},e.validateAndSanitizeFromOrderStatus=d,e.fulfillAvailableOrders=function({ordersMetadata:n,seaportContract:o,fulfillerBalancesAndApprovals:l,fulfillerOperator:p,currentBlockTimestamp:h,ascendingAmountTimestampBuffer:m,conduitKey:y,signer:g,recipientAddress:b,exactApproval:v,domain:T}){const w=n.map((e=>Object.assign(Object.assign({},e),{order:d(e.order,e.orderStatus)}))),A=w.map((e=>Object.assign(Object.assign({},e),{order:e.unitsToFill?(0,u.mapOrderAmountsFromUnitsToFill)(e.order,{unitsToFill:e.unitsToFill,totalSize:e.orderStatus.totalSize}):(0,u.mapOrderAmountsFromFilledStatus)(e.order,{totalFilled:e.orderStatus.totalFilled,totalSize:e.orderStatus.totalSize})})));let E=t.BigNumber.from(0);const _=[],I=w.flatMap((e=>[e.order.parameters.offer,e.order.parameters.consideration])).flat().filter((({itemType:e})=>(0,s.isCriteriaItem)(e))).length>0;A.forEach((({order:e,tips:n,offerCriteria:r,considerationCriteria:a,offererBalancesAndApprovals:o,offererOperator:u})=>{var c,d;const f=[...e.parameters.consideration,...n],y={startTime:e.parameters.startTime,endTime:e.parameters.endTime,currentBlockTimestamp:h,ascendingAmountTimestampBuffer:m,isConsiderationItem:!0};E=E.add(null!==(d=null===(c=(0,s.getSummedTokenAndIdentifierAmounts)({items:f,criterias:a,timeBasedItemParams:y})[t.ethers.constants.AddressZero])||void 0===c?void 0:c[0])&&void 0!==d?d:t.BigNumber.from(0));const g=(0,i.validateStandardFulfillBalancesAndApprovals)({offer:e.parameters.offer,consideration:f,offerCriteria:r,considerationCriteria:a,offererBalancesAndApprovals:o,fulfillerBalancesAndApprovals:l,timeBasedItemParams:y,offererOperator:u,fulfillerOperator:p}),b=e.parameters.offer.filter((({itemType:e})=>(0,s.isCriteriaItem)(e))),v=f.filter((({itemType:e})=>(0,s.isCriteriaItem)(e)));if(b.length!==r.length||v.length!==a.length)throw new Error("You must supply the appropriate criterias for criteria based items");g.forEach((e=>{_.find((t=>t.token===e.token))||_.push(e)}))}));const R={value:E},C=(0,r.getApprovalActions)(_,v,g),O=w.map((({order:t,unitsToFill:n=0,tips:r,extraData:i})=>{const{numerator:a,denominator:o}=(0,e.getAdvancedOrderNumeratorDenominator)(t,n),s=[...t.parameters.consideration,...r];return Object.assign(Object.assign({},t),{parameters:Object.assign(Object.assign({},t.parameters),{consideration:s,totalOriginalConsiderationItems:t.parameters.consideration.length}),numerator:a,denominator:o,extraData:i})})),{offerFulfillments:k,considerationFulfillments:S}=f(n),N={type:"exchange",transactionMethods:(0,c.getTransactionMethods)(o.connect(g),"fulfillAvailableAdvancedOrders",[O,I?(0,a.generateCriteriaResolvers)({orders:n.map((({order:e})=>e)),offerCriterias:n.map((({offerCriteria:e})=>e)),considerationCriterias:n.map((({considerationCriteria:e})=>e))}):[],k,S,y,b,O.length,R],T)},x=[...C,N];return{actions:x,executeAllActions:()=>(0,c.executeAllActions)(x)}},e.generateFulfillOrdersFulfillments=f;e.getAdvancedOrderNumeratorDenominator=(e,n)=>{const r=(0,s.getMaximumSizeForOrder)(e),i=t.BigNumber.from(n),a=(0,o.gcd)(i,r);return{numerator:n?i.div(a):t.BigNumber.from(1),denominator:n?r.div(a):t.BigNumber.from(1)}}}(rP);var gP=yt&&yt.__awaiter||function(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))};Object.defineProperty(YO,"__esModule",{value:!0}),YO.Seaport=void 0;const bP=Tk,vP=wk,TP=Ak,wP=Gk,AP=Hk,EP=zk,_P=Wk,IP=cS,RP=vS,CP=rP,OP=eS(),kP=iP,SP=tS;YO.Seaport=class{constructor(e,{overrides:t,ascendingAmountFulfillmentBuffer:n=300,balanceAndApprovalChecksOnOrderCreation:r=!0,conduitKeyToConduit:i,seaportVersion:a="1.5"}={}){var o,s,u;this.OPENSEA_CONDUIT_KEY=EP.OPENSEA_CONDUIT_KEY,this.getOrderHash=e=>{const t="OfferItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount)",n="ConsiderationItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount,address recipient)",r=`OrderComponents(address offerer,address zone,OfferItem[] offer,ConsiderationItem[] consideration,uint8 orderType,uint256 startTime,uint256 endTime,bytes32 zoneHash,uint256 salt,bytes32 conduitKey,uint256 counter)${n}${t}`,i=vP.ethers.utils.keccak256(vP.ethers.utils.toUtf8Bytes(t)),a=vP.ethers.utils.keccak256(vP.ethers.utils.toUtf8Bytes(n)),o=vP.ethers.utils.keccak256(vP.ethers.utils.toUtf8Bytes(r)),s=vP.ethers.utils.keccak256("0x"+e.offer.map((e=>vP.ethers.utils.keccak256("0x"+[i.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0")].join("")).slice(2))).join("")),u=vP.ethers.utils.keccak256("0x"+e.consideration.map((e=>vP.ethers.utils.keccak256("0x"+[a.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0"),e.recipient.slice(2).padStart(64,"0")].join("")).slice(2))).join(""));return vP.ethers.utils.keccak256("0x"+[o.slice(2),e.offerer.slice(2).padStart(64,"0"),e.zone.slice(2).padStart(64,"0"),s.slice(2),u.slice(2),e.orderType.toString().padStart(64,"0"),vP.ethers.BigNumber.from(e.startTime).toHexString().slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.endTime).toHexString().slice(2).padStart(64,"0"),e.zoneHash.slice(2),vP.BigNumber.from(e.salt).toHexString().slice(2).padStart(64,"0"),e.conduitKey.slice(2).padStart(64,"0"),vP.ethers.BigNumber.from(e.counter).toHexString().slice(2).padStart(64,"0")].join(""))};const c=e instanceof vP.providers.Provider?e:e.provider;if(this.signer=e._isSigner?e:void 0,!c)throw new Error("Either a provider or custom signer with provider must be provided");this.provider=c,this.multicallProvider=new bP.providers.MulticallProvider(this.provider),this.contract=new vP.Contract(null!==(o=null==t?void 0:t.contractAddress)&&void 0!==o?o:"1.5"===a?EP.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS:EP.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS,AP.SeaportABIv14,this.multicallProvider),this.domainRegistry=new vP.Contract(null!==(s=null==t?void 0:t.domainRegistryAddress)&&void 0!==s?s:EP.DOMAIN_REGISTRY_ADDRESS,wP.DomainRegistryABI,this.multicallProvider),this.config={ascendingAmountFulfillmentBuffer:n,balanceAndApprovalChecksOnOrderCreation:r,conduitKeyToConduit:Object.assign(Object.assign(Object.assign({},EP.KNOWN_CONDUIT_KEYS_TO_CONDUIT),{[EP.NO_CONDUIT]:this.contract.address}),i),seaportVersion:a},this.defaultConduitKey=null!==(u=null==t?void 0:t.defaultConduitKey)&&void 0!==u?u:EP.NO_CONDUIT}createOrder(e,t,n){return gP(this,void 0,void 0,(function*(){const r=this._getSigner(t),i=null!=t?t:yield r.getAddress(),{orderComponents:a,approvalActions:o}=yield this._formatOrder(r,i,Boolean(n),e),s={type:"create",getMessageToSign:()=>this._getMessageToSign(a),createOrder:()=>gP(this,void 0,void 0,(function*(){const e=yield this.signOrder(a,i);return{parameters:a,signature:e}}))},u=[...o,s];return{actions:u,executeAllActions:()=>(0,SP.executeAllActions)(u)}}))}createBulkOrders(e,t,n){var r;return gP(this,void 0,void 0,(function*(){const i=this._getSigner(t),a=yield i.getAddress(),o=yield this.getCounter(a),s=[],u=[];for(const t of e){null!==(r=t.counter)&&void 0!==r||(t.counter=o);const{orderComponents:e,approvalActions:c}=yield this._formatOrder(i,a,Boolean(n),t);u.push(e);for(const e of c)void 0===s.find((t=>t.token===e.token))&&s.push(e)}const c={type:"createBulk",getMessageToSign:()=>this._getBulkMessageToSign(u),createBulkOrders:()=>gP(this,void 0,void 0,(function*(){return yield this.signBulkOrder(u,a)}))},l=[...s,c];return{actions:l,executeAllActions:()=>(0,SP.executeAllActions)(l)}}))}_formatOrder(e,t,n,{conduitKey:r=this.defaultConduitKey,zone:i=vP.ethers.constants.AddressZero,zoneHash:a=vP.ethers.constants.HashZero,startTime:o=Math.floor(Date.now()/1e3).toString(),endTime:s=EP.MAX_INT.toString(),offer:u,consideration:c,counter:l,allowPartialFills:d,restrictedByZone:f,fees:p,domain:h,salt:m}){var y;return gP(this,void 0,void 0,(function*(){const g=u.map(kP.mapInputItemToOfferItem),b=[...c.map((e=>{var n;return Object.assign(Object.assign({},(0,kP.mapInputItemToOfferItem)(e)),{recipient:null!==(n=e.recipient)&&void 0!==n?n:t})}))];if((null==p?void 0:p.length)&&!(0,kP.areAllCurrenciesSame)({offer:g,consideration:b}))throw new Error("All currency tokens in the order must be the same token when applying fees");const v=[...g,...b].filter(OP.isCurrencyItem),T=(0,kP.totalItemsAmount)(v),w=this.config.conduitKeyToConduit[r],A=this._getOrderTypeFromOrderOptions({allowPartialFills:d,restrictedByZone:f}),E=[...(0,kP.deductFees)(b,p),...v.length&&null!==(y=null==p?void 0:p.map((e=>(0,kP.feeToConsiderationItem)({fee:e,token:v[0].token,baseAmount:T.startAmount,baseEndAmount:T.endAmount}))))&&void 0!==y?y:[]],_=void 0!==m?`0x${vP.BigNumber.from(m).toHexString().slice(2).padStart(64,"0")}`:(0,kP.generateRandomSalt)(h),I={offerer:t,zone:i,zoneHash:a,startTime:o,endTime:s,orderType:A,offer:g,consideration:E,totalOriginalConsiderationItems:E.length,salt:_,conduitKey:r,counter:(null!=l?l:yield this.getCounter(t)).toString()},R=[];if(this.config.balanceAndApprovalChecksOnOrderCreation){const r=yield(0,IP.getBalancesAndApprovals)({owner:t,items:g,criterias:[],multicallProvider:this.multicallProvider,operator:w}),i=(0,IP.validateOfferBalancesAndApprovals)({offer:g,criterias:[],balancesAndApprovals:r,throwOnInsufficientBalances:!0,operator:w}),a=(0,_P.getApprovalActions)(i,n,e);R.push(...a)}return{orderComponents:I,approvalActions:R}}))}_getSigner(e){if(this.signer)return this.signer;if(!(this.provider instanceof vP.providers.JsonRpcProvider))throw new Error("Either signer or a JsonRpcProvider must be provided");return this.provider.getSigner(e)}_getOrderTypeFromOrderOptions({allowPartialFills:e,restrictedByZone:t}){return e?t?EP.OrderType.PARTIAL_RESTRICTED:EP.OrderType.PARTIAL_OPEN:t?EP.OrderType.FULL_RESTRICTED:EP.OrderType.FULL_OPEN}_getDomainData(){return gP(this,void 0,void 0,(function*(){const{chainId:e}=yield this.provider.getNetwork();return{name:EP.SEAPORT_CONTRACT_NAME,version:"1.5"===this.config.seaportVersion?EP.SEAPORT_CONTRACT_VERSION_V1_5:EP.SEAPORT_CONTRACT_VERSION_V1_4,chainId:e,verifyingContract:this.contract.address}}))}_getMessageToSign(e){return gP(this,void 0,void 0,(function*(){const t=yield this._getDomainData();return JSON.stringify(TP._TypedDataEncoder.getPayload(t,EP.EIP_712_ORDER_TYPE,e))}))}_getBulkMessageToSign(e){return gP(this,void 0,void 0,(function*(){const t=yield this._getDomainData(),n=(0,RP.getBulkOrderTree)(e),r=n.types,i=n.getDataToSign();return JSON.stringify(TP._TypedDataEncoder.getPayload(t,r,{tree:i}))}))}signOrder(e,t){return gP(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData();let i=yield n._signTypedData(r,EP.EIP_712_ORDER_TYPE,e);return 132===i.length&&(i=vP.ethers.utils.splitSignature(i).compact),i}))}signBulkOrder(e,t){return gP(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData(),i=(0,RP.getBulkOrderTree)(e),a=i.types,o={tree:i.getDataToSign()};let s=yield n._signTypedData(r,a,o);132===s.length&&(s=vP.ethers.utils.splitSignature(s).compact);return e.map(((e,t)=>({parameters:e,signature:i.getEncodedProofAndSignature(t,s)})))}))}cancelOrders(e,t,n){const r=this._getSigner(t);return(0,SP.getTransactionMethods)(this.contract.connect(r),"cancel",[e],n)}bulkCancelOrders(e,t){const n=this._getSigner(e);return(0,SP.getTransactionMethods)(this.contract.connect(n),"incrementCounter",[],t)}validate(e,t,n){const r=this._getSigner(t);return(0,SP.getTransactionMethods)(this.contract.connect(r),"validate",[e],n)}getOrderStatus(e){return this.contract.getOrderStatus(e)}getCounter(e){return this.contract.getCounter(e)}fulfillOrder({order:e,unitsToFill:t,offerCriteria:n=[],considerationCriteria:r=[],tips:i=[],extraData:a="0x",accountAddress:o,conduitKey:s=this.defaultConduitKey,recipientAddress:u=vP.ethers.constants.AddressZero,domain:c,exactApproval:l=!1}){return gP(this,void 0,void 0,(function*(){if(!e.signature)throw new Error("Order is missing signature");const{parameters:d}=e,{offerer:f,offer:p,consideration:h}=d,m=this._getSigner(o),y=yield m.getAddress(),g=this.config.conduitKeyToConduit[d.conduitKey],b=this.config.conduitKeyToConduit[s],[v,T,w,A]=yield Promise.all([(0,IP.getBalancesAndApprovals)({owner:f,items:p,criterias:n,multicallProvider:this.multicallProvider,operator:g}),(0,IP.getBalancesAndApprovals)({owner:y,items:[...p,...h],criterias:[...n,...r],multicallProvider:this.multicallProvider,operator:b}),this.multicallProvider.getBlock("latest"),this.getOrderStatus(this.getOrderHash(d))]),E=w.timestamp,{totalFilled:_,totalSize:I}=A,R=(0,CP.validateAndSanitizeFromOrderStatus)(e,A),C={startTime:R.parameters.startTime,endTime:R.parameters.endTime,currentBlockTimestamp:E,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer},O=i.map((e=>Object.assign(Object.assign({},(0,kP.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))),k=u===vP.ethers.constants.AddressZero;return!t&&k&&(0,CP.shouldUseBasicFulfill)(R.parameters,_)?(0,CP.fulfillBasicOrder)({order:R,seaportContract:this.contract,offererBalancesAndApprovals:v,fulfillerBalancesAndApprovals:T,timeBasedItemParams:C,conduitKey:s,offererOperator:g,fulfillerOperator:b,signer:m,tips:O,domain:c},l):(0,CP.fulfillStandardOrder)({order:R,unitsToFill:t,totalFilled:_,totalSize:I.eq(0)?(0,OP.getMaximumSizeForOrder)(R):I,offerCriteria:n,considerationCriteria:r,tips:O,extraData:a,seaportContract:this.contract,offererBalancesAndApprovals:v,fulfillerBalancesAndApprovals:T,timeBasedItemParams:C,conduitKey:s,signer:m,offererOperator:g,fulfillerOperator:b,recipientAddress:u,domain:c},l)}))}fulfillOrders({fulfillOrderDetails:e,accountAddress:t,conduitKey:n=this.defaultConduitKey,recipientAddress:r=vP.ethers.constants.AddressZero,domain:i,exactApproval:a=!1}){return gP(this,void 0,void 0,(function*(){if(e.some((e=>!e.order.signature)))throw new Error("All orders must include signatures");const o=this._getSigner(t),s=yield o.getAddress(),u=e.map((({order:e})=>this.config.conduitKeyToConduit[e.parameters.conduitKey])),c=this.config.conduitKeyToConduit[n],l=e.flatMap((({order:e})=>e.parameters.offer)),d=e.flatMap((({order:e})=>e.parameters.consideration)),f=e.flatMap((({offerCriteria:e=[]})=>e)),p=e.flatMap((({considerationCriteria:e=[]})=>e)),[h,m,y,g]=yield Promise.all([Promise.all(e.map((({order:e,offerCriteria:t=[]},n)=>(0,IP.getBalancesAndApprovals)({owner:e.parameters.offerer,items:e.parameters.offer,criterias:t,operator:u[n],multicallProvider:this.multicallProvider})))),(0,IP.getBalancesAndApprovals)({owner:s,items:[...l,...d],criterias:[...f,...p],operator:c,multicallProvider:this.multicallProvider}),this.multicallProvider.getBlock("latest"),Promise.all(e.map((({order:e})=>this.getOrderStatus(this.getOrderHash(e.parameters)))))]),b=e.map(((e,t)=>{var n,r,i,a,o;return{order:e.order,unitsToFill:e.unitsToFill,orderStatus:g[t],offerCriteria:null!==(n=e.offerCriteria)&&void 0!==n?n:[],considerationCriteria:null!==(r=e.considerationCriteria)&&void 0!==r?r:[],tips:null!==(a=null===(i=e.tips)||void 0===i?void 0:i.map((e=>Object.assign(Object.assign({},(0,kP.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))))&&void 0!==a?a:[],extraData:null!==(o=e.extraData)&&void 0!==o?o:"0x",offererBalancesAndApprovals:h[t],offererOperator:u[t]}}));return(0,CP.fulfillAvailableOrders)({ordersMetadata:b,seaportContract:this.contract,fulfillerBalancesAndApprovals:m,currentBlockTimestamp:y.timestamp,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer,fulfillerOperator:c,signer:o,conduitKey:n,recipientAddress:r,domain:i,exactApproval:a})}))}matchOrders({orders:e,fulfillments:t,overrides:n,accountAddress:r,domain:i}){const a=this._getSigner(r);return(0,SP.getTransactionMethods)(this.contract.connect(a),"matchOrders",[e,t,n],i)}setDomain(e,t){const n=this._getSigner(t);return(0,SP.getTransactionMethods)(this.domainRegistry.connect(n),"setDomain",[e])}getNumberOfDomains(e){return gP(this,void 0,void 0,(function*(){return this.domainRegistry.getNumberOfDomains(e)}))}getDomain(e,t){return this.domainRegistry.getDomain(e,t)}getDomains(e,t){return gP(this,void 0,void 0,(function*(){try{if(t)throw Error;return this.domainRegistry.getDomains(e)}catch(t){const n=(yield this.domainRegistry.getNumberOfDomains(e)).toNumber();return Promise.all([...Array(n).keys()].map((t=>this.domainRegistry.getDomain(e,t))))}}))}},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.Seaport=void 0;const t=YO;Object.defineProperty(e,"Seaport",{enumerable:!0,get:function(){return t.Seaport}})}(JO);class NP{config;constructor(e){this.config=e}}class xP extends Error{url;status;statusText;body;request;constructor(e,t,n){super(n),this.name="ApiError",this.url=t.url,this.status=t.status,this.statusText=t.statusText,this.body=t.body,this.request=e}}class PP extends Error{constructor(e){super(e),this.name="CancelError"}get isCancelled(){return!0}}class MP{[Symbol.toStringTag];_isResolved;_isRejected;_isCancelled;_cancelHandlers;_promise;_resolve;_reject;constructor(e){this._isResolved=!1,this._isRejected=!1,this._isCancelled=!1,this._cancelHandlers=[],this._promise=new Promise(((t,n)=>{this._resolve=t,this._reject=n;const r=e=>{this._isResolved||this._isRejected||this._isCancelled||this._cancelHandlers.push(e)};return Object.defineProperty(r,"isResolved",{get:()=>this._isResolved}),Object.defineProperty(r,"isRejected",{get:()=>this._isRejected}),Object.defineProperty(r,"isCancelled",{get:()=>this._isCancelled}),e((e=>{this._isResolved||this._isRejected||this._isCancelled||(this._isResolved=!0,this._resolve?.(e))}),(e=>{this._isResolved||this._isRejected||this._isCancelled||(this._isRejected=!0,this._reject?.(e))}),r)}))}then(e,t){return this._promise.then(e,t)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(){if(!(this._isResolved||this._isRejected||this._isCancelled)){if(this._isCancelled=!0,this._cancelHandlers.length)try{for(const e of this._cancelHandlers)e()}catch(e){return void console.warn("Cancellation threw an error",e)}this._cancelHandlers.length=0,this._reject?.(new PP("Request aborted"))}}get isCancelled(){return this._isCancelled}}const BP=e=>null!=e,DP=e=>"string"==typeof e,FP=e=>DP(e)&&""!==e,LP=e=>"object"==typeof e&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.arrayBuffer&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag]),UP=e=>{const t=[],n=(e,r)=>{BP(r)&&(Array.isArray(r)?r.forEach((t=>{n(e,t)})):"object"==typeof r?Object.entries(r).forEach((([t,r])=>{n(`${e}[${t}]`,r)})):((e,n)=>{t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(n))}`)})(e,r))};return Object.entries(e).forEach((([e,t])=>{n(e,t)})),t.length>0?`?${t.join("&")}`:""},qP=async(e,t)=>"function"==typeof t?t(e):t,jP=async(e,t,n)=>{const r=await qP(t,e.TOKEN),i=await qP(t,e.USERNAME),a=await qP(t,e.PASSWORD),o=await qP(t,e.HEADERS),s="function"==typeof n?.getHeaders&&n?.getHeaders()||{},u=Object.entries({Accept:"application/json",...o,...t.headers,...s}).filter((([e,t])=>BP(t))).reduce(((e,[t,n])=>({...e,[t]:String(n)})),{});if(FP(r)&&(u.Authorization=`Bearer ${r}`),FP(i)&&FP(a)){const e=(e=>{try{return btoa(e)}catch(t){return Buffer.from(e).toString("base64")}})(`${i}:${a}`);u.Authorization=`Basic ${e}`}return t.body&&(t.mediaType?u["Content-Type"]=t.mediaType:LP(t.body)?u["Content-Type"]=t.body.type||"application/octet-stream":DP(t.body)?u["Content-Type"]="text/plain":t.body instanceof XO||(u["Content-Type"]="application/json")),u},GP=(e,t)=>new MP((async(n,r,i)=>{try{const r=((e,t)=>{const n=e.ENCODE_PATH||encodeURI,r=t.url.replace("{api-version}",e.VERSION).replace(/{(.*?)}/g,((e,r)=>t.path?.hasOwnProperty(r)?n(String(t.path[r])):e)),i=`${e.BASE}${r}`;return t.query?`${i}${UP(t.query)}`:i})(e,t),o=(e=>{if(e.formData){const t=new XO,n=(e,n)=>{DP(n)||LP(n)?t.append(e,n):t.append(e,JSON.stringify(n))};return Object.entries(e.formData).filter((([e,t])=>BP(t))).forEach((([e,t])=>{Array.isArray(t)?t.forEach((t=>n(e,t))):n(e,t)})),t}})(t),s=(e=>{if(e.body)return e.body})(t),u=await jP(e,t,o);if(!i.isCancelled){const c=await(async(e,t,n,r,i,a,o)=>{const s=Qe.CancelToken.source(),u={url:n,headers:a,data:r??i,method:t.method,withCredentials:e.WITH_CREDENTIALS,cancelToken:s.token};o((()=>s.cancel("The user aborted a request.")));try{return await Qe.request(u)}catch(e){const t=e;if(t.response)return t.response;throw e}})(e,t,r,s,o,u,i),l=(e=>{if(204!==e.status)return e.data})(c),d=((e,t)=>{if(t){const n=e.headers[t];if(DP(n))return n}})(c,t.responseHeader),f={url:r,ok:(a=c.status,a>=200&&a<300),status:c.status,statusText:c.statusText,body:d??l};((e,t)=>{const n={400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error",502:"Bad Gateway",503:"Service Unavailable",...e.errors}[t.status];if(n)throw new xP(e,t,n);if(!t.ok)throw new xP(e,t,"Generic Error")})(t,f),n(f.body)}}catch(e){r(e)}var a}));class HP extends NP{constructor(e){super(e)}request(e){return GP(this.config,e)}}class zP{httpRequest;constructor(e){this.httpRequest=e}cancelOrders({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/cancel",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",401:"Unauthorised Request (401)",404:"The specified resource was not found (404)",429:"Too Many Requests (429)",500:"Internal Server Error (500)",501:"Not Implemented Error (501)"}})}listListings({chainName:e,status:t,sellItemContractAddress:n,buyItemContractAddress:r,accountAddress:i,sellItemMetadataId:a,sellItemTokenId:o,fromUpdatedAt:s,pageSize:u,sortBy:c,sortDirection:l,pageCursor:d}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:e},query:{status:t,sell_item_contract_address:n,buy_item_contract_address:r,account_address:i,sell_item_metadata_id:a,sell_item_token_id:o,from_updated_at:s,page_size:u,sort_by:c,sort_direction:l,page_cursor:d},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}createListing({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getListing({chainName:e,listingId:t}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings/{listing_id}",path:{chain_name:e,listing_id:t},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}fulfillmentData({chainName:e,requestBody:t}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/fulfillment-data",path:{chain_name:e},body:t,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}listTrades({chainName:e,accountAddress:t,fromIndexedAt:n,pageSize:r,sortBy:i,sortDirection:a,pageCursor:o}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades",path:{chain_name:e},query:{account_address:t,from_indexed_at:n,page_size:r,sort_by:i,sort_direction:a,page_cursor:o},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getTrade({chainName:e,tradeId:t}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades/{trade_id}",path:{chain_name:e,trade_id:t},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}}class WP{orders;request;constructor(e,t=HP){this.request=new t({BASE:e?.BASE??"https://api.sandbox.immutable.com",VERSION:e?.VERSION??"1.0.0",WITH_CREDENTIALS:e?.WITH_CREDENTIALS??!1,CREDENTIALS:e?.CREDENTIALS??"include",TOKEN:e?.TOKEN,USERNAME:e?.USERNAME,PASSWORD:e?.PASSWORD,HEADERS:e?.HEADERS,ENCODE_PATH:e?.ENCODE_PATH}),this.orders=new zP(this.request)}}var VP,KP,XP,JP,YP,QP,$P,ZP,eM,tM;function nM(e){const t=e.buy.map((e=>{if("ERC20"===e.type)return{type:"ERC20",contractAddress:e.contract_address,amount:e.amount};if("NATIVE"===e.type)return{type:"NATIVE",amount:e.amount};throw new Error("Buy items must be either ERC20 or NATIVE")})),n=e.sell.map((e=>{if("ERC721"===e.type)return{type:"ERC721",contractAddress:e.contract_address,tokenId:e.token_id};throw new Error("Sell items must ERC721")}));return{id:e.id,type:e.type,accountAddress:e.account_address,buy:t,sell:n,fees:e.fees.map((e=>({amount:e.amount,recipientAddress:e.recipient_address,type:e.type}))),chain:e.chain,createdAt:e.created_at,endAt:e.end_at,orderHash:e.order_hash,protocolData:{orderType:e.protocol_data.order_type,counter:e.protocol_data.counter,seaportAddress:e.protocol_data.seaport_address,seaportVersion:e.protocol_data.seaport_version,zoneAddress:e.protocol_data.zone_address},salt:e.salt,signature:e.signature,startAt:e.start_at,status:e.status,updatedAt:e.updated_at}}function rM(e){const t=e.buy.map((e=>{if("ERC20"===e.type)return{type:"ERC20",contractAddress:e.contract_address,amount:e.amount};if("NATIVE"===e.type)return{type:"NATIVE",amount:e.amount};throw new Error("Buy items must be either ERC20 or NATIVE")})),n=e.sell.map((e=>{if("ERC721"===e.type)return{type:"ERC721",contractAddress:e.contract_address,tokenId:e.token_id};throw new Error("Sell items must ERC721")}));return{id:e.id,orderId:e.order_id,buy:t,sell:n,buyerFees:e.buyer_fees.map((e=>({amount:e.amount,recipientAddress:e.recipient_address,type:e.type}))),chain:e.chain,indexedAt:e.indexed_at,blockchainMetadata:{blockNumber:e.blockchain_metadata.block_number,logIndex:e.blockchain_metadata.log_index,transactionHash:e.blockchain_metadata.transaction_hash,transactionIndex:e.blockchain_metadata.transaction_index},buyerAddress:e.buyer_address,makerAddress:e.maker_address,sellerAddress:e.seller_address,takerAddress:e.taker_address}}function iM(e){return{nextCursor:e.next_cursor,previousCursor:e.previous_cursor}}!function(e){var t;(t=e.cancellation_type||(e.cancellation_type={})).ON_CHAIN="ON_CHAIN",t.OFF_CHAIN="OFF_CHAIN"}(VP||(VP={})),function(e){(e.reason_code||(e.reason_code={})).FILLED="FILLED"}(KP||(KP={})),function(e){var t;(t=e.type||(e.type={})).ROYALTY="ROYALTY",t.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",t.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",t.PROTOCOL="PROTOCOL"}(XP||(XP={})),function(e){(e.type||(e.type={})).LISTING="LISTING"}(JP||(JP={})),function(e){e.PENDING="PENDING",e.ACTIVE="ACTIVE",e.INACTIVE="INACTIVE",e.FILLED="FILLED",e.EXPIRED="EXPIRED",e.CANCELLED="CANCELLED"}(YP||(YP={})),function(e){(e.order_type||(e.order_type={})).FULL_RESTRICTED="FULL_RESTRICTED"}(QP||(QP={})),function(e){e.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",e.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",e.PROTOCOL="PROTOCOL",e.ROYALTY="ROYALTY"}($P||($P={})),function(e){e.APPROVAL="APPROVAL",e.FULFILL_ORDER="FULFILL_ORDER",e.CANCEL="CANCEL"}(ZP||(ZP={})),function(e){e.CREATE_LISTING="CREATE_LISTING",e.OFF_CHAIN_CANCELLATION="OFF_CHAIN_CANCELLATION"}(eM||(eM={})),function(e){e.TRANSACTION="TRANSACTION",e.SIGNABLE="SIGNABLE"}(tM||(tM={}));const aM="1.5",oM={OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]};var sM,uM,cM,lM;function dM(e,t){return async()=>{const n=await e.buildTransaction();return n.gasLimit=await e.estimateGas(),n.gasLimit=n.gasLimit.add(n.gasLimit.div(5)),n.chainId=t,n}}!function(e){e[e.FULL_OPEN=0]="FULL_OPEN",e[e.PARTIAL_OPEN=1]="PARTIAL_OPEN",e[e.FULL_RESTRICTED=2]="FULL_RESTRICTED",e[e.PARTIAL_RESTRICTED=3]="PARTIAL_RESTRICTED"}(sM||(sM={})),function(e){e[e.NATIVE=0]="NATIVE",e[e.ERC20=1]="ERC20",e[e.ERC721=2]="ERC721",e[e.ERC1155=3]="ERC1155",e[e.ERC721_WITH_CRITERIA=4]="ERC721_WITH_CRITERIA",e[e.ERC1155_WITH_CRITERIA=5]="ERC1155_WITH_CRITERIA"}(uM||(uM={})),function(e){e[e.OFFER=0]="OFFER",e[e.CONSIDERATION=1]="CONSIDERATION"}(cM||(cM={})),function(e){e[e.ETH_TO_ERC721=0]="ETH_TO_ERC721",e[e.ETH_TO_ERC1155=1]="ETH_TO_ERC1155",e[e.ERC20_TO_ERC721=2]="ERC20_TO_ERC721",e[e.ERC20_TO_ERC1155=3]="ERC20_TO_ERC1155",e[e.ERC721_TO_ERC20=4]="ERC721_TO_ERC20",e[e.ERC1155_TO_ERC20=5]="ERC1155_TO_ERC20"}(lM||(lM={}));class fM{seaportLibFactory;provider;seaportContractAddress;zoneContractAddress;constructor(e,t,n,r){this.seaportLibFactory=e,this.provider=t,this.seaportContractAddress=n,this.zoneContractAddress=r}async prepareSeaportOrder(e,t,n,r,i){const{actions:a}=await this.createSeaportOrder(e,t,n,r,i),o=[],s=a.find((e=>"approval"===e.type));s&&o.push({type:tM.TRANSACTION,purpose:ZP.APPROVAL,buildTransaction:dM(s.transactionMethods,(await this.provider.getNetwork()).chainId)});const u=a.find((e=>"create"===e.type));if(!u)throw new Error("No create order action found");const c=function(e){const t=JSON.parse(e).message;return t.salt=ur.from(t.salt).toHexString(),t}(await u.getMessageToSign());return o.push({type:tM.SIGNABLE,purpose:eM.CREATE_LISTING,message:await this.getTypedDataFromOrderComponents(c)}),{actions:o,orderComponents:c,orderHash:this.getSeaportLib().getOrderHash(c)}}async fulfillOrder(e,t,n){const{orderComponents:r,tips:i}=this.mapImmutableOrderToSeaportOrderComponents(e),a=this.getSeaportLib(e),{actions:o}=await a.fulfillOrders({accountAddress:t,fulfillOrderDetails:[{order:{parameters:r,signature:e.signature},extraData:n,tips:i}]}),s=[],u=o.find((e=>"approval"===e.type));u&&s.push({type:tM.TRANSACTION,buildTransaction:dM(u.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:ZP.APPROVAL});const c=o.find((e=>"exchange"===e.type));if(!c)throw new Error("No exchange action found");return s.push({type:tM.TRANSACTION,buildTransaction:dM(c.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:ZP.FULFILL_ORDER}),{actions:s,expiration:fM.getExpirationISOTimeFromExtraData(n),order:nM(e)}}async fulfillBulkOrders(e,t){const n=e.map((e=>{const{orderComponents:t,tips:n}=this.mapImmutableOrderToSeaportOrderComponents(e.order);return{order:{parameters:t,signature:e.order.signature},extraData:e.extra_data,tips:n}})),{actions:r}=await this.getSeaportLib().fulfillOrders({fulfillOrderDetails:n,accountAddress:t}),i=[],a=r.find((e=>"approval"===e.type));a&&i.push({type:tM.TRANSACTION,buildTransaction:dM(a.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:ZP.APPROVAL});const o=r.find((e=>"exchange"===e.type));if(!o)throw new Error("No exchange action found");return i.push({type:tM.TRANSACTION,buildTransaction:dM(o.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:ZP.FULFILL_ORDER}),{actions:i,expiration:n.map((e=>fM.getExpirationISOTimeFromExtraData(e.extraData))).reduce(((e,t)=>new Date(e)<new Date(t)?e:t))}}async cancelOrders(e,t){const n=e.map((e=>this.mapImmutableOrderToSeaportOrderComponents(e).orderComponents)),r=this.getSeaportLib(e[0]),i=await r.cancelOrders(n,t);return{type:tM.TRANSACTION,buildTransaction:dM(i,(await this.provider.getNetwork()).chainId),purpose:ZP.CANCEL}}mapImmutableOrderToSeaportOrderComponents(e){return function(e,t,n){const r=e.buy.map((t=>{switch(t.type){case"NATIVE":return{startAmount:t.amount,endAmount:t.amount,itemType:uM.NATIVE,recipient:e.account_address,token:Xi,identifierOrCriteria:"0"};case"ERC20":return{startAmount:t.amount,endAmount:t.amount,itemType:uM.ERC20,recipient:e.account_address,token:t.contract_address||Xi,identifierOrCriteria:"0"};default:return{startAmount:"1",endAmount:"1",itemType:uM.ERC721,recipient:e.account_address,token:t.contract_address||Xi,identifierOrCriteria:"0"}}})),i=e.fees.map((t=>({amount:t.amount,itemType:"ERC20"===e.buy[0].type?uM.ERC20:uM.NATIVE,recipient:t.recipient_address,token:"ERC20"===e.buy[0].type?e.buy[0].contract_address:Xi,identifierOrCriteria:"0"})));return{orderComponents:{conduitKey:ra,consideration:[...r],offer:e.sell.map((e=>{const t=e;return{startAmount:"1",endAmount:"1",itemType:uM.ERC721,token:t.contract_address,identifierOrCriteria:t.token_id}})),counter:t,endTime:Math.round(new Date(e.end_at).getTime()/1e3).toString(),startTime:Math.round(new Date(e.start_at).getTime()/1e3).toString(),salt:e.salt,offerer:e.account_address,zone:n,totalOriginalConsiderationItems:r.length,orderType:sM.FULL_RESTRICTED,zoneHash:ra},tips:i}}(e,e.protocol_data.counter,this.zoneContractAddress)}createSeaportOrder(e,t,n,r,i){return this.getSeaportLib().createOrder({allowPartialFills:!1,offer:[{itemType:uM.ERC721,token:t.contractAddress,identifier:t.tokenId}],consideration:[{token:"ERC20"===n.type?n.contractAddress:void 0,amount:n.amount,recipient:e}],startTime:(r.getTime()/1e3).toFixed(0),endTime:(i.getTime()/1e3).toFixed(0),zone:this.zoneContractAddress,restrictedByZone:!0},e)}async getTypedDataFromOrderComponents(e){const{chainId:t}=await this.provider.getNetwork();return{domain:{name:"ImmutableSeaport",version:aM,chainId:t,verifyingContract:this.seaportContractAddress},types:oM,value:e}}getSeaportLib(e){const t=e?.protocol_data?.seaport_address??this.seaportContractAddress,n=aM;return this.seaportLibFactory.create(n,t)}static getExpirationISOTimeFromExtraData(e){const t=e.slice(44,60),n=parseInt(t,16);return new Date(1e3*n).toISOString()}}class pM{orderbookService;chainName;seaportAddress;constructor(e,t,n){this.orderbookService=e,this.chainName=t,this.seaportAddress=n}async fulfillmentData(e){return this.orderbookService.fulfillmentData({chainName:this.chainName,requestBody:e})}async getListing(e){return this.orderbookService.getListing({chainName:this.chainName,listingId:e})}async getTrade(e){return this.orderbookService.getTrade({chainName:this.chainName,tradeId:e})}async listListings(e){return this.orderbookService.listListings({chainName:this.chainName,...e})}async listTrades(e){return this.orderbookService.listTrades({chainName:this.chainName,...e})}async cancelOrders(e,t,n){return this.orderbookService.cancelOrders({chainName:this.chainName,requestBody:{account_address:t,orders:e,signature:n}})}async createListing({orderHash:e,orderComponents:t,orderSignature:n,makerFees:r}){if(1!==t.offer.length)throw new Error("Only one item can be listed at a time");if(Number(t.offer[0].itemType)!==uM.ERC721)throw new Error("Only ERC721 tokens can be listed");const i=[...t.consideration.map((e=>e.itemType))];if(!(1===new Set(i).size))throw new Error("All consideration items must be of the same type");return this.orderbookService.createListing({chainName:this.chainName,requestBody:{account_address:t.offerer,buy:[{type:Number(t.consideration[0].itemType)===uM.NATIVE?"NATIVE":"ERC20",amount:t.consideration[0].startAmount,contract_address:t.consideration[0].token}],fees:r.map((e=>({amount:e.amount,type:$P.MAKER_ECOSYSTEM,recipient_address:e.recipientAddress}))),end_at:new Date(parseInt(`${t.endTime.toString()}000`,10)).toISOString(),order_hash:e,protocol_data:{order_type:QP.order_type.FULL_RESTRICTED,zone_address:t.zone,seaport_address:this.seaportAddress,seaport_version:aM,counter:t.counter.toString()},salt:t.salt,sell:[{contract_address:t.offer[0].token,token_id:t.offer[0].identifierOrCriteria,type:"ERC721"}],signature:n,start_at:new Date(parseInt(`${t.startTime.toString()}000`,10)).toISOString()}})}}class hM{chainName;seaportAddress;orderbookClient;constructor(e,t,n){this.chainName=t,this.seaportAddress=n,this.orderbookClient=new WP({BASE:e})}create(){return new pM(this.orderbookClient.orders,this.chainName,this.seaportAddress)}}class mM{defaultSeaportContractAddress;provider;constructor(e,t){this.defaultSeaportContractAddress=e,this.provider=t}create(e,t){const n=e??aM,r=t??this.defaultSeaportContractAddress;return new JO.Seaport(this.provider,{seaportVersion:n,balanceAndApprovalChecksOnOrderCreation:!0,overrides:{contractAddress:r}})}}class yM{apiClient;seaport;orderbookConfig;constructor(e){const t={...function(e){switch(e){case ht.SANDBOX:return{seaportContractAddress:"0x7d117aA8BD6D31c4fa91722f246388f38ab1942c",zoneContractAddress:"0x8831867E347AB87FA30199C5B695F0A31604Bb52",apiEndpoint:"https://api.sandbox.immutable.com",chainName:"imtbl-zkevm-testnet",provider:new mp("https://rpc.testnet.immutable.com")};case ht.PRODUCTION:return{seaportContractAddress:"0x6c12aD6F0bD274191075Eb2E78D7dA5ba6453424",zoneContractAddress:"0x00338b92Bec262078B3e49BF12bbEA058916BF91",apiEndpoint:"https://api.immutable.com",chainName:"imtbl-zkevm-mainnet",provider:new mp("https://rpc.immutable.com")};default:return null}}(e.baseConfig.environment),...e.overrides};if(!t)throw new Error("Orderbook configuration not passed, please specify the environment under config.baseConfig.environment");this.orderbookConfig=t;const{apiEndpoint:n,chainName:r}=this.orderbookConfig;if(!n)throw new Error("API endpoint must be provided");this.apiClient=new hM(n,r,this.orderbookConfig.seaportContractAddress).create();const i=new mM(this.orderbookConfig.seaportContractAddress,this.orderbookConfig.provider);this.seaport=new fM(i,this.orderbookConfig.provider,this.orderbookConfig.seaportContractAddress,this.orderbookConfig.zoneContractAddress)}config(){return this.orderbookConfig}async getListing(e){return{result:nM((await this.apiClient.getListing(e)).result)}}async getTrade(e){return{result:rM((await this.apiClient.getTrade(e)).result)}}async listListings(e){const t=await this.apiClient.listListings(e);return{page:iM(t.page),result:t.result.map(nM)}}async listTrades(e){const t=await this.apiClient.listTrades(e);return{page:iM(t.page),result:t.result.map(rM)}}async prepareListing({makerAddress:e,sell:t,buy:n,orderExpiry:r}){return this.seaport.prepareSeaportOrder(e,t,n,new Date,r||new Date(Date.now()+63072e6))}async createListing(e){return{result:nM((await this.apiClient.createListing({...e})).result)}}async fulfillOrder(e,t,n){const r=await this.apiClient.fulfillmentData([{order_id:e,taker_address:t,fees:n.map((e=>({amount:e.amount,type:$P.TAKER_ECOSYSTEM,recipient_address:e.recipientAddress})))}]);if(r.result.unfulfillable_orders?.length>0)throw new Error(`Unable to prepare fulfillment date: ${r.result.unfulfillable_orders[0].reason}`);if(1!==r.result.fulfillable_orders?.length)throw new Error("unexpected fulfillable order result length");const i=r.result.fulfillable_orders[0].extra_data,a=r.result.fulfillable_orders[0].order;if(a.status.name!==YP.ACTIVE)throw new Error(`Cannot fulfil order that is not active. Current status: ${a.status}`);return this.seaport.fulfillOrder(a,t,i)}async fulfillBulkOrders(e,t){const n=await this.apiClient.fulfillmentData(e.map((e=>({order_id:e.listingId,taker_address:t,fees:e.takerFees.map((e=>({amount:e.amount,type:$P.TAKER_ECOSYSTEM,recipient_address:e.recipientAddress})))}))));try{return{...await this.seaport.fulfillBulkOrders(n.result.fulfillable_orders,t),fulfillableOrders:n.result.fulfillable_orders.map((e=>nM(e.order))),unfulfillableOrders:n.result.unfulfillable_orders.map((e=>({orderId:e.order_id,reason:e.reason}))),sufficientBalance:!0}}catch(e){if(String(e).includes("The fulfiller does not have the balances needed to fulfill."))return{fulfillableOrders:n.result.fulfillable_orders.map((e=>nM(e.order))),unfulfillableOrders:n.result.unfulfillable_orders.map((e=>({orderId:e.order_id,reason:e.reason}))),sufficientBalance:!1};throw e}}async prepareOrderCancellations(e){const t={name:"imtbl-order-book",chainId:(await this.orderbookConfig.provider.getNetwork()).chainId,verifyingContract:this.orderbookConfig.seaportContractAddress},n={orders:e.map((e=>({id:e})))};return{signableAction:{purpose:eM.OFF_CHAIN_CANCELLATION,type:tM.SIGNABLE,message:{domain:t,types:{CancelPayload:[{name:"orders",type:"Order[]"}],Order:[{name:"id",type:"string"}]},value:n}}}}async cancelOrders(e,t,n){return this.apiClient.cancelOrders(e,t,n)}async cancelOrdersOnChain(e,t){const n=await Promise.all(e.map((e=>this.apiClient.getListing(e))));for(const e of n){if(e.result.status.name!==YP.ACTIVE&&e.result.status.name!==YP.INACTIVE&&e.result.status.name!==YP.PENDING)throw new Error(`Cannot cancel order with status ${e.result.status}`);if(e.result.account_address!==t.toLowerCase())throw new Error(`Only account ${e.result.account_address} can cancel order ${e.result.id}`)}const r=n.map((e=>e.result)),i=r.map((e=>e.protocol_data.seaport_address));if(1!==new Set(...[i]).size)throw new Error("Cannot cancel multiple orders from different seaport contracts. Please group your orderIds accordingly");return{cancellationAction:await this.seaport.cancelOrders(r,t)}}}const gM=4e5,bM="https://api.sandbox.immutable.com".replace(/\/+$/,"");class vM{basePath;axios;configuration;constructor(e,t=bM,n=Qe){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}}class TM extends Error{field;constructor(e,t){super(t),this.field=e,this.name="RequiredError"}}const wM="https://example.com",AM=function(e,t,n){if(null==n)throw new TM(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},EM=async function(e,t,n){if(n&&n.apiKey){const r="function"==typeof n.apiKey?await n.apiKey(t):await n.apiKey;e[t]=r}},_M=async function(e,t){if(t&&t.accessToken){const n="function"==typeof t.accessToken?await t.accessToken():await t.accessToken;e.Authorization="Bearer "+n}};function IM(e,t,n=""){null!=t&&("object"==typeof t?Array.isArray(t)?t.forEach((t=>IM(e,t,n))):Object.keys(t).forEach((r=>IM(e,t[r],`${n}${""!==n?".":""}${r}`))):e.has(n)?e.append(n,t):e.set(n,t))}const RM=function(e,...t){const n=new URLSearchParams(e.search);IM(n,t),e.search=n.toString()},CM=function(e,t,n){const r="string"!=typeof e;return(r&&n&&n.isJsonMime?n.isJsonMime(t.headers["Content-Type"]):r)?JSON.stringify(void 0!==e?e:{}):e||""},OM=function(e){return e.pathname+e.search+e.hash},kM=function(e,t,n,r){return(i=t,a=n)=>{const o={...e.options,url:(r?.basePath||i.defaults.baseURL||a)+e.url};return i.request(o)}},SM=function(e){return{getActivity:async(t,n,r={})=>{AM("getActivity","chainName",t),AM("getActivity","activityId",n);const i="/v1/chains/{chain_name}/activities/{activity_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{activity_id}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};RM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:OM(a),options:s}},listActivities:async(t,n,r,i,a,o,s,u,c={})=>{AM("listActivities","chainName",t);const l="/v1/chains/{chain_name}/activities".replace("{chain_name}",encodeURIComponent(String(t))),d=new URL(l,wM);let f;e&&(f=e.baseOptions);const p={method:"GET",...f,...c},h={};void 0!==n&&(h.contract_address=n),void 0!==r&&(h.token_id=r),void 0!==i&&(h.account_address=i),void 0!==a&&(h.activity_type=a),void 0!==o&&(h.transaction_hash=o),void 0!==s&&(h.page_cursor=s),void 0!==u&&(h.page_size=u),RM(d,h);let m=f&&f.headers?f.headers:{};return p.headers={...m,...c.headers},{url:OM(d),options:p}},listActivityHistory:async(t,n,r,i,a,o,s={})=>{AM("listActivityHistory","chainName",t),AM("listActivityHistory","fromUpdatedAt",n);const u="/v1/chains/{chain_name}/activity-history".replace("{chain_name}",encodeURIComponent(String(t))),c=new URL(u,wM);let l;e&&(l=e.baseOptions);const d={method:"GET",...l,...s},f={};void 0!==n&&(f.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(f.to_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(f.contract_address=i),void 0!==a&&(f.page_cursor=a),void 0!==o&&(f.page_size=o),RM(c,f);let p=l&&l.headers?l.headers:{};return d.headers={...p,...s.headers},{url:OM(c),options:d}}}},NM=function(e){const t=SM(e);return{async getActivity(n,r,i){const a=await t.getActivity(n,r,i);return kM(a,Qe,bM,e)},async listActivities(n,r,i,a,o,s,u,c,l){const d=await t.listActivities(n,r,i,a,o,s,u,c,l);return kM(d,Qe,bM,e)},async listActivityHistory(n,r,i,a,o,s,u){const c=await t.listActivityHistory(n,r,i,a,o,s,u);return kM(c,Qe,bM,e)}}};const xM=function(e){return{listChains:async(t,n,r={})=>{const i=new URL("/v1/chains",wM);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...r},s={};void 0!==t&&(s.page_cursor=t),void 0!==n&&(s.page_size=n),RM(i,s);let u=a&&a.headers?a.headers:{};return o.headers={...u,...r.headers},{url:OM(i),options:o}}}},PM=function(e){const t=xM(e);return{async listChains(n,r,i){const a=await t.listChains(n,r,i);return kM(a,Qe,bM,e)}}};const MM=function(e){return{getCollection:async(t,n,r={})=>{AM("getCollection","contractAddress",t),AM("getCollection","chainName",n);const i="/v1/chains/{chain_name}/collections/{contract_address}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};RM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:OM(a),options:s}},listCollections:async(t,n,r,i,a,o={})=>{AM("listCollections","chainName",t);const s="/v1/chains/{chain_name}/collections".replace("{chain_name}",encodeURIComponent(String(t))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};n&&(d.contract_address=n),void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}},listCollectionsByNFTOwner:async(t,n,r,i,a={})=>{AM("listCollectionsByNFTOwner","accountAddress",t),AM("listCollectionsByNFTOwner","chainName",n);const o="/v1/chains/{chain_name}/accounts/{account_address}/collections".replace("{account_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),s=new URL(o,wM);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),RM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:OM(s),options:c}},refreshCollectionMetadata:async(t,n,r,i={})=>{AM("refreshCollectionMetadata","contractAddress",t),AM("refreshCollectionMetadata","chainName",n),AM("refreshCollectionMetadata","refreshCollectionMetadataRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await EM(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",RM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=CM(r,u,e),{url:OM(o),options:u}}}},BM=function(e){const t=MM(e);return{async getCollection(n,r,i){const a=await t.getCollection(n,r,i);return kM(a,Qe,bM,e)},async listCollections(n,r,i,a,o,s){const u=await t.listCollections(n,r,i,a,o,s);return kM(u,Qe,bM,e)},async listCollectionsByNFTOwner(n,r,i,a,o){const s=await t.listCollectionsByNFTOwner(n,r,i,a,o);return kM(s,Qe,bM,e)},async refreshCollectionMetadata(n,r,i,a){const o=await t.refreshCollectionMetadata(n,r,i,a);return kM(o,Qe,bM,e)}}};const DM=function(e){return{getMetadata:async(t,n,r,i={})=>{AM("getMetadata","chainName",t),AM("getMetadata","contractAddress",n),AM("getMetadata","metadataId",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/metadata/{metadata_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))).replace("{metadata_id}",encodeURIComponent(String(r))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};RM(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:OM(o),options:u}},listMetadata:async(t,n,r,i,a,o={})=>{AM("listMetadata","chainName",t),AM("listMetadata","contractAddress",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/metadata".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}},listMetadataForChain:async(t,n,r,i,a={})=>{AM("listMetadataForChain","chainName",t);const o="/v1/chains/{chain_name}/metadata".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,wM);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),RM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:OM(s),options:c}},refreshMetadataByID:async(t,n,r,i={})=>{AM("refreshMetadataByID","chainName",t),AM("refreshMetadataByID","contractAddress",n),AM("refreshMetadataByID","refreshMetadataByIDRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/metadata/refresh-metadata".replace("{chain_name}",encodeURIComponent(String(t))).replace("{contract_address}",encodeURIComponent(String(n))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await EM(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",RM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=CM(r,u,e),{url:OM(o),options:u}},refreshNFTMetadataByTokenID:async(t,n,r,i={})=>{AM("refreshNFTMetadataByTokenID","contractAddress",t),AM("refreshNFTMetadataByTokenID","chainName",n),AM("refreshNFTMetadataByTokenID","refreshNFTMetadataByTokenIDRequest",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/nfts/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await EM(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",RM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=CM(r,u,e),{url:OM(o),options:u}}}},FM=function(e){const t=DM(e);return{async getMetadata(n,r,i,a){const o=await t.getMetadata(n,r,i,a);return kM(o,Qe,bM,e)},async listMetadata(n,r,i,a,o,s){const u=await t.listMetadata(n,r,i,a,o,s);return kM(u,Qe,bM,e)},async listMetadataForChain(n,r,i,a,o){const s=await t.listMetadataForChain(n,r,i,a,o);return kM(s,Qe,bM,e)},async refreshMetadataByID(n,r,i,a){const o=await t.refreshMetadataByID(n,r,i,a);return kM(o,Qe,bM,e)},async refreshNFTMetadataByTokenID(n,r,i,a){const o=await t.refreshNFTMetadataByTokenID(n,r,i,a);return kM(o,Qe,bM,e)}}};const LM=function(e){return{listAllNFTOwners:async(t,n,r,i,a={})=>{AM("listAllNFTOwners","chainName",t);const o="/v1/chains/{chain_name}/nft-owners".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,wM);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),RM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:OM(s),options:c}},listNFTOwners:async(t,n,r,i,a,o={})=>{AM("listNFTOwners","contractAddress",t),AM("listNFTOwners","tokenId",n),AM("listNFTOwners","chainName",r);const s="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}/owners".replace("{contract_address}",encodeURIComponent(String(t))).replace("{token_id}",encodeURIComponent(String(n))).replace("{chain_name}",encodeURIComponent(String(r))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}},listOwnersByContractAddress:async(t,n,r,i,a,o={})=>{AM("listOwnersByContractAddress","contractAddress",t),AM("listOwnersByContractAddress","chainName",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/owners".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}}}},UM=function(e){const t=LM(e);return{async listAllNFTOwners(n,r,i,a,o){const s=await t.listAllNFTOwners(n,r,i,a,o);return kM(s,Qe,bM,e)},async listNFTOwners(n,r,i,a,o,s){const u=await t.listNFTOwners(n,r,i,a,o,s);return kM(u,Qe,bM,e)},async listOwnersByContractAddress(n,r,i,a,o,s){const u=await t.listOwnersByContractAddress(n,r,i,a,o,s);return kM(u,Qe,bM,e)}}};const qM=function(e){return{getNFT:async(t,n,r,i={})=>{AM("getNFT","contractAddress",t),AM("getNFT","tokenId",n),AM("getNFT","chainName",r);const a="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{token_id}",encodeURIComponent(String(n))).replace("{chain_name}",encodeURIComponent(String(r))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};RM(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:OM(o),options:u}},listAllNFTs:async(t,n,r,i,a={})=>{AM("listAllNFTs","chainName",t);const o="/v1/chains/{chain_name}/nfts".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,wM);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),RM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:OM(s),options:c}},listNFTs:async(t,n,r,i,a,o={})=>{AM("listNFTs","contractAddress",t),AM("listNFTs","chainName",n);const s="/v1/chains/{chain_name}/collections/{contract_address}/nfts".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.from_updated_at=r instanceof Date?r.toISOString():r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}},listNFTsByAccountAddress:async(t,n,r,i,a,o={})=>{AM("listNFTsByAccountAddress","accountAddress",t),AM("listNFTsByAccountAddress","chainName",n);const s="/v1/chains/{chain_name}/accounts/{account_address}/nfts".replace("{account_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),u=new URL(s,wM);let c;e&&(c=e.baseOptions);const l={method:"GET",...c,...o},d={};void 0!==r&&(d.contract_address=r),void 0!==i&&(d.page_cursor=i),void 0!==a&&(d.page_size=a),RM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:OM(u),options:l}}}},jM=function(e){const t=qM(e);return{async getNFT(n,r,i,a){const o=await t.getNFT(n,r,i,a);return kM(o,Qe,bM,e)},async listAllNFTs(n,r,i,a,o){const s=await t.listAllNFTs(n,r,i,a,o);return kM(s,Qe,bM,e)},async listNFTs(n,r,i,a,o,s){const u=await t.listNFTs(n,r,i,a,o,s);return kM(u,Qe,bM,e)},async listNFTsByAccountAddress(n,r,i,a,o,s){const u=await t.listNFTsByAccountAddress(n,r,i,a,o,s);return kM(u,Qe,bM,e)}}};const GM=function(e){return{cancelOrders:async(t,n,r={})=>{AM("cancelOrders","chainName",t),AM("cancelOrders","cancelOrdersRequestBody",n);const i="/v1/chains/{chain_name}/orders/cancel".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",RM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=CM(n,s,e),{url:OM(a),options:s}},createListing:async(t,n,r={})=>{AM("createListing","chainName",t),AM("createListing","createListingRequestBody",n);const i="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",RM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=CM(n,s,e),{url:OM(a),options:s}},fulfillmentData:async(t,n,r={})=>{AM("fulfillmentData","chainName",t),AM("fulfillmentData","fulfillmentDataRequest",n);const i="/v1/chains/{chain_name}/orders/fulfillment-data".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",RM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=CM(n,s,e),{url:OM(a),options:s}},getListing:async(t,n,r={})=>{AM("getListing","chainName",t),AM("getListing","listingId",n);const i="/v1/chains/{chain_name}/orders/listings/{listing_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{listing_id}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};RM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:OM(a),options:s}},getTrade:async(t,n,r={})=>{AM("getTrade","chainName",t),AM("getTrade","tradeId",n);const i="/v1/chains/{chain_name}/trades/{trade_id}".replace("{chain_name}",encodeURIComponent(String(t))).replace("{trade_id}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};RM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:OM(a),options:s}},listListings:async(t,n,r,i,a,o,s,u,c,l,d,f,p={})=>{AM("listListings","chainName",t);const h="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),m=new URL(h,wM);let y;e&&(y=e.baseOptions);const g={method:"GET",...y,...p},b={};void 0!==n&&(b.status=n),void 0!==r&&(b.sell_item_contract_address=r),void 0!==i&&(b.buy_item_contract_address=i),void 0!==a&&(b.account_address=a),void 0!==o&&(b.sell_item_metadata_id=o),void 0!==s&&(b.sell_item_token_id=s),void 0!==u&&(b.from_updated_at=u instanceof Date?u.toISOString():u),void 0!==c&&(b.page_size=c),void 0!==l&&(b.sort_by=l),void 0!==d&&(b.sort_direction=d),void 0!==f&&(b.page_cursor=f),RM(m,b);let v=y&&y.headers?y.headers:{};return g.headers={...v,...p.headers},{url:OM(m),options:g}},listTrades:async(t,n,r,i,a,o,s,u={})=>{AM("listTrades","chainName",t);const c="/v1/chains/{chain_name}/trades".replace("{chain_name}",encodeURIComponent(String(t))),l=new URL(c,wM);let d;e&&(d=e.baseOptions);const f={method:"GET",...d,...u},p={};void 0!==n&&(p.account_address=n),void 0!==r&&(p.from_indexed_at=r instanceof Date?r.toISOString():r),void 0!==i&&(p.page_size=i),void 0!==a&&(p.sort_by=a),void 0!==o&&(p.sort_direction=o),void 0!==s&&(p.page_cursor=s),RM(l,p);let h=d&&d.headers?d.headers:{};return f.headers={...h,...u.headers},{url:OM(l),options:f}}}},HM=function(e){const t=GM(e);return{async cancelOrders(n,r,i){const a=await t.cancelOrders(n,r,i);return kM(a,Qe,bM,e)},async createListing(n,r,i){const a=await t.createListing(n,r,i);return kM(a,Qe,bM,e)},async fulfillmentData(n,r,i){const a=await t.fulfillmentData(n,r,i);return kM(a,Qe,bM,e)},async getListing(n,r,i){const a=await t.getListing(n,r,i);return kM(a,Qe,bM,e)},async getTrade(n,r,i){const a=await t.getTrade(n,r,i);return kM(a,Qe,bM,e)},async listListings(n,r,i,a,o,s,u,c,l,d,f,p,h){const m=await t.listListings(n,r,i,a,o,s,u,c,l,d,f,p,h);return kM(m,Qe,bM,e)},async listTrades(n,r,i,a,o,s,u,c){const l=await t.listTrades(n,r,i,a,o,s,u,c);return kM(l,Qe,bM,e)}}};const zM=function(e){return{createCounterfactualAddress:async(t,n,r={})=>{AM("createCounterfactualAddress","chainName",t),AM("createCounterfactualAddress","createCounterfactualAddressRequest",n);const i="/v1/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};await _M(u,e),u["Content-Type"]="application/json",RM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=CM(n,s,e),{url:OM(a),options:s}},createCounterfactualAddressDeprecated:async(t,n={})=>{AM("createCounterfactualAddressDeprecated","createCounterfactualAddressRequestDeprecated",t);const r=new URL("/passport-mr/v1/counterfactual-address",wM);let i;e&&(i=e.baseOptions);const a={method:"POST",...i,...n},o={};await _M(o,e),o["Content-Type"]="application/json",RM(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=CM(t,a,e),{url:OM(r),options:a}},createCounterfactualAddressV2:async(t,n,r={})=>{AM("createCounterfactualAddressV2","chainName",t),AM("createCounterfactualAddressV2","createCounterfactualAddressRequest",n);const i="/v2/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};await _M(u,e),u["Content-Type"]="application/json",RM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=CM(n,s,e),{url:OM(a),options:s}},getContractAbi:async(t,n,r,i={})=>{AM("getContractAbi","chainName",t),AM("getContractAbi","contractAddress",n),AM("getContractAbi","methodId",r);const a="/v1/chains/{chain_name}/passport/transaction-metadata".replace("{chain_name}",encodeURIComponent(String(t))),o=new URL(a,wM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i},c={},l={};await _M(c,e),void 0!==n&&(l.contract_address=n),void 0!==r&&(l.method_id=r),RM(o,l);let d=s&&s.headers?s.headers:{};return u.headers={...c,...d,...i.headers},{url:OM(o),options:u}},getLinkedAddresses:async(t,n,r={})=>{AM("getLinkedAddresses","userId",t),AM("getLinkedAddresses","chainName",n);const i="/v1/chains/{chain_name}/passport/users/{user_id}/linked-addresses".replace("{user_id}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r},u={};await _M(u,e),RM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},{url:OM(a),options:s}},getLinkedAddressesDeprecated:async(t,n={})=>{AM("getLinkedAddressesDeprecated","userId",t);const r="/passport-mr/v1/users/{userId}/linked-addresses".replace("{userId}",encodeURIComponent(String(t))),i=new URL(r,wM);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...n},s={};await _M(s,e),RM(i,{});let u=a&&a.headers?a.headers:{};return o.headers={...s,...u,...n.headers},{url:OM(i),options:o}}}},WM=function(e){const t=zM(e);return{async createCounterfactualAddress(n,r,i){const a=await t.createCounterfactualAddress(n,r,i);return kM(a,Qe,bM,e)},async createCounterfactualAddressDeprecated(n,r){const i=await t.createCounterfactualAddressDeprecated(n,r);return kM(i,Qe,bM,e)},async createCounterfactualAddressV2(n,r,i){const a=await t.createCounterfactualAddressV2(n,r,i);return kM(a,Qe,bM,e)},async getContractAbi(n,r,i,a){const o=await t.getContractAbi(n,r,i,a);return kM(o,Qe,bM,e)},async getLinkedAddresses(n,r,i){const a=await t.getLinkedAddresses(n,r,i);return kM(a,Qe,bM,e)},async getLinkedAddressesDeprecated(n,r){const i=await t.getLinkedAddressesDeprecated(n,r);return kM(i,Qe,bM,e)}}};const VM=function(e){return{getERC20Token:async(t,n,r={})=>{AM("getERC20Token","contractAddress",t),AM("getERC20Token","chainName",n);const i="/v1/chains/{chain_name}/tokens/{contract_address}".replace("{contract_address}",encodeURIComponent(String(t))).replace("{chain_name}",encodeURIComponent(String(n))),a=new URL(i,wM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};RM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:OM(a),options:s}},listERC20Tokens:async(t,n,r,i,a={})=>{AM("listERC20Tokens","chainName",t);const o="/v1/chains/{chain_name}/tokens".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,wM);let u;e&&(u=e.baseOptions);const c={method:"GET",...u,...a},l={};void 0!==n&&(l.from_updated_at=n instanceof Date?n.toISOString():n),void 0!==r&&(l.page_cursor=r),void 0!==i&&(l.page_size=i),RM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:OM(s),options:c}}}},KM=function(e){const t=VM(e);return{async getERC20Token(n,r,i){const a=await t.getERC20Token(n,r,i);return kM(a,Qe,bM,e)},async listERC20Tokens(n,r,i,a,o){const s=await t.listERC20Tokens(n,r,i,a,o);return kM(s,Qe,bM,e)}}};var XM=Object.freeze({__proto__:null,APIError400AllOfCodeEnum:{ValidationError:"VALIDATION_ERROR"},APIError401AllOfCodeEnum:{UnauthorisedRequest:"UNAUTHORISED_REQUEST"},APIError403AllOfCodeEnum:{AuthenticationError:"AUTHENTICATION_ERROR"},APIError404AllOfCodeEnum:{ResourceNotFound:"RESOURCE_NOT_FOUND"},APIError429AllOfCodeEnum:{TooManyRequestsError:"TOO_MANY_REQUESTS_ERROR"},APIError500AllOfCodeEnum:{InternalServerError:"INTERNAL_SERVER_ERROR"},APIError501AllOfCodeEnum:{NotImplementedError:"NOT_IMPLEMENTED_ERROR"},ActiveOrderStatusNameEnum:{Active:"ACTIVE"},ActivitiesApi:class extends vM{getActivity(e,t){return NM(this.configuration).getActivity(e.chainName,e.activityId,t).then((e=>e(this.axios,this.basePath)))}listActivities(e,t){return NM(this.configuration).listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listActivityHistory(e,t){return NM(this.configuration).listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ActivitiesApiAxiosParamCreator:SM,ActivitiesApiFactory:function(e,t,n){const r=NM(e);return{getActivity:(e,i)=>r.getActivity(e.chainName,e.activityId,i).then((e=>e(n,t))),listActivities:(e,i)=>r.listActivities(e.chainName,e.contractAddress,e.tokenId,e.accountAddress,e.activityType,e.transactionHash,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listActivityHistory:(e,i)=>r.listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ActivitiesApiFp:NM,ActivityType:{Mint:"mint",Burn:"burn",Transfer:"transfer",Sale:"sale",Deposit:"deposit",Withdrawal:"withdrawal"},CancelledOrderStatusCancellationTypeEnum:{OnChain:"ON_CHAIN",OffChain:"OFF_CHAIN"},CancelledOrderStatusNameEnum:{Cancelled:"CANCELLED"},ChainsApi:class extends vM{listChains(e={},t){return PM(this.configuration).listChains(e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ChainsApiAxiosParamCreator:xM,ChainsApiFactory:function(e,t,n){const r=PM(e);return{listChains:(e={},i)=>r.listChains(e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ChainsApiFp:PM,CollectionContractType:{Erc721:"ERC721",Erc1155:"ERC1155"},CollectionsApi:class extends vM{getCollection(e,t){return BM(this.configuration).getCollection(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listCollections(e,t){return BM(this.configuration).listCollections(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listCollectionsByNFTOwner(e,t){return BM(this.configuration).listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshCollectionMetadata(e,t){return BM(this.configuration).refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,t).then((e=>e(this.axios,this.basePath)))}},CollectionsApiAxiosParamCreator:MM,CollectionsApiFactory:function(e,t,n){const r=BM(e);return{getCollection:(e,i)=>r.getCollection(e.contractAddress,e.chainName,i).then((e=>e(n,t))),listCollections:(e,i)=>r.listCollections(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listCollectionsByNFTOwner:(e,i)=>r.listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),refreshCollectionMetadata:(e,i)=>r.refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,i).then((e=>e(n,t)))}},CollectionsApiFp:BM,Configuration:class{apiKey;username;password;accessToken;basePath;baseOptions;formDataCtor;constructor(e={}){this.apiKey=e.apiKey,this.username=e.username,this.password=e.password,this.accessToken=e.accessToken,this.basePath=e.basePath,this.baseOptions=e.baseOptions,this.formDataCtor=e.formDataCtor}isJsonMime(e){const t=new RegExp("^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$","i");return null!==e&&(t.test(e)||"application/json-patch+json"===e.toLowerCase())}},ERC1155ItemTypeEnum:{Erc1155:"ERC1155"},ERC20ItemTypeEnum:{Erc20:"ERC20"},ERC721ItemTypeEnum:{Erc721:"ERC721"},ExpiredOrderStatusNameEnum:{Expired:"EXPIRED"},FailedOrderCancellationReasonCodeEnum:{Filled:"FILLED"},FeeTypeEnum:{Royalty:"ROYALTY",MakerEcosystem:"MAKER_ECOSYSTEM",TakerEcosystem:"TAKER_ECOSYSTEM",Protocol:"PROTOCOL"},FilledOrderStatusNameEnum:{Filled:"FILLED"},GetContractAbiResTransactionTypeEnum:{Erc20Approve:"ERC20_APPROVE"},InactiveOrderStatusNameEnum:{Inactive:"INACTIVE"},ListListingsSortByEnum:{CreatedAt:"created_at",UpdatedAt:"updated_at",BuyItemAmount:"buy_item_amount"},ListListingsSortDirectionEnum:{Asc:"asc",Desc:"desc"},ListTradesSortByEnum:{IndexedAt:"indexed_at"},ListTradesSortDirectionEnum:{Asc:"asc",Desc:"desc"},MetadataApi:class extends vM{getMetadata(e,t){return FM(this.configuration).getMetadata(e.chainName,e.contractAddress,e.metadataId,t).then((e=>e(this.axios,this.basePath)))}listMetadata(e,t){return FM(this.configuration).listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listMetadataForChain(e,t){return FM(this.configuration).listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshMetadataByID(e,t){return FM(this.configuration).refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,t).then((e=>e(this.axios,this.basePath)))}refreshNFTMetadataByTokenID(e,t){return FM(this.configuration).refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,t).then((e=>e(this.axios,this.basePath)))}},MetadataApiAxiosParamCreator:DM,MetadataApiFactory:function(e,t,n){const r=FM(e);return{getMetadata:(e,i)=>r.getMetadata(e.chainName,e.contractAddress,e.metadataId,i).then((e=>e(n,t))),listMetadata:(e,i)=>r.listMetadata(e.chainName,e.contractAddress,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listMetadataForChain:(e,i)=>r.listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),refreshMetadataByID:(e,i)=>r.refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,i).then((e=>e(n,t))),refreshNFTMetadataByTokenID:(e,i)=>r.refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,i).then((e=>e(n,t)))}},MetadataApiFp:FM,MintRequestStatus:{Pending:"pending",Succeeded:"succeeded",Failed:"failed"},NFTContractType:{Erc721:"ERC721"},NativeItemTypeEnum:{Native:"NATIVE",Erc20:"ERC20",Erc721:"ERC721",Erc1155:"ERC1155"},NftOwnersApi:class extends vM{listAllNFTOwners(e,t){return UM(this.configuration).listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTOwners(e,t){return UM(this.configuration).listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listOwnersByContractAddress(e,t){return UM(this.configuration).listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftOwnersApiAxiosParamCreator:LM,NftOwnersApiFactory:function(e,t,n){const r=UM(e);return{listAllNFTOwners:(e,i)=>r.listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTOwners:(e,i)=>r.listNFTOwners(e.contractAddress,e.tokenId,e.chainName,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listOwnersByContractAddress:(e,i)=>r.listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},NftOwnersApiFp:UM,NftsApi:class extends vM{getNFT(e,t){return jM(this.configuration).getNFT(e.contractAddress,e.tokenId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listAllNFTs(e,t){return jM(this.configuration).listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTs(e,t){return jM(this.configuration).listNFTs(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTsByAccountAddress(e,t){return jM(this.configuration).listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftsApiAxiosParamCreator:qM,NftsApiFactory:function(e,t,n){const r=jM(e);return{getNFT:(e,i)=>r.getNFT(e.contractAddress,e.tokenId,e.chainName,i).then((e=>e(n,t))),listAllNFTs:(e,i)=>r.listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTs:(e,i)=>r.listNFTs(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t))),listNFTsByAccountAddress:(e,i)=>r.listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},NftsApiFp:jM,OrderStatusName:{Pending:"PENDING",Active:"ACTIVE",Inactive:"INACTIVE",Filled:"FILLED",Expired:"EXPIRED",Cancelled:"CANCELLED"},OrderTypeEnum:{Listing:"LISTING"},OrdersApi:class extends vM{cancelOrders(e,t){return HM(this.configuration).cancelOrders(e.chainName,e.cancelOrdersRequestBody,t).then((e=>e(this.axios,this.basePath)))}createListing(e,t){return HM(this.configuration).createListing(e.chainName,e.createListingRequestBody,t).then((e=>e(this.axios,this.basePath)))}fulfillmentData(e,t){return HM(this.configuration).fulfillmentData(e.chainName,e.fulfillmentDataRequest,t).then((e=>e(this.axios,this.basePath)))}getListing(e,t){return HM(this.configuration).getListing(e.chainName,e.listingId,t).then((e=>e(this.axios,this.basePath)))}getTrade(e,t){return HM(this.configuration).getTrade(e.chainName,e.tradeId,t).then((e=>e(this.axios,this.basePath)))}listListings(e,t){return HM(this.configuration).listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then((e=>e(this.axios,this.basePath)))}listTrades(e,t){return HM(this.configuration).listTrades(e.chainName,e.accountAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,t).then((e=>e(this.axios,this.basePath)))}},OrdersApiAxiosParamCreator:GM,OrdersApiFactory:function(e,t,n){const r=HM(e);return{cancelOrders:(e,i)=>r.cancelOrders(e.chainName,e.cancelOrdersRequestBody,i).then((e=>e(n,t))),createListing:(e,i)=>r.createListing(e.chainName,e.createListingRequestBody,i).then((e=>e(n,t))),fulfillmentData:(e,i)=>r.fulfillmentData(e.chainName,e.fulfillmentDataRequest,i).then((e=>e(n,t))),getListing:(e,i)=>r.getListing(e.chainName,e.listingId,i).then((e=>e(n,t))),getTrade:(e,i)=>r.getTrade(e.chainName,e.tradeId,i).then((e=>e(n,t))),listListings:(e,i)=>r.listListings(e.chainName,e.status,e.sellItemContractAddress,e.buyItemContractAddress,e.accountAddress,e.sellItemMetadataId,e.sellItemTokenId,e.fromUpdatedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then((e=>e(n,t))),listTrades:(e,i)=>r.listTrades(e.chainName,e.accountAddress,e.fromIndexedAt,e.pageSize,e.sortBy,e.sortDirection,e.pageCursor,i).then((e=>e(n,t)))}},OrdersApiFp:HM,PassportApi:class extends vM{createCounterfactualAddress(e,t){return WM(this.configuration).createCounterfactualAddress(e.chainName,e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}createCounterfactualAddressDeprecated(e,t){return WM(this.configuration).createCounterfactualAddressDeprecated(e.createCounterfactualAddressRequestDeprecated,t).then((e=>e(this.axios,this.basePath)))}createCounterfactualAddressV2(e,t){return WM(this.configuration).createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}getContractAbi(e,t){return WM(this.configuration).getContractAbi(e.chainName,e.contractAddress,e.methodId,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddresses(e,t){return WM(this.configuration).getLinkedAddresses(e.userId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddressesDeprecated(e,t){return WM(this.configuration).getLinkedAddressesDeprecated(e.userId,t).then((e=>e(this.axios,this.basePath)))}},PassportApiAxiosParamCreator:zM,PassportApiFactory:function(e,t,n){const r=WM(e);return{createCounterfactualAddress:(e,i)=>r.createCounterfactualAddress(e.chainName,e.createCounterfactualAddressRequest,i).then((e=>e(n,t))),createCounterfactualAddressDeprecated:(e,i)=>r.createCounterfactualAddressDeprecated(e.createCounterfactualAddressRequestDeprecated,i).then((e=>e(n,t))),createCounterfactualAddressV2:(e,i)=>r.createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,i).then((e=>e(n,t))),getContractAbi:(e,i)=>r.getContractAbi(e.chainName,e.contractAddress,e.methodId,i).then((e=>e(n,t))),getLinkedAddresses:(e,i)=>r.getLinkedAddresses(e.userId,e.chainName,i).then((e=>e(n,t))),getLinkedAddressesDeprecated:(e,i)=>r.getLinkedAddressesDeprecated(e.userId,i).then((e=>e(n,t)))}},PassportApiFp:WM,PendingOrderStatusNameEnum:{Pending:"PENDING"},ProtocolDataOrderTypeEnum:{FullRestricted:"FULL_RESTRICTED"},SaleFeeTypeEnum:{Royalty:"ROYALTY"},TokenContractType:{Erc20:"ERC20"},TokensApi:class extends vM{getERC20Token(e,t){return KM(this.configuration).getERC20Token(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listERC20Tokens(e,t){return KM(this.configuration).listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},TokensApiAxiosParamCreator:VM,TokensApiFactory:function(e,t,n){const r=KM(e);return{getERC20Token:(e,i)=>r.getERC20Token(e.contractAddress,e.chainName,i).then((e=>e(n,t))),listERC20Tokens:(e,i)=>r.listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},TokensApiFp:KM});class JM extends Error{code;details;link;traceId;constructor({message:e,code:t,details:n,link:r,trace_id:i}){super(e),this.code=t,this.details=n,this.link=r,this.traceId=i}}const YM={sdkVersion:"ts-immutable-sdk-multi-rollup-api-client-0.42.0"},QM=({baseConfig:e,basePath:t,headers:n})=>{if(!t.trim())throw Error("basePath can not be empty");const r={...e,basePath:t,baseOptions:{headers:{...n||{},...YM}}};return new XM.Configuration(r)};class $M{apiConfig;baseConfig;constructor({baseConfig:e,overrides:t}){if(this.baseConfig=e,t)this.apiConfig=QM(t);else switch(e.environment){case ht.SANDBOX:this.apiConfig=QM({basePath:"https://api.sandbox.immutable.com",baseConfig:e});break;case ht.PRODUCTION:this.apiConfig=QM({basePath:"https://api.immutable.com",baseConfig:e});break;default:this.apiConfig=QM({basePath:"https://api.sandbox.immutable.com",baseConfig:e})}}}function ZM(e){if(Qe.isAxiosError(e)&&e.response){const t=e.response.data;return t.code&&t.message?new JM({code:t.code,message:t.message,details:t.details||null,link:t.link||"",trace_id:t.trace_id||""}):new JM({code:e.code??e.response?.status.toString()??"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}return new JM({code:"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}class eB{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;constructor(e){this.config=new $M(e),this.activities=new XM.ActivitiesApi(this.config.apiConfig),this.chains=new XM.ChainsApi(this.config.apiConfig),this.collections=new XM.CollectionsApi(this.config.apiConfig),this.nfts=new XM.NftsApi(this.config.apiConfig),this.nftOwners=new XM.NftOwnersApi(this.config.apiConfig),this.tokens=new XM.TokensApi(this.config.apiConfig),this.metadata=new XM.MetadataApi(this.config.apiConfig)}async listActivities(e){return await this.activities.listActivities(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listActivityHistory(e){return await this.activities.listActivityHistory(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async getActivity(e){return await this.activities.getActivity(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listChains(e){return await this.chains.listChains(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listCollections(e){return await this.collections.listCollections(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listCollectionsByNFTOwner(e){return await this.collections.listCollectionsByNFTOwner(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async getCollection(e){return await this.collections.getCollection(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async getNFT(e){return await this.nfts.getNFT(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTs(e){return await this.nfts.listNFTs(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTsByAccountAddress(e){return await this.nfts.listNFTsByAccountAddress(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listAllNFTs(e){return await this.nfts.listAllNFTs(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTOwners(e){return await this.nftOwners.listNFTOwners(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTOwnersByContractAddress(e){return await this.nftOwners.listOwnersByContractAddress(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listAllNFTOwners(e){return await this.nftOwners.listAllNFTOwners(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listTokens(e){return await this.tokens.listERC20Tokens(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async getToken(e){return await this.tokens.getERC20Token(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async getMetadata(e){return await this.metadata.getMetadata(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTMetadataByContractAddress(e){return await this.metadata.listMetadata(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async listNFTMetadataByChain(e){return await this.metadata.listMetadataForChain(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async refreshCollectionMetadata(e){return await this.collections.refreshCollectionMetadata(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async refreshNFTMetadata(e){return await this.metadata.refreshNFTMetadataByTokenID(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}async refreshStackedMetadata(e){return await this.metadata.refreshMetadataByID(e).then((e=>e.data)).catch((e=>{throw ZM(e)}))}}function tB(t,n,r,i){const a=r.get(t),o=r.get(n);if(!a)throw new om(`Chain:${t} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(!o)throw new om(`Chain:${n} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);let s=MT;i.isDevelopment&&(s=PT),i.isProduction&&(s=BT);const u=new cw({baseConfig:new mt({environment:i.environment}),bridgeInstance:s,rootProvider:a,childProvider:o});return new rw(u)}async function nB(e,t){const n=await t.remote.getConfig("dex");return new KO({chainId:e,baseConfig:new mt({environment:t.environment}),overrides:n?.overrides,secondaryFees:n?.secondaryFees})}function rB(e){return new yM({baseConfig:{environment:e.environment}})}function iB(e){return new eB({baseConfig:{environment:e.environment}})}const aB="0x0000000000000000000000000000000000000001",oB=18;async function sB(t,n){const r=km(n),i=Sm(n);if(!t.get(r))throw new Error(`Missing JsonRpcProvider for chain id: ${r}`);try{const a=tB(r,i,t,n),o=await async function(e,t,n,r){const i=t===km(r)?JT.DEPOSIT:JT.WITHDRAW;return await e.getFee({action:i,gasMultiplier:1.1,sourceChainId:t.toString(),destinationChainId:n.toString()})}(a,r,i,n);return{gasEstimateType:e.GasEstimateType.BRIDGE_TO_L2,fees:o,token:n.networkMap.get(r)?.nativeCurrency}}catch{return{gasEstimateType:e.GasEstimateType.BRIDGE_TO_L2,fees:{sourceChainGas:ur.from(0),bridgeFee:ur.from(0),imtblFee:ur.from(0),totalFees:ur.from(0)},token:n.networkMap.get(r)?.nativeCurrency}}}async function uB(t,n,r){switch(t.gasEstimateType){case e.GasEstimateType.BRIDGE_TO_L2:return await sB(n,r);case e.GasEstimateType.SWAP:return await async function(t){const n=Sm(t),r=await t.remote.getConfig("gasEstimateTokens"),{inAddress:i,outAddress:a}=r[n].swapAddresses;try{const r=await nB(n,t),{swap:o}=await r.getUnsignedSwapTxFromAmountIn(aB,i,a,ur.from(Dh("1",oB)));return o.gasFeeEstimate?{gasEstimateType:e.GasEstimateType.SWAP,fees:{totalFees:o.gasFeeEstimate.value?ur.from(o.gasFeeEstimate.value):void 0,token:{address:o.gasFeeEstimate.token.address,symbol:o.gasFeeEstimate.token.symbol??"",name:o.gasFeeEstimate.token.name??"",decimals:o.gasFeeEstimate.token.decimals??oB}}}:{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}catch{return{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}}(r);default:throw new om("Invalid type provided for gasEstimateType",e.CheckoutErrorType.INVALID_GAS_ESTIMATE_TYPE)}}const cB=t=>(t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC721)return void r.push(t);const{contractAddress:a,spenderAddress:o,id:s}=t,u=`${a}${o}${s}`;n.get(u)||n.set(u,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC20)return void r.push(t);const{tokenAddress:a,spenderAddress:o,amount:s}=t,u=`${a}${o}`,c=n.get(u);c&&c.type===e.ItemType.ERC20?c.amount=ur.from(c.amount).add(s):n.set(u,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.NATIVE)return void r.push(t);const{amount:a}=t,o=n.get(i);o&&o.type===e.ItemType.NATIVE?o.amount=ur.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),lB=async(t,n,r,i)=>{try{const e=new Rl(r,JSON.stringify(Em),t);return await e.allowance(n,i)}catch(t){throw new om("Failed to get the allowance for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r})}},dB=async(t,n,r,i,a)=>{try{const e=new Rl(r,JSON.stringify(Em),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch{throw new om("Failed to get the approval transaction for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r})}},fB=async(t,n,r,i)=>{try{const e=new Rl(r,JSON.stringify(_m),t);return await e.isApprovedForAll(n,i)}catch(t){throw new om("Failed to check approval for all ERC721s of collection",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{ownerAddress:n,contractAddress:r,spenderAddress:i})}},pB=async(t,n,r,i,a)=>{try{const e=new Rl(r,JSON.stringify(_m),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch(t){throw new om("Failed to get the approval transaction for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:a.toString(),contractAddress:r,spenderAddress:i,ownerAddress:n})}},hB=async(t,n,r)=>{try{const e=new Rl(n,JSON.stringify(_m),t);return await e.getApproved(r)}catch(t){throw new om("Failed to get approved address for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:r.toString(),contractAddress:n})}},mB=(t,n)=>{const r=parseInt(t,10);if(Number.isNaN(r))throw new om("Invalid ERC721 ID",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:t,contractAddress:n});return r},yB=async(t,n,r)=>{let i=!0;const a=[],o=new Map,s=new Map,u=new Map,c=new Map,l=await(async(t,n,r)=>{const i=new Map,a=new Map;for(const o of n){if(o.type!==e.ItemType.ERC721)continue;const{contractAddress:n,spenderAddress:s}=o,u=`${n}-${s}`;i.set(u,!1),a.has(u)||a.set(u,fB(t,r,n,s))}const o=await Promise.all(a.values()),s=Array.from(a.keys());return o.forEach(((e,t)=>{i.set(s[t],e)})),i})(t,r,n);for(const n of r){if(n.type!==e.ItemType.ERC721)continue;const{contractAddress:r,id:i,spenderAddress:u}=n,c=`${r}-${u}`;if(l.get(c)){a.push({sufficient:!0,itemRequirement:n});continue}const d=`${r}-${i}`,f=mB(i,r);o.set(d,n),s.set(d,hB(t,r,f))}const d=await Promise.all(s.values()),f=Array.from(s.keys());for(let r=0;r<d.length;r++){const s=o.get(f[r]);if(!s||s.type!==e.ItemType.ERC721)continue;if(d[r]===s.spenderAddress){a.push({sufficient:!0,itemRequirement:s});continue}i=!1;const{contractAddress:l,id:p,spenderAddress:h}=s,m=`${l}-${p}`,y=mB(p,l);u.set(m,{type:e.ItemType.ERC721,sufficient:!1,itemRequirement:s,approvalTransaction:void 0}),c.set(m,pB(t,n,l,h,y))}const p=await Promise.all(c.values()),h=Array.from(c.keys());return p.forEach(((e,t)=>{const n=u.get(h[t]);n&&(n.sufficient||(n.approvalTransaction=e))})),{sufficient:i,allowances:a.concat(Array.from(u.values()))}},gB=t=>(t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC721)return void r.push(t);const{contractAddress:a,id:o}=t,s=`${a}${o}`;n.get(s)||n.set(s,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.ERC20)return void r.push(t);const{tokenAddress:a,amount:o}=t,s=`${a}`,u=n.get(s);u&&u.type===e.ItemType.ERC20?u.amount=ur.from(u.amount).add(o):n.set(s,{...t})})),r.concat(Array.from(n.values()))})((t=>{const n=new Map,r=[];return t.forEach((t=>{const{type:i}=t;if(i!==e.ItemType.NATIVE)return void r.push(t);const{amount:a}=t,o=n.get(i);o&&o.type===e.ItemType.NATIVE?o.amount=ur.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),bB=async(t,n,r,i)=>{try{const a=new Map;(t=>t.map((t=>{switch(t.type){case e.ItemType.ERC20:return{address:t.tokenAddress};case e.ItemType.NATIVE:return{address:hm};case e.ItemType.ERC721:default:return{address:t.contractAddress}}})))(i).forEach((e=>{e.address&&a.set(e.address.toLocaleLowerCase(),e)}));const{balances:o}=await Hm(t,n,r,Sm(t));return o.filter((e=>a.get((e.token.address||hm).toLocaleLowerCase())))}catch(t){throw new om("Failed to get balances",e.CheckoutErrorType.GET_BALANCE_ERROR)}},vB=async(t,n,r,i)=>{const a=gB(i),o=[],s=[];if(a.forEach((t=>{switch(t.type){case e.ItemType.ERC20:case e.ItemType.NATIVE:o.push(t);break;case e.ItemType.ERC721:s.push(t)}})),0===s.length&&0===o.length)throw new om("Unsupported item requirement balance check",e.CheckoutErrorType.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR);const u=[];o.length>0&&u.push(bB(t,n,r,a)),s.length>0&&u.push((async(t,n,r)=>{const i=[],a=new Map,o=new Map;r.forEach((n=>{if(n.type!==e.ItemType.ERC721)return;const r=new Rl(n.contractAddress,JSON.stringify(_m),t);a.set(n.contractAddress,n),o.set(n.contractAddress,r.ownerOf(n.id))}));try{const t=await Promise.all(o.values()),r=Array.from(o.keys());t.forEach(((t,o)=>{const s=a.get(r[o]);let u=0;s&&xm(n,t)&&(u=1),i.push({type:e.ItemType.ERC721,balance:ur.from(u),formattedBalance:u.toString(),contractAddress:s.contractAddress,id:s.id})}))}catch(t){throw new om("Failed to get ERC721 balances",e.CheckoutErrorType.GET_ERC721_BALANCE_ERROR)}return i})(n,r,a));const c=await Promise.all(u),l=[];if(o.length>0&&c.length>0){const t=c.shift();t&&o.forEach((n=>{l.push(((t,n)=>{let r;t.type===e.ItemType.ERC20?r=n.find((e=>xm(e.token?.address,t.tokenAddress))):t.type===e.ItemType.NATIVE&&(r=n.find((e=>Mm(e.token?.address))));const i=t.amount,a=i.isNegative()||i.isZero()||(r?.balance.gte(i)??!1),o=i.sub(r?.balance??ur.from(0));let s="",u="",c=pm;r&&(c=r.token?.decimals??pm,s=r.token.name,u=r.token.symbol);let l=r;return t.type===e.ItemType.NATIVE?(l||(l={type:e.ItemType.NATIVE,balance:ur.from(0),formattedBalance:"0",token:mm}),{sufficient:a,type:e.ItemType.NATIVE,delta:{balance:o,formattedBalance:Bh(o,c)},current:{...l,type:e.ItemType.NATIVE},required:{...l,type:e.ItemType.NATIVE,balance:ur.from(t.amount),formattedBalance:Bh(t.amount,c)}}):(l||(l={type:t.type,balance:ur.from(0),formattedBalance:"0",token:{name:s,symbol:u,address:t.tokenAddress,decimals:c}}),{sufficient:a,type:e.ItemType.ERC20,delta:{balance:o,formattedBalance:Bh(o,c)},current:l,required:{...l,balance:ur.from(t.amount),formattedBalance:Bh(t.amount,c)}})})(n,t))}))}if(s.length>0&&c.length>0){const t=c.shift();t&&s.forEach((n=>{l.push(((t,n)=>{const r=ur.from(1),i=n.find((e=>{const n=e;return xm(n.contractAddress,t.contractAddress)&&n.id===t.id})),a=r.isNegative()||r.isZero()||(i?.balance.gte(r)??!1),o=r.sub(i?.balance??ur.from(0));let s=i;return s||(s={type:e.ItemType.ERC721,balance:ur.from(0),formattedBalance:"0",contractAddress:t.contractAddress,id:t.id}),{sufficient:a,type:e.ItemType.ERC721,delta:{balance:o,formattedBalance:o.toString()},current:s,required:{...s,balance:ur.from(1),formattedBalance:"1"}}})(n,t))}))}return{sufficient:void 0===l.find((e=>!1===e.sufficient)),balanceRequirements:l}},TB=async(t,n)=>{try{return await t.estimateGas(n)}catch(t){throw new om("Failed to estimate gas for transaction",e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT)}},wB=async(t,n,r)=>{const i=[];let a=ur.from(0);for(const e of n)void 0!==e.approvalTransaction&&i.push(TB(t,e.approvalTransaction));if(r.type===e.TransactionOrGasType.TRANSACTION)i.push(TB(t,r.transaction));else{const e=(e=>(e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas)(e)?ur.from(e.maxFeePerGas).add(ur.from(e.maxPriorityFeePerGas)):e.gasPrice?ur.from(e.gasPrice):null)(await t.getFeeData());if(null!==e){const t=e?.mul(r.gasToken.limit);t&&(a=a.add(t))}}return(await Promise.all(i)).forEach((e=>{a=a.add(e)})),a.eq(0)?null:((t,n)=>n.type===e.TransactionOrGasType.TRANSACTION||n.gasToken.type===e.GasTokenType.NATIVE?{type:e.ItemType.NATIVE,amount:t}:{type:e.ItemType.ERC20,amount:t,tokenAddress:n.gasToken.tokenAddress,spenderAddress:""})(a,r)},AB=(t,n)=>({checkDexAvailability:async()=>{let r;try{r=await Qe.post(`${t?ym[fm]:n?ym[ht.PRODUCTION]:ym[ht.SANDBOX]}/v1/availability/checkout/swap`)}catch(t){if(r=t.response,403===r.status)return!1;throw new om(`Error fetching from api: ${r.status} ${r.statusText}`,e.CheckoutErrorType.API_ERROR)}return!0}}),EB=async()=>!0,_B=async e=>{const t=AB(e.isDevelopment,e.isProduction);try{return await t.checkDexAvailability()}catch{return!1}};async function IB(t,n){if(t.isProduction&&n?.has(e.ChainId.ETHEREUM))return n;if(n?.has(e.ChainId.SEPOLIA))return n;const r=new Map;return(await cm(t,{type:e.NetworkFilterTypes.ALL})).networks.forEach((e=>{const n=t.networkMap.get(e.chainId)?.rpcUrls[0],i=new mp(n);r.set(e.chainId,i)})),r}const RB=async(e,t,n,r,i)=>{const a=new Map;try{const o=await nB(t,e),s=[],u=[];for(const e of i)e!==r.address&&(s.push(o.getUnsignedSwapTxFromAmountOut(n,e,r.address,r.amount,1)),u.push(e));return(await Um(e,"Time to resolve swap quotes from the dex",Promise.allSettled(s))).forEach(((e,t)=>{if("rejected"===e.status)return;const n=u[t];a.set(n,{quote:e.value.quote,approval:e.value.approval?.gasFeeEstimate??null,swap:e.value.swap.gasFeeEstimate})})),a}catch{return a}},CB=(t,n,r)=>{let i,a=ur.from(0),o="0";t&&(a=t.value,o=Bh(t.value,t.token.decimals),i={name:t.token.name??"",symbol:t.token.symbol??"",address:t.token.address,decimals:t.token.decimals});let s,u=ur.from(0),c="0";n&&(u=n.value,c=Bh(n.value,n.token.decimals),s={name:n.token.name??"",symbol:n.token.symbol??"",address:n.token.address,decimals:n.token.decimals});const l=[];for(const t of r)l.push({type:e.FeeType.SWAP_FEE,amount:t.amount.value,formattedAmount:Bh(t.amount.value,t.amount.token.decimals),token:{name:t.amount.token.name??"",symbol:t.amount.token.symbol??"",address:t.amount.token.address,decimals:t.amount.token.decimals}});return{approvalGasFee:{type:e.FeeType.GAS,amount:a,formattedAmount:o,token:i},swapGasFee:{type:e.FeeType.GAS,amount:u,formattedAmount:c,token:s},swapFees:l}},OB=(t,n,r,i)=>{const a=r.token.address;let o=e.ItemType.ERC20;return Mm(a)&&(o=e.ItemType.NATIVE),{type:e.FundingStepType.SWAP,chainId:t,fundingItem:{type:o,fundsRequired:{amount:n,formattedAmount:Bh(n,r.token.decimals)},userBalance:{balance:r.balance,formattedBalance:r.formattedBalance},token:r.token},fees:i}},kB=(e,t)=>{if(!t)return{sufficient:!0,approvalGasFee:ur.from(0),approvalGasTokenAddress:""};const n=t.value,r=t.token.address;if(0===e.length)return{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r};const i=e.find((e=>Mm(e.token.address)&&Mm(r)||xm(e.token.address,r)));return i?i.balance.lt(n)?{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!0,approvalGasFee:n,approvalGasTokenAddress:r}:{sufficient:!1,approvalGasFee:n,approvalGasTokenAddress:r}},SB=(e,t,n,r,i)=>{const a=new Map;if(t.approvalGasFee.gt(ur.from(0))&&a.set(t.approvalGasTokenAddress,t.approvalGasFee),n){const e=a.get(n.token.address);e?a.set(n.token.address,e.add(n.value)):a.set(n.token.address,n.value)}if(i){const e=a.get(i.address);e?a.set(i.address,e.add(i.amount)):a.set(i.address,i.amount)}for(const e of r){const t=a.get(e.amount.token.address);t?a.set(e.amount.token.address,t.add(e.amount.value)):a.set(e.amount.token.address,e.amount.value)}for(const[t,n]of a.entries()){if(n===ur.from(0))continue;const r=e.find((e=>Mm(e.token.address)&&Mm(t)||xm(e.token.address,t)));if(!r)return!1;if(r.balance.lt(n))return!1}return!0},NB=(t,n,r,i,a,o)=>{let s=ur.from(0),u="",c=!1;if(n.balanceRequirements.forEach((n=>{n.type!==e.ItemType.NATIVE&&n.type!==e.ItemType.ERC20||n.required.token.address&&xm(n.required.token.address,r)&&(u=n.required.token.address,c=!0,s=t.sub(n.required.balance))})),!c)return!0;xm(a.approvalGasTokenAddress,u)&&(s=s.sub(a.approvalGasFee));for(const e of o)xm(e.amount.token.address,u)&&(s=s.sub(e.amount.value));return s.gte(i)},xB=async(t,n,r,i,a,o,s)=>{const u=[];if(!n.swap)return u;if(0===o.length)return u;if(!(t=>t.type===e.ItemType.ERC20?!!t.required.token.address:t.type===e.ItemType.NATIVE&&Mm(t.required.token.address))(i))return u;const c=(t=>{let n="",r=ur.from(0);switch(t.type){case e.ItemType.ERC20:n=t.required.token.address,r=t.delta.balance;break;case e.ItemType.NATIVE:r=t.delta.balance}return{address:n,amount:r}})(i),l=Sm(t),d=a.get(l);if(!d)return u;const f=d.balances;if(0===f.length)return u;const p=await RB(t,Sm(t),r,c,o),h=Array.from(p.keys());for(const e of h){const t=p.get(e);if(!t)continue;const n=f.find((t=>xm(t.token.address,e)));if(!n)continue;const r=t.quote.amount;if(n.balance.lt(r.value))continue;const i=kB(f,t.approval);if(!i.sufficient)continue;if(!SB(f,i,t.swap,t.quote.fees,{amount:r.value,address:e}))continue;if(!NB(n.balance,s,e,r.value,i,t.quote.fees))continue;const a=CB(t.approval,t.swap,t.quote.fees);u.push(OB(l,r.value,n,a))}return u},PB=(e,t)=>t&&t.success?e.filter((e=>"address"in e?t.balances.find((t=>xm(t.token.address,e.address)&&t.balance.gt(0))):t.balances.find((e=>!("address"in e.token)&&e.balance.gt(0))))):[],MB=async(t,n)=>{if(n.onRamp){return(await Pm(t,{type:e.TokenFilterTypes.ONRAMP})).tokens}return[]},BB=async(t,n,r)=>{if(r.bridge){const r=km(t),i=(await Pm(t,{type:e.TokenFilterTypes.BRIDGE,chainId:r})).tokens,a=n.get(r);return PB(i,a)}return[]},DB=async(t,n,r)=>{const i={};return i.swap=await(async(t,n,r)=>{if(r.swap){const r=(await Pm(t,{type:e.TokenFilterTypes.SWAP})).tokens,i=n.get(Sm(t));return PB(r,i)}return[]})(t,n,r),i.bridge=await BB(t,n,r),i.onRamp=await MB(t,r),i},FB="0x0000000000000000000000000000000000000eee",LB=async(e,t)=>(await t.remote.getConfig("imxAddressMapping"))[e]??"",UB=async(t,n)=>{if(Mm(n))return{l1address:await LB(km(t),t),l2address:hm};const r=(i=Sm(t))===e.ChainId.IMTBL_ZKEVM_MAINNET?e.ChainSlug.IMTBL_ZKEVM_MAINNET:i===e.ChainId.IMTBL_ZKEVM_TESTNET?e.ChainSlug.IMTBL_ZKEVM_TESTNET:i===e.ChainId.IMTBL_ZKEVM_DEVNET?e.ChainSlug.IMTBL_ZKEVM_DEVNET:"";var i;const a=iB(t),o=(await a.getToken({chainName:r,contractAddress:n})).result.root_contract_address;return xm(o??"",FB)?{l1address:"native",l2address:n}:null!==o?{l1address:o,l2address:n}:void 0},qB=(e,t)=>(e=>{for(const t of e.balances)if(Mm(t.token.address))return t.balance;return ur.from(0)})(e).gte(t),jB=(t,n,r,i,a)=>{const o=a?.decimals??pm,s=[];return n.gt(0)&&s.push({type:e.FeeType.BRIDGE_FEE,amount:n,formattedAmount:Bh(n,o),token:a}),r.gt(0)&&s.push({type:e.FeeType.IMMUTABLE_FEE,amount:r,formattedAmount:Bh(r,o),token:a}),{approvalGasFee:{type:e.FeeType.GAS,amount:i,formattedAmount:Bh(i,pm),token:a},bridgeGasFee:{type:e.FeeType.GAS,amount:t,formattedAmount:Bh(t,pm),token:a},bridgeFees:s}},GB=(t,n,r,i,a)=>({type:e.FundingStepType.BRIDGE,chainId:t,fundingItem:{type:i,fundsRequired:{amount:r.amount,formattedAmount:r.formattedAmount},userBalance:{balance:n.balance,formattedBalance:n.formattedBalance},token:{name:n.token.name,symbol:n.token.symbol,address:n.token.address,decimals:n.token.decimals}},fees:a}),HB=async(t,n,r,i,a)=>{if(!r.bridge)return;const o=km(t),s=Sm(t),u=t.networkMap.get(o)?.nativeCurrency,c=a.get(o);if(!n.get(o))throw new om("No L1 provider available",e.CheckoutErrorType.PROVIDER_ERROR,{chainId:o.toString()});if(void 0===c||!1===c.success)return;const l=await BB(t,a,r);if(0===l.length)return;const d=await UB(t,i.l2address);if(!d)return;const{l1address:f}=d;if(Mm(f)){if(!l.find((e=>Mm(e.address))))return}else if(!l.find((e=>xm(e.address,f))))return;const p=await(async(t,n,r,i)=>{const a=tB(r,i,n,t);try{return{...await a.getFee({action:JT.DEPOSIT,gasMultiplier:1.1,sourceChainId:r.toString(),destinationChainId:i.toString()}),approvalGas:ur.from(0)}}catch(t){throw new om("Error estimating gas for bridge",e.CheckoutErrorType.BRIDGE_GAS_ESTIMATE_ERROR,{message:t.message})}})(t,n,o,s),{sourceChainGas:h,approvalGas:m,bridgeFee:y,imtblFee:g,totalFees:b}=p;if(!qB(c,b))return;if(Mm(f)){const t=c.balances.find((e=>Mm(e.token.address)));if(t&&t.balance.gte(i.amount.add(b))){const n=jB(h,y,g,m,u);return GB(o,t,i,e.ItemType.NATIVE,n)}return}const v=c.balances.find((e=>xm(e.token.address,f)));if(v&&v.balance.gte(i.amount)){const t=jB(h,y,g,m,u);return GB(o,v,i,e.ItemType.ERC20,t)}},zB=(e,t)=>{let n=ur.from(0);return e.quote.fees.forEach((e=>{xm(e.amount.token.address,t)&&(n=n.add(e.amount.value))})),e.approval&&xm(e.approval.token.address,t)&&(n=n.add(e.approval.value)),n},WB=(t,n)=>{for(const r of t.balanceRequirements)if((r.type===e.ItemType.NATIVE||r.type===e.ItemType.ERC20)&&xm(r.required.token.address,n))return r.required.balance;return ur.from(0)},VB=(e,t,n)=>{const r=n?.balance??ur.from(0);if(r.gte(e.add(t)))return ur.from(0);if(r.lte(0))return e.add(t);const i=r.sub(t);return i.gte(0)?e.sub(i):e.add(t).sub(r)},KB=async(e,t,n,r,i,a,o,s,u)=>{const{l1balances:c,l2balances:l}=((e,t)=>{const n={l1balances:[],l2balances:[]},r=t.get(km(e)),i=t.get(Sm(e));return r?void 0!==r.error?n:r.success&&i?void 0!==i.error?n:i.success?{l1balances:r.balances,l2balances:i.balances}:n:n:n})(e,a),d=r.required.token.address;if(((e,t,n,r,i,a)=>0===e.length||0===t.length||0===n.length||0===r.length||!i.bridge||!i.swap||void 0===a||""===a)(o,s,c,l,n,d))return[];const f=await(async(e,t)=>{const n=t.map((t=>UB(e,t.address??"")));return(await Promise.all(n)).filter((e=>void 0!==e))})(e,s),p=((e,t,n,r)=>{const i=[];for(const a of r){if(!t.includes(a.l1address))continue;if(xm(a.l2address,e))continue;const r=n.find((e=>xm(e.address,a.l2address)));r&&i.push(r)}return i})(d,o,s,f);if(0===p.length)return[];const h=await(async(e,t,n,r,i)=>{const a=[];for(const e of i)e.address&&a.push(e.address);return await RB(e,Sm(e),t,{address:n,amount:r.delta.balance},a)})(e,i,d,r,p),m=((e,t,n,r,i)=>{const a=[];for(const[o,s]of e){const e=n.find((e=>xm(e.token.address,o))),u=r.find((e=>xm(e.l2address,o)));if(!u)continue;const{l1address:c,l2address:l}=u;if(!c)continue;const d=t.find((e=>!(void 0!==e.token.address||!xm(c,FB))||xm(e.token.address,c)));if(!d)continue;const f=s.quote.amountWithMaxSlippage.value,p=zB(s,o),h=f.add(p),m=WB(i,o),y=VB(h,m,e);y.lte(0)||y.gte(d.balance)||a.push({amount:y,formattedAmount:Bh(y,d.token.decimals),l2address:l})}return a})(h,c,l,f,u);if(0===m.length)return[];const y=new Map,g=new Map,b=[];for(const r of m)r.l2address&&(y.set(r.l2address,HB(e,t,n,r,a)),g.set(r.l2address,{amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address}));const v=await Promise.all(y.values()),T=Array.from(y.keys()),w=[];if(v.forEach(((e,t)=>{const n=T[t];if(void 0===e)return;w.push(n);const r=g.get(n);r&&b.push({amount:r.amount,formattedAmount:r.formattedAmount,l2address:r.l2address})})),0===w.length)return[];if(0===b.length)return[];const A=((e,t,n,r,i)=>{const a=new Map;for(const[e,n]of t)a.set(e,{success:n.success,balances:n.balances});const o=new Map;for(const e of n)e.token.address&&o.set(e.token.address,e);for(const e of r){const{amount:t,l2address:n}=e;if(""===n)continue;let r=ur.from(0);const a=o.get(n);a&&(r=a.balance);const s=r.add(t),u=i.find((e=>xm(e.address,n)));o.set(n,{balance:s,formattedBalance:Bh(s,u.decimals),token:u})}const s=Array.from(o.values());return a.set(Sm(e),{success:!0,balances:s}),a})(e,a,l,b,s),E=await xB(e,n,i,r,A,w,u);if(!E)return[];const _=((e,t)=>{const n=[];for(const r of t){const{chainId:t,fundingItem:i}=r,{userBalance:a}=r.fundingItem,o=e.get(t);if(!o)continue;let s=ur.from(0),u="0";const c=o.balances.find((e=>xm(e.token.address,i.token.address)));c&&(s=c.balance,u=c.formattedBalance),a.balance=s,a.formattedBalance=u,n.push(r)}return n})(a,E);return((e,t,n)=>{const r=[];for(const i of e){if(!i)continue;const e=n.find((e=>void 0===i.fundingItem.token.address?xm(e.l1address,FB)&&e.l2address:xm(e.l1address,i.fundingItem.token.address)&&e.l2address));if(!e)continue;const a=t.find((t=>xm(t.fundingItem.token.address,e.l2address)));a&&r.push({bridgeFundingStep:i,swapFundingStep:a})}return r})(v,_,f)},XB=async(t,n,r)=>{if(!n.onRamp)return;if(void 0===r)return;const i=await(async(t,n,r)=>{if(![e.ItemType.ERC20,e.ItemType.NATIVE].includes(r.type))return;const{required:i,current:a,delta:o}=r;let s=!1;return(await MB(t,n)).forEach((e=>{e.address&&i.token&&(Mm(i.token.address)||xm(e.address,i.token.address))&&(s=!0)})),s?{type:e.FundingStepType.ONRAMP,chainId:Sm(t),fundingItem:{type:Mm(i.token.address)?e.ItemType.NATIVE:e.ItemType.ERC20,fundsRequired:{amount:o.balance,formattedAmount:o.formattedBalance},userBalance:{balance:a.balance,formattedBalance:a.formattedBalance},token:i.token}}:void 0})(t,n,r);return i},JB=async(t,n,r,i)=>{if(!(e=>e.bridge||e.swap||e.onRamp)(i))return{type:e.RoutingOutcomeType.NO_ROUTE_OPTIONS,message:"No routing options are available"};let a;try{a=await IB(t)}catch(t){throw new om("Error occurred while creating read only providers",e.CheckoutErrorType.PROVIDER_ERROR,{message:t.message})}const o=await Um(t,"Time to get token balances inside router",(async(t,n,r,i)=>{const a=new Map,o=new Map;if(0===n.size){const n={success:!1,error:new om("No L1 or L2 provider available",e.CheckoutErrorType.PROVIDER_ERROR),balances:[]};return a.set(km(t),n),a.set(Sm(t),n),a}if(i.bridge){const i=km(t);n.has(i)?o.set(i,Hm(t,n.get(i),r,i)):a.set(km(t),{success:!1,error:new om(`No L1 provider available for ${i}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]})}const s=Sm(t);if(n.has(s)?o.set(s,Hm(t,n.get(s),r,s)):a.set(Sm(t),{success:!1,error:new om(`No L2 provider available for ${s}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]}),o.size>0){const t=Array.from(o.keys());(await Promise.allSettled(o.values())).forEach(((n,r)=>{const i=t[r];"fulfilled"===n.status?a.set(i,{success:!0,balances:n.value.balances}):a.set(i,{success:!1,error:new om(`Error getting ${s} balances`,e.CheckoutErrorType.GET_BALANCE_ERROR),balances:[]})}))}return a})(t,a,n,i)),s=await Um(t,"Time to get routing allowlist",DB(t,o,i)),u=(e=>{let t,n=0;for(const r of e.balanceRequirements)r.sufficient||(n++,t=r);if(1===n)return t})(r),c=[];c.push((async(t,n,r,i,a)=>{let o;if(void 0===i)return;if(i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20)return;const s={amount:i.delta.balance,formattedAmount:i.delta.formattedBalance,l2address:i.required.token.address??""};return r.bridge&&i&&(o=await HB(t,n,r,s,a)),o})(t,a,i,u,o)),c.push((async(e,t,n,r,i,a,o)=>{const s=[];if(!t.swap)return s;if(void 0===n)return s;if(void 0===a)return s;const u=i.get(Sm(e));if(!u)return s;if(void 0!==u.error||!u.success)return s;if(0===a.length)return s;const c=a.filter((e=>e.address)).map((e=>e.address));return 0===c.length?s:await xB(e,t,r,n,i,c,o)})(t,i,u,n,o,s.swap,r)),c.push(XB(t,i,u)),c.push((async(t,n,r,i,a,o,s,u)=>{if(!i)return[];const c=o.get(km(t)),l=o.get(Sm(t));if(!c)return[];if(void 0!==c.error||!c.success)return[];if(!l)return[];if(void 0!==l.error||!l.success)return[];const d=(s?.bridge??[]).map((e=>void 0===e.address?FB:e.address)),f=s?.swap??[];return i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20?[]:await KB(t,n,r,i,a,o,d,f,u)})(t,a,i,u,n,o,s,r));const l=await Um(t,"Time to resolve all routes",Promise.all(c));let d,f,p=[],h=[];if(l.forEach(((e,t)=>{0===t&&(d=e),1===t&&(p=e),2===t&&(f=e),3===t&&(h=e)})),!d&&0===p.length&&!f&&0===h.length)return{type:e.RoutingOutcomeType.NO_ROUTES_FOUND,message:"Smart Checkout did not find any funding routes to fulfill the transaction"};const m={type:e.RoutingOutcomeType.ROUTES_FOUND,fundingRoutes:[]};let y=0;return p.length>0&&(y++,p.forEach((e=>{m.fundingRoutes.push({priority:y,steps:[e]})}))),d&&(y++,m.fundingRoutes.push({priority:y,steps:[d]})),f&&(y++,m.fundingRoutes.push({priority:y,steps:[f]})),h&&(y++,h.forEach((e=>{const t=e.bridgeFundingStep,n=e.swapFundingStep;m.fundingRoutes.push({priority:y,steps:[t,n]})}))),m},YB=async(t,n,r,i)=>{const a=await n.getSigner().getAddress();let o=cB(r);const s=(async(t,n,r)=>{let i=!0;const a=[],o=new Map,s=new Map,u=new Map,c=new Map;for(const i of r){if(i.type!==e.ItemType.ERC20)continue;const{tokenAddress:r,spenderAddress:a}=i,u=`${r}${a}`;o.set(u,i),s.set(u,lB(t,n,r,a))}const l=await Promise.all(s.values()),d=Array.from(s.keys());for(let r=0;r<l.length;r++){const s=o.get(d[r]);if(!s||s.type!==e.ItemType.ERC20)continue;if(l[r].gte(s.amount)){a.push({sufficient:!0,itemRequirement:s});continue}i=!1;const{tokenAddress:f,spenderAddress:p}=s,h=`${f}${p}`,m=s.amount.sub(l[r]);u.set(h,{type:e.ItemType.ERC20,sufficient:!1,delta:m,itemRequirement:s,approvalTransaction:void 0}),c.set(h,dB(t,n,f,p,m))}const f=await Promise.all(c.values()),p=Array.from(c.keys());return f.forEach(((e,t)=>{const n=u.get(p[t]);n&&(n.sufficient||(n.approvalTransaction=e))})),{sufficient:i,allowances:a.concat(Array.from(u.values()))}})(n,a,o),u=yB(n,a,o),c=await Um(t,"Time to calculate token allowances",Promise.all([s,u])),l=((e,t)=>{const n=[];if(!e.sufficient)for(const t of e.allowances)t.sufficient||n.push(t);if(!t.sufficient)for(const e of t.allowances)e.sufficient||n.push(e);return n})(c[0],c[1]),d=await Um(t,"Time to run gas calculator",wB(n,l,i));null!==d&&(o.push(d),o=cB(o));const f=await Um(t,"Time to run balance checks",vB(t,n,a,o)),{sufficient:p}=f,h=f.balanceRequirements;if(p)return{sufficient:p,transactionRequirements:h};const m=await Um(t,"Time to fetch available routing options",(async(e,t)=>{const n={onRamp:e.isOnRampEnabled,swap:e.isSwapEnabled,bridge:e.isBridgeEnabled},r=[];if(n.onRamp&&r.push({id:"onRamp",promise:EB()}),n.swap&&r.push({id:"swap",promise:_B(e)}),r.length>0){const e=r.map((e=>e.promise));(await Promise.allSettled(e)).forEach(((e,t)=>{const i=r[t].id;n[i]=n[i]&&"fulfilled"===e.status&&e.value}))}return n.bridge=n.bridge&&!(e=>!0===e.provider?.isPassport??!1)(t),n})(t,n));return{sufficient:p,transactionRequirements:h,router:{availableRoutingOptions:m,routingOutcome:await Um(t,"Total time to run the routing calculator",JB(t,a,f,m))}}};var QB;!function(e){e.SUCCESS="SUCCESS",e.FAILED="FAILED"}(QB||(QB={}));const $B=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>Jm(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new om("An error occurred while executing the approval transaction",e.CheckoutErrorType.EXECUTE_APPROVAL_TRANSACTION_ERROR,{message:t.message})}for(const e of r)if(0===e.status)return{type:QB.FAILED,transactionHash:e.transactionHash,reason:"Approval transaction failed and was reverted"};return{type:QB.SUCCESS}},ZB=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>Jm(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new om("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:t.message})}for(const e of r)if(0===e.status)return{type:QB.FAILED,transactionHash:e.transactionHash,reason:"Fulfillment transaction failed and was reverted"};return{type:QB.SUCCESS}},eD=async e=>{let t=[];const n=[];for(const t of e)t.type===tM.TRANSACTION&&t.purpose===ZP.FULFILL_ORDER&&n.push(t.buildTransaction());return t=await Promise.all(n),t},tD=(e,t)=>{const n=e.amount,r=Math.round(n.percentageDecimal*10**6);return t.mul(ur.from(r)).div(10**6)},nD=(e,t)=>Dh(e.amount.token,t),rD=(t,n,r=18)=>{let i=ur.from(0);const a=ur.from(n),o=a.mul(1e6).div(10**6),s=[];for(const n of t){let t=ur.from(0);if(Object.hasOwn(n.amount,"percentageDecimal"))t=tD(n,a),i=i.add(t);else{if(!Object.hasOwn(n.amount,"token"))throw new om("Unknown fee type parsed, must be percentageDecimal or token",e.CheckoutErrorType.ORDER_FEE_ERROR);t=nD(n,r),i=i.add(t)}if(i.gt(o))throw new om("The combined fees are above the allowed maximum of 100%",e.CheckoutErrorType.ORDER_FEE_ERROR);t.gt(0)&&s.push({amount:t.toString(),recipientAddress:n.recipient})}return s},iD=(t,n,r,i)=>{switch(t){case e.ItemType.ERC20:return{type:t,amount:r,tokenAddress:n,spenderAddress:i};case e.ItemType.NATIVE:default:return{type:e.ItemType.NATIVE,amount:r}}},aD=async(t,n,r)=>{if(0===r.length)throw new om("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR);let i,a="",o=18;const s=gM,u=rB(t),c=iB(t),l=await Um(t,"Time to get the address from the provider",n.getSigner().getAddress());Gm.clear(),Hm(t,n,l,km(t)),Hm(t,n,l,Sm(t));const{id:d,takerFees:f}=r[0];let p;try{i=await Um(t,"Time to fetch the listing from the orderbook",u.getListing(d));const{seaportContractAddress:e,chainName:n}=u.config();p=n,a=e}catch(t){throw new om("An error occurred while getting the order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{orderId:d,message:t.message})}if(0===i.result.buy.length)throw new om("An error occurred with the get order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{orderId:d,message:"No buy side tokens found on order"});const h=i.result.buy[0];if("ERC20"===h.type){const e=await Um(t,"Time to get decimals of token contract for the buy token",c.getToken({contractAddress:h.contractAddress,chainName:p}));e.result.decimals&&(o=e.result.decimals)}let m=[];f&&f.length>0&&(m=rD(f,h.amount,o));let y=[],g=[],b=[];const v=performance.now();try{const{actions:e}=await Um(t,"Time to call fulfillOrder from the orderbook",u.fulfillOrder(d,l,m));b=e,y=await Um(t,"Time to construct the unsigned approval transactions",(async e=>{let t=[];const n=[];for(const t of e)t.type===tM.TRANSACTION&&t.purpose===ZP.APPROVAL&&n.push(t.buildTransaction());return t=await Promise.all(n),t})(e))}catch(n){const r=(performance.now()-v)/1e3;if(Lm(t,"Time to call fulfillOrder from the orderbook",r),n.message.includes(YP.EXPIRED))throw new om("Order is expired",e.CheckoutErrorType.ORDER_EXPIRED_ERROR,{orderId:d});if(!n.message.includes("The fulfiller does not have the balances needed to fulfill"))throw new om("Error occurred while trying to fulfill the order",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{orderId:d,message:n.message})}try{g=await Um(t,"Time to construct the unsigned fulfillment transactions",eD(b))}catch{}let T=ur.from("0"),w=e.ItemType.NATIVE,A="";const E=i.result.buy;if(E.length>0)switch(E[0].type){case"NATIVE":w=e.ItemType.NATIVE;break;case"ERC20":w=e.ItemType.ERC20,A=E[0].contractAddress;break;default:throw new om("Purchasing token type is unsupported",e.CheckoutErrorType.UNSUPPORTED_TOKEN_TYPE_ERROR,{orderId:d})}E.forEach((t=>{t.type!==e.ItemType.ERC721&&(T=T.add(ur.from(t.amount)))}));i.result.fees.forEach((e=>{T=T.add(ur.from(e.amount))}));const _=[iD(w,A,T,a)],I=await Um(t,"Total time running smart checkout",YB(t,n,_,((t,n)=>n.length>0?{type:e.TransactionOrGasType.TRANSACTION,transaction:n[0]}:{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:ur.from(t)}})(s,g)));if(I.sufficient){const t=await $B(n,y);if(t.type===QB.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason,smartCheckoutResult:I};try{0===g.length&&(g=await eD(b))}catch(t){throw new om("Error fetching fulfillment transaction",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{message:t.message})}const r=await ZB(n,g);return r.type===QB.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:r.transactionHash,reason:r.reason,smartCheckoutResult:I}:{status:e.CheckoutStatus.SUCCESS,smartCheckoutResult:I}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:I}},oD=(t,n,r)=>({type:e.ItemType.ERC721,id:t,contractAddress:n,spenderAddress:r}),sD=async(t,n,r)=>{let i,a,o="";if(0===r.length)throw new om("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR);const{buyToken:s,sellToken:u,makerFees:c}=r[0];let l=18;if(s.type===e.ItemType.ERC20){const e=new Rl(s.tokenAddress,JSON.stringify(Em),n);l=await Um(t,"Time to get decimals of token contract for the buy token",e.decimals())}const d=((t,n=18)=>{const r=Dh(t.amount,n);return t.type===e.ItemType.NATIVE?{type:e.ItemType.NATIVE,amount:r.toString()}:{type:e.ItemType.ERC20,amount:r.toString(),contractAddress:t.tokenAddress}})(s,l);try{const r=await Um(t,"Time to get the address from the provider",n.getSigner().getAddress());i=rB(t);const{seaportContractAddress:s}=i.config();o=s,a=await Um(t,"Time to prepare the listing from the orderbook",i.prepareListing({makerAddress:r,buy:d,sell:{type:e.ItemType.ERC721,contractAddress:u.collectionAddress,tokenId:u.id}}))}catch(t){throw new om("An error occurred while preparing the listing",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR,{message:t.message,id:u.id,collectionAddress:u.collectionAddress})}const f=[oD(u.id,u.collectionAddress,o)],p=await Um(t,"Total time running smart checkout",YB(t,n,f,{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:ur.from(gM)}}));if(p.sufficient){const t=await(async e=>{let t=[],n=[];const r=[],i=[];for(const t of e)t.type===tM.TRANSACTION&&(t.purpose===ZP.APPROVAL&&r.push(t.buildTransaction()),t.purpose===ZP.FULFILL_ORDER&&i.push(t.buildTransaction()));return t=await Promise.all(r),n=await Promise.all(i),{approvalTransactions:t,fulfillmentTransactions:n}})(a.actions),r=await $B(n,t.approvalTransactions);if(r.type===QB.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:r.transactionHash,reason:r.reason,smartCheckoutResult:p};const o=((e,t,n)=>{let r;for(const e of n)e.type===tM.SIGNABLE&&e.purpose===eM.CREATE_LISTING&&(r={domain:e.message.domain,types:e.message.types,value:e.message.value});if(r)return{orderHash:e,orderComponents:t,unsignedMessage:r}})(a.orderHash,a.orderComponents,a.actions);if(!o)throw new om("The unsigned message is missing after preparing the listing",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{id:u.id,collectionAddress:u.collectionAddress});const s=await(async(t,n)=>{try{const e=await t.getSigner()._signTypedData(n.unsignedMessage.domain,n.unsignedMessage.types,n.unsignedMessage.value);return{orderComponents:n.orderComponents,orderHash:n.orderHash,signedMessage:e}}catch(t){throw new om("An error occurred while signing the message",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{message:t.message})}})(n,o);let f="";const h={orderComponents:s.orderComponents,orderHash:s.orderHash,orderSignature:s.signedMessage,makerFees:[]};if(void 0!==c){const t=rD(c,d.amount,l);if(t.length!==c.length)throw new om("One of the fees is too small, must be greater than 0.000001",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR);h.makerFees=t}try{f=(await i.createListing(h)).result.id}catch(t){throw new om("An error occurred while creating the listing",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR,{message:t.message,collectionId:u.id,collectionAddress:u.collectionAddress})}return{status:e.CheckoutStatus.SUCCESS,orderIds:[f],smartCheckoutResult:p}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:p}};class uD{config;constructor(e){this.config=e}async feeEstimate(){const e=await this.config.remote.getConfig("onramp");return e[Vh.TRANSAK]?.fees}async createWidgetUrl(e){return await this.getTransakWidgetUrl(e)}async getTransakWidgetUrl(e){let t=`${bm[this.config.environment]}?`;if(t+=`${`apiKey=${(await this.config.remote.getConfig("onramp"))[Vh.TRANSAK].publishableApiKey}`}&network=immutablezkevm&defaultPaymentMethod=credit_debit_card&disablePaymentMethods=sepa_bank_transfer,gbp_bank_transfer,pm_cash_app,pm_jwire,pm_paymaya,pm_bpi,pm_ubp,pm_grabpay,pm_shopeepay,pm_gcash,pm_pix,pm_astropay,pm_pse,inr_bank_transfer&productsAvailed=buy&exchangeScreenTitle=Buy&themeColor=0D0D0D`,e.isPassport&&e.email){t+=`&email=${encodeURIComponent(e.email)}&isAutoFillUserData=true&disableWalletAddressForm=true`}return e.tokenAmount&&e.tokenSymbol?t+=`&defaultCryptoAmount=${e.tokenAmount}&cryptoCurrencyCode=${e.tokenSymbol}`:t+="&defaultCryptoCurrency=IMX",e.walletAddress&&(t+=`&walletAddress=${e.walletAddress}`),t}}async function cD(t,n){const r=[];n.forEach((n=>{if(n.type===e.ItemType.ERC20){const{tokenAddress:e}=n;r.push((i=e,a=Em,o=t,new Rl(i,a,o)).decimals())}var i,a,o}));const i=await Promise.all(r),a=n.map(((t,n)=>t.type===e.ItemType.NATIVE?{...t,amount:Dh(t.amount,18)}:t.type===e.ItemType.ERC20?{...t,amount:Dh(t.amount,i[n])}:t));return a}function lD(e){if(void 0===window)throw new Error("missing window object: please run Checkout client side");if(void 0===document)throw new Error("missing document object: please run Checkout client side");const t="immutable-checkout-widgets-bundle",n=function(e){const t=Rm();if(void 0===e||void 0===e.major)return t;if(!Number.isInteger(e.major)||e.major<0)return t;if(void 0!==e.minor&&e.minor<0)return t;if(void 0!==e.patch&&e.patch<0)return t;if(0===e.major&&void 0===e.minor)return t;if(0===e.major&&0===e.minor&&void 0===e.patch)return t;if(0===e.major&&void 0===e.minor&&void 0===e.patch)return t;if(0===e.major&&0===e.minor&&0===e.patch)return t;let n=e.major.toString();return void 0===e.minor||(Number.isInteger(e.minor)&&(n+=`.${e.minor.toString()}`),void 0===e.patch||(Number.isInteger(e.patch)&&(n+=`.${e.patch.toString()}`),void 0===e.prerelease||"alpha"!==e.prerelease||("alpha"===e.prerelease&&(n+=`-${e.prerelease}`),void 0===e.build||Number.isInteger(e.build)&&e.build>=0&&(n+=`.${e.build.toString()}`)))),n}(e),r=document.getElementById(t);if(r)return{loaded:!0,element:r};const i=document.createElement("script");let a=`https://cdn.jsdelivr.net/npm/@imtbl/sdk@${n}/dist/browser/checkout/widgets.js`;return i.setAttribute("id",t),i.setAttribute("data-version",n),i.setAttribute("src",a),document.head.appendChild(i),{loaded:!1,element:i}}const dD=["https://checkout-api.dev.immutable.com","https://checkout-api.sandbox.immutable.com","https://checkout-api.immutable.com"];class fD{config;axiosInstance;constructor(e){this.config=e,this.axiosInstance=Qe.create(),this.setupInterceptors()}shouldAddPublishableKey(e){return dD.some((t=>e.startsWith(t)))}setupInterceptors(){this.axiosInstance.interceptors.request.use((e=>{const t=this.config?.baseConfig?.publishableKey;if(t&&this.shouldAddPublishableKey(e.url||"")){if(!t.startsWith("pk_imapik-"))throw new Error("Invalid Publishable key. Create your Publishable key in Immutable developer hub. https://hub.immutable.com");e.headers["x-immutable-publishable-key"]=t}return e}),(e=>Promise.reject(e)))}async request(e){return await this.axiosInstance.request(e)}async get(e,t){const n={...t,url:e};return await this.request(n)}async post(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}async put(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}async delete(e,t,n){const r={...n,data:t,url:e};return await this.request(r)}}const pD={baseConfig:{environment:ht.SANDBOX},passport:void 0};e.Checkout=class{readOnlyProviders;httpClient;config;fiatRampService;availability;passport;constructor(e=pD){this.httpClient=new fD(e),this.config=new Nm(e,this.httpClient),this.fiatRampService=new uD(this.config),this.readOnlyProviders=new Map,this.availability=AB(this.config.isDevelopment,this.config.isProduction),this.passport=e.passport}async widgets(t){const n=this;await n.config.remote.getConfig();const r=new Promise(((r,i)=>{try{lD(t.version).loaded&&"undefined"!=typeof ImmutableCheckoutWidgets?r(new ImmutableCheckoutWidgets.WidgetsFactory(n,t.config)):function e(){"undefined"!=typeof ImmutableCheckoutWidgets?r(new ImmutableCheckoutWidgets.WidgetsFactory(n,t.config)):setTimeout(e,100)}()}catch(t){i(new om("Failed to load widgets script",e.CheckoutErrorType.WIDGETS_SCRIPT_LOAD_ERROR,{message:t.message}))}}));return r}async createProvider(e){return await Vm(e.walletProviderName,this.passport)}async checkIsWalletConnected(t){return async function(t){if(!t?.provider?.request)throw new om("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{rpcMethod:Jh.CHECK_CONNECTION});let n=[];try{n=await t.provider.request({method:Jh.CHECK_CONNECTION,params:[]})}catch(t){throw new om("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{rpcMethod:Jh.CHECK_CONNECTION})}return{isConnected:n&&n.length>0,walletAddress:n[0]??""}}(await Xm(this.config,t.provider,{allowUnsupportedProvider:!0}))}async connect(t){const n=await Xm(this.config,t.provider,{allowUnsupportedProvider:!0});return await async function(t){if(!t||!t.provider?.request)throw new om("Incompatible provider",e.CheckoutErrorType.PROVIDER_REQUEST_MISSING_ERROR,{details:"Attempting to connect with an incompatible provider"});return await sm((async()=>{t.provider.request&&await t.provider.request({method:Jh.CONNECT,params:[]})}),{type:e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR}),t}(n),{provider:n}}async switchNetwork(e){const t=await Xm(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await dm(this.config,t,e.chainId)}async getTokenInfo(e){return await Bm(e.provider,e.tokenAddress)}async getBalance(e){const t=await Xm(this.config,e.provider);return e.tokenAddress&&""!==e.tokenAddress?await jm(t,e.walletAddress,e.tokenAddress):await qm(this.config,t,e.walletAddress)}async getAllBalances(e){return Hm(this.config,e.provider,e.walletAddress,e.chainId)}async getNetworkAllowList(e){return await cm(this.config,e)}async getTokenAllowList(e){return await Pm(this.config,e)}async getWalletAllowList(t){return await async function(t){const n=[],r=t.exclude?.map((e=>e.walletProviderName))??[];let i=Object.values(e.WalletProviderName);0!==r.length&&(i=i.filter((e=>!r.includes(e))));for(const e of i)n.push({walletProviderName:e});return{wallets:n}}(t)}async sendTransaction(e){const t=await Xm(this.config,e.provider);return await Jm(t,e.transaction)}async getNetworkInfo(e){const t=await Xm(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await lm(this.config,t)}async buy(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await Xm(this.config,e.provider);return await aD(this.config,t,e.orders)}async sell(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await Xm(this.config,e.provider);return await sD(this.config,t,e.orders)}async cancel(t){console.warn("This endpoint currently only processes the first order in the array.");const n=await Xm(this.config,t.provider);return await(async(t,n,r)=>{let i;if(0===r.length)throw new om("No orderIds were provided to the orderIds array. Please provide at least one orderId.",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR);const a=r[0];try{const e=await Um(t,"Time to get the address from the provider",n.getSigner().getAddress()),r=rB(t),o=await Um(t,"Time to get the cancel order from the orderbook",r.cancelOrdersOnChain([a],e));i=await o.cancellationAction.buildTransaction()}catch(t){throw new om("An error occurred while cancelling the order listing",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR,{orderId:a,message:t.message})}const o=await ZB(n,[i]);return o.type===QB.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:o.transactionHash,reason:o.reason}:{status:e.CheckoutStatus.SUCCESS}})(this.config,n,t.orderIds)}async smartCheckout(t){const n=await Xm(this.config,t.provider);let r=[];try{r=await cD(n,t.itemRequirements)}catch(t){throw new om("Failed to map item requirements",e.CheckoutErrorType.ITEM_REQUIREMENTS_ERROR)}return await YB(this.config,n,r,t.transactionOrGasAmount)}static isWeb3Provider(e){return Km(e)}async gasEstimate(e){return this.readOnlyProviders=await IB(this.config,this.readOnlyProviders),await uB(e,this.readOnlyProviders,this.config)}async createFiatRampUrl(t){let n,r,i="IMX";const a=await t.web3Provider.getSigner().getAddress(),o=t.web3Provider.provider?.isPassport||!1;if(o&&t.passport){const e=await t.passport.getUserInfo();r=e?.email}const s=await Pm(this.config,{type:e.TokenFilterTypes.ONRAMP}),u=s.tokens?.find((e=>xm(e.address,t.tokenAddress)));return u&&(n=t.tokenAmount,i=u.symbol),await this.fiatRampService.createWidgetUrl({exchangeType:t.exchangeType,isPassport:o,walletAddress:a,tokenAmount:n,tokenSymbol:i,email:r})}async getExchangeFeeEstimate(){return await this.fiatRampService.feeEstimate()}async isSwapAvailable(){return this.availability.checkDexAvailability()}},e.CheckoutConfiguration=Nm,e.IMMUTABLE_API_BASE_URL=ym}));