@imtbl/sdk 0.44.3 → 0.44.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -144
- package/dist/blockchain_data.js +1 -1
- package/dist/browser/checkout/sdk.js +2 -2
- package/dist/browser/checkout/widgets.js +3 -3
- package/dist/checkout.d.ts +12544 -2145
- package/dist/checkout.js +28 -10
- package/dist/immutablex_client.js +1 -1
- package/dist/index.browser.js +3 -3
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +32 -13
- package/dist/index.d.ts +10406 -1
- package/dist/index.js +32 -13
- package/dist/passport.d.ts +11314 -552
- package/dist/passport.js +4 -3
- package/package.json +1 -1
|
@@ -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=gt: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[_]]}()}(hi);var mi=bt(hi.exports);function yi(e){return"0x"+mi.keccak_256(jn(e))}var gi=Object.freeze({__proto__:null,keccak256:yi});const bi=new Pn("rlp/5.7.0");function vi(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Ti(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function wi(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(wi(e))})),t.length<=55)return t.unshift(192+t.length),t;const n=vi(t.length);return n.unshift(247+n.length),n.concat(t)}Ln(e)||bi.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(jn(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const n=vi(t.length);return n.unshift(183+n.length),n.concat(t)}function Ai(e){return Kn(wi(e))}function Ei(e,t,n,r){const i=[];for(;n<t+1+r;){const a=_i(e,n);i.push(a.result),(n+=a.consumed)>t+1+r&&bi.throwError("child data too short",Pn.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function _i(e,t){if(0===e.length&&bi.throwError("data too short",Pn.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&bi.throwError("data short segment too short",Pn.errors.BUFFER_OVERRUN,{});const r=Ti(e,t+1,n);return t+1+n+r>e.length&&bi.throwError("data long segment too short",Pn.errors.BUFFER_OVERRUN,{}),Ei(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&bi.throwError("data array too short",Pn.errors.BUFFER_OVERRUN,{}),Ei(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&bi.throwError("data array too short",Pn.errors.BUFFER_OVERRUN,{});const r=Ti(e,t+1,n);t+1+n+r>e.length&&bi.throwError("data array too short",Pn.errors.BUFFER_OVERRUN,{});return{consumed:1+n+r,result:Kn(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;t+1+n>e.length&&bi.throwError("data too short",Pn.errors.BUFFER_OVERRUN,{});return{consumed:1+n,result:Kn(e.slice(t+1,t+1+n))}}return{consumed:1,result:Kn(e[t])}}function Ii(e){const t=jn(e),n=_i(t,0);return n.consumed!==t.length&&bi.throwArgumentError("invalid rlp data","data",e),n.result}var Ri=Object.freeze({__proto__:null,decode:Ii,encode:Ai});const Ci=new Pn("address/5.7.0");function Oi(e){Wn(e,20)||Ci.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=jn(yi(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 ki={};for(let e=0;e<10;e++)ki[String(e)]=String(e);for(let e=0;e<26;e++)ki[String.fromCharCode(65+e)]=String(10+e);const Si=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Ni(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>ki[e])).join("");for(;t.length>=Si;){let e=t.substring(0,Si);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 xi(e){let t=null;if("string"!=typeof e&&Ci.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Oi(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Ci.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)!==Ni(e)&&Ci.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new ir(n,36).toString(16);t.length<40;)t="0"+t;t=Oi("0x"+t)}else Ci.throwArgumentError("invalid address","address",e);var n;return t}function Pi(e){try{return xi(e),!0}catch(e){}return!1}function Mi(e){let t=(n=xi(e).substring(2),new ir(n,16).toString(36)).toUpperCase();for(var n;t.length<30;)t="0"+t;return"XE"+Ni("XE00"+t)+t}function Bi(e){let t=null;try{t=xi(e.from)}catch(t){Ci.throwArgumentError("missing from address","transaction",e)}return xi(Jn(yi(Ai([t,Hn(jn(cr.from(e.nonce).toHexString()))])),12))}function Di(e,t,n){return 32!==Xn(t)&&Ci.throwArgumentError("salt must be 32 bytes","salt",t),32!==Xn(n)&&Ci.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",n),xi(Jn(yi(Gn(["0xff",xi(e),t,n])),12))}var Fi=Object.freeze({__proto__:null,getAddress:xi,getContractAddress:Bi,getCreate2Address:Di,getIcapAddress:Mi,isAddress:Pi});let Li=class extends fi{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=xi(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return xi(Zn(e.readValue().toHexString(),20))}},Ui=class extends fi{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 qi=new Pn(qr);function ji(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||qi.throwError("cannot encode object for signature with missing names",Pn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&qi.throwError("cannot encode object for signature with duplicate names",Pn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]}))}else qi.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&qi.throwArgumentError("types/value length mismatch","tuple",n);let i=new pi(e.wordSize),a=new pi(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 Gi(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===Pn.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===Pn.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 Hi=class extends fi{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)),qi.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 ji(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&qi.throwError("insufficient data length",Pn.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new Ui(this.coder));return e.coerce(this.name,Gi(e,n))}},zi=class extends fi{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())}},Wi=class extends fi{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=jn(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}},Vi=class extends Wi{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Kn(super.decode(e)))}},Ki=class extends fi{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=jn(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,Kn(e.readBytes(this.size)))}},Xi=class extends fi{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 Ji="0x0000000000000000000000000000000000000000",Yi=cr.from(-1),Qi=cr.from(0),$i=cr.from(1),Zi=cr.from(2),ea=cr.from("1000000000000000000"),ta=cr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),na=cr.from("-0x8000000000000000000000000000000000000000000000000000000000000000"),ra=cr.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ia="0x0000000000000000000000000000000000000000000000000000000000000000";var aa=Object.freeze({__proto__:null,AddressZero:Ji,EtherSymbol:"Ξ",HashZero:ia,MaxInt256:ra,MaxUint256:ta,MinInt256:na,NegativeOne:Yi,One:$i,Two:Zi,WeiPerEther:ea,Zero:Qi});let oa=class extends fi{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=cr.from(t),r=ta.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add($i).mul(Yi)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Qi)||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 sa=new Pn("strings/5.7.0");var ua,ca;function la(e,t,n,r,i){if(e===ca.BAD_PREFIX||e===ca.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===ca.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(ua||(ua={})),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"}(ca||(ca={}));const da=Object.freeze({error:function(e,t,n,r,i){return sa.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:la,replace:function(e,t,n,r,i){return e===ca.OVERLONG?(r.push(i),0):(r.push(65533),la(e,t,n))}});function fa(e,t){null==t&&(t=da.error),e=jn(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)?ca.UNEXPECTED_CONTINUE:ca.BAD_PREFIX,r-1,e,n);continue}a=3,o=65535}if(r-1+a>=e.length){r+=t(ca.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(ca.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|63&i,r++}null!==s&&(s>1114111?r+=t(ca.OUT_OF_RANGE,r-1-a,e,n,s):s>=55296&&s<=57343?r+=t(ca.UTF16_SURROGATE,r-1-a,e,n,s):s<=o?r+=t(ca.OVERLONG,r-1-a,e,n,s):n.push(s))}return n}function pa(e,t=ua.current){t!=ua.current&&(sa.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 jn(n)}function ha(e){const t="0000"+e.toString(16);return"\\u"+t.substring(t.length-4)}function ma(e,t){return'"'+fa(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?ha(e):ha(55296+((e-=65536)>>10&1023))+ha(56320+(1023&e))})).join("")+'"'}function ya(e){return e.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("")}function ga(e,t){return ya(fa(e,t))}function ba(e,t=ua.current){return fa(pa(e,t))}function va(e){const t=pa(e);if(t.length>31)throw new Error("bytes32 string must be less than 32 bytes");return Kn(Gn([t,ia]).slice(0,32))}function Ta(e){const t=jn(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 ga(t.slice(0,n))}function wa(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 Aa(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 Ea(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 _a=Aa("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"),Ia="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((e=>parseInt(e,16))),Ra=[{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}],Ca=wa("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"),Oa=wa("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"),ka=wa("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})),Sa=Aa("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 Na(e){if(e.match(/^[a-z0-9-]*$/i)&&e.length<=59)return e.toLowerCase();let t=ba(e);var n;n=t.map((e=>{if(Ia.indexOf(e)>=0)return[];if(e>=65024&&e<=65039)return[];let t=function(e){let t=Ea(e,Ra);if(t)return[e+t.s];let n=Ca[e];if(n)return n;let r=Oa[e];return r?[e+r[0]]:ka[e]||null}(e);return t||[e]})),t=n.reduce(((e,t)=>(t.forEach((t=>{e.push(t)})),e)),[]),t=ba(ya(t),ua.NFKC),t.forEach((e=>{if(Ea(e,Sa))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")})),t.forEach((e=>{if(Ea(e,_a))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")}));let r=ya(t);if("-"===r.substring(0,1)||"--"===r.substring(2,4)||"-"===r.substring(r.length-1))throw new Error("invalid hyphen");return r}var xa=Object.freeze({__proto__:null,get UnicodeNormalizationForm(){return ua},Utf8ErrorFuncs:da,get Utf8ErrorReason(){return ca},_toEscapedUtf8String:ma,formatBytes32String:va,nameprep:Na,parseBytes32String:Ta,toUtf8Bytes:pa,toUtf8CodePoints:ba,toUtf8String:ga});let Pa=class extends Wi{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,pa(t))}decode(e){return ga(super.decode(e))}},Ma=class extends fi{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 ji(e,this.coders,t)}decode(e){return e.coerce(this.name,Gi(e,this.coders))}};const Ba=new Pn(qr),Da=new RegExp(/^bytes([0-9]*)$/),Fa=new RegExp(/^(u?int)([0-9]*)$/);let La=class{constructor(e){kr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new Li(e.name);case"bool":return new zi(e.name);case"string":return new Pa(e.name);case"bytes":return new Vi(e.name);case"array":return new Hi(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Ma((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new Xi(e.name)}let t=e.type.match(Fa);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Ba.throwArgumentError("invalid "+t[1]+" bit length","param",e),new oa(n/8,"int"===t[1],e.name)}if(t=e.type.match(Da),t){let n=parseInt(t[1]);return(0===n||n>32)&&Ba.throwArgumentError("invalid bytes length","param",e),new Ki(n,e.name)}return Ba.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new class e{constructor(e,t,n,r){kr(this,"_data",jn(e)),kr(this,"wordSize",t||32),kr(this,"_coerceFunc",n),kr(this,"allowLoose",r),this._offset=0}get data(){return Kn(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:li.throwError("data out-of-bounds",Pn.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 cr.from(this.readBytes(this.wordSize))}}(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new pi(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(Jr.from(e))));return new Ma(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Ba.throwError("types/values length mismatch",Pn.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map((e=>this._getCoder(Jr.from(e)))),r=new Ma(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map((e=>this._getCoder(Jr.from(e))));return new Ma(r,"_").decode(this._getReader(jn(t),n))}};const Ua=new La;function qa(e){return yi(pa(e))}const ja="hash/5.7.0";function Ga(e){e=atob(e);const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return jn(t)}function Ha(e){e=jn(e);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}var za=Object.freeze({__proto__:null,decode:Ga,encode:Ha});function Wa(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 Va(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 Ka(e){return 1&e?~e>>1:e>>1}function Xa(e,t){let n=Array(e);for(let r=0,i=-1;r<e;r++)n[r]=i+=1+t();return n}function Ja(e,t){let n=Array(e);for(let r=0,i=0;r<e;r++)n[r]=i+=Ka(t());return n}function Ya(e,t){let n=Xa(e(),e),r=e(),i=Xa(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 Qa(e,t,n){let r=Array(e).fill(void 0).map((()=>[]));for(let i=0;i<t;i++)Ja(e,n).forEach(((e,t)=>r[t].push(e)));return r}function $a(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 Wa(Qa(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 Za(e,t){return Qa(1+t(),1+e,t).map((e=>[e[0],e.slice(1)]))}const eo=Va(Ga("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==")),to=new Set(Ya(eo)),no=new Set(Ya(eo)),ro=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push($a(n,e))}for(;;){let n=e()-1;if(n<0)break;t.push(Za(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}(Wa(t))}(eo),io=function(e){let t=Ya(e).sort(((e,t)=>e-t));return function n(){let r=[];for(;;){let i=Ya(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}}()}(eo),ao=45,oo=95;function so(e){return ba(e)}function uo(e){return e.filter((e=>65039!=e))}function co(e){for(let t of e.split(".")){let e=so(t);try{for(let t=e.lastIndexOf(oo)-1;t>=0;t--)if(e[t]!==oo)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every((e=>e<128))&&e[2]===ao&&e[3]===ao)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function lo(e){return co(function(e,t){let n=so(e).reverse(),r=[];for(;n.length;){let e=fo(n);if(e){r.push(...t(e));continue}let i=n.pop();if(to.has(i)){r.push(i);continue}if(no.has(i))continue;let a=ro[i];if(!a)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);r.push(...a)}return co(function(e){return e.normalize("NFC")}(String.fromCodePoint(...r)))}(e,uo))}function fo(e,t){var n;let r,i,a=io,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 po=new Pn(ja),ho=new Uint8Array(32);function mo(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function yo(e){const t=pa(lo(e)),n=[];if(0===e.length)return n;let r=0;for(let e=0;e<t.length;e++){46===t[e]&&(n.push(mo(t.slice(r,e))),r=e+1)}if(r>=t.length)throw new Error("invalid ENS name; empty component");return n.push(mo(t.slice(r))),n}function go(e){try{return 0!==yo(e).length}catch(e){}return!1}function bo(e){"string"!=typeof e&&po.throwArgumentError("invalid ENS name; not a string","name",e);let t=ho;const n=yo(e);for(;n.length;)t=yi(Gn([t,yi(n.pop())]));return Kn(t)}function vo(e){return Kn(Gn(yo(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"}ho.fill(0);const To="Ethereum Signed Message:\n";function wo(e){return"string"==typeof e&&(e=pa(e)),yi(Gn([pa(To),pa(String(e.length)),e]))}var Ao=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 Eo=new Pn(ja),_o=new Uint8Array(32);_o.fill(0);const Io=cr.from(-1),Ro=cr.from(0),Co=cr.from(1),Oo=cr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const ko=Zn(Co.toHexString(),32),So=Zn(Ro.toHexString(),32),No={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},xo=["name","version","chainId","verifyingContract","salt"];function Po(e){return function(t){return"string"!=typeof t&&Eo.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const Mo={name:Po("name"),version:Po("version"),chainId:function(e){try{return cr.from(e).toString()}catch(e){}return Eo.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return xi(e).toLowerCase()}catch(e){}return Eo.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=jn(e);if(32!==t.length)throw new Error("bad length");return Kn(t)}catch(e){}return Eo.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function Bo(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))&&Eo.throwArgumentError("invalid numeric width","type",e);const i=Oo.mask(n?r-1:r),a=n?i.add(Co).mul(Io):Ro;return function(t){const n=cr.from(t);return(n.lt(a)||n.gt(i))&&Eo.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),Zn(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))&&Eo.throwArgumentError("invalid bytes width","type",e),function(t){return jn(t).length!==n&&Eo.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=jn(e),n=t.length%32;return n?Yn([t,_o.slice(n)]):Kn(t)}(t)}}}switch(e){case"address":return function(e){return Zn(xi(e),32)};case"bool":return function(e){return e?ko:So};case"bytes":return function(e){return yi(e)};case"string":return function(e){return qa(e)}}return null}function Do(e,t){return`${e}(${t.map((({name:e,type:t})=>t+" "+e)).join(",")})`}class Fo{constructor(e){kr(this,"types",Object.freeze(Fr(e))),kr(this,"_encoderCache",{}),kr(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]&&Eo.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&&Eo.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e);Bo(o)||(n[o]||Eo.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?Eo.throwArgumentError("missing primary type","types",e):i.length>1&&Eo.throwArgumentError(`ambiguous primary types or unused types: ${i.map((e=>JSON.stringify(e))).join(", ")}`,"types",e),kr(this,"primaryType",i[0]),function i(a,o){o[a]&&Eo.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]=Do(t,e[t])+n.map((t=>Do(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=Bo(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&&Eo.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(n);return this._types[e]&&(i=i.map(yi)),yi(Yn(i))}}const n=this.types[e];if(n){const t=qa(this._types[e]);return e=>{const r=n.map((({name:t,type:n})=>{const r=this.getEncoder(n)(e[t]);return this._types[n]?yi(r):r}));return r.unshift(t),Yn(r)}}return Eo.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Eo.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return yi(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(Bo(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&&Eo.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)),{}):Eo.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new Fo(e)}static getPrimaryType(e){return Fo.from(e).primaryType}static hashStruct(e,t,n){return Fo.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){const r=No[n];r||Eo.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort(((e,t)=>xo.indexOf(e.name)-xo.indexOf(t.name))),Fo.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return Yn(["0x1901",Fo.hashDomain(e),Fo.from(t).hash(n)])}static hash(e,t,n){return yi(Fo.encode(e,t,n))}static resolveNames(e,t,n,r){return Ao(this,void 0,void 0,(function*(){e=Pr(e);const i={};e.verifyingContract&&!Wn(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const a=Fo.from(t);a.visit(n,((e,t)=>("address"!==e||Wn(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){Fo.hashDomain(e);const r={},i=[];xo.forEach((t=>{const n=e[t];null!=n&&(r[t]=Mo[t](n),i.push({name:t,type:No[t]}))}));const a=Fo.from(t),o=Pr(t);return o.EIP712Domain?Eo.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 Kn(jn(t));if(e.match(/^u?int/))return cr.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&Eo.throwArgumentError("invalid string","value",t),t}return Eo.throwArgumentError("unsupported type","type",e)}))}}}var Lo=Object.freeze({__proto__:null,_TypedDataEncoder:Fo,dnsEncode:vo,ensNormalize:function(e){return yo(e).map((e=>ga(e))).join(".")},hashMessage:wo,id:qa,isValidName:go,messagePrefix:To,namehash:bo});const Uo=new Pn(qr);let qo=class extends Lr{},jo=class extends Lr{},Go=class extends Lr{},Ho=class extends Lr{static isIndexed(e){return!(!e||!e._isIndexed)}};const zo={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Wo(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}let Vo=class{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,kr(this,"fragments",t.map((e=>Qr.from(e))).filter((e=>null!=e))),kr(this,"_abiCoder",Sr(new.target,"getAbiCoder")()),kr(this,"functions",{}),kr(this,"errors",{}),kr(this,"events",{}),kr(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Uo.warn("duplicate definition - constructor"):void kr(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]?Uo.warn("duplicate definition - "+n):t[n]=e})),this.deploy||kr(this,"deploy",ni.from({payable:!1,type:"constructor"})),kr(this,"_isInterface",!0)}format(e){e||(e=Kr.full),e===Kr.sighash&&Uo.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===Kr.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return Ua}static getAddress(e){return xi(e)}static getSighash(e){return Jn(qa(e.format()),0,4)}static getEventTopic(e){return qa(e.format())}getFunction(e){if(Wn(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Uo.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?Uo.throwArgumentError("no matching function","name",t):n.length>1&&Uo.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[ri.fromString(e).format()];return t||Uo.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Wn(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Uo.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?Uo.throwArgumentError("no matching event","name",t):n.length>1&&Uo.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[$r.fromString(e).format()];return t||Uo.throwArgumentError("no matching event","signature",e),t}getError(e){if(Wn(e)){const t=Sr(this.constructor,"getSighash");for(const n in this.errors){if(e===t(this.errors[n]))return this.errors[n]}Uo.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?Uo.throwArgumentError("no matching error","name",t):n.length>1&&Uo.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[ri.fromString(e).format()];return t||Uo.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 Sr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),Sr(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=jn(t);return Kn(n.slice(0,4))!==this.getSighash(e)&&Uo.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Kn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Kn(Gn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=jn(t);return Kn(n.slice(0,4))!==this.getSighash(e)&&Uo.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Kn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Kn(Gn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=jn(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=Kn(n.slice(0,4)),t=zo[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 Uo.throwError("call revert exception"+i,Pn.errors.CALL_EXCEPTION,{method:e.format(),data:Kn(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Kn(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Uo.throwError("too many arguments for "+e.format(),Pn.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?qa(t):"bytes"===e.type?yi(Kn(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=cr.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),Zn(Kn(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?Uo.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&&Uo.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&&Uo.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(qa(o));else if("bytes"===e.type)n.push(yi(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);Wn(n[0],32)&&n[0].toLowerCase()===t||Uo.throwError("fragment/topic mismatch",Pn.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(Jr.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,Gn(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 Ho({_isIndexed:!0,hash:null});else if(a[t])u[t]=new Ho({_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 Wo(`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 Wo(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new jo({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:cr.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new qo({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Kn(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new Go({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 Ko=Object.freeze({__proto__:null,AbiCoder:La,ConstructorFragment:ni,ErrorFragment:ai,EventFragment:$r,FormatTypes:Kr,Fragment:Qr,FunctionFragment:ri,Indexed:Ho,Interface:Vo,LogDescription:qo,ParamType:Jr,TransactionDescription:jo,checkResultErrors:di,defaultAbiCoder:Ua});var Xo=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 Jo=new Pn("abstract-provider/5.7.0");class Yo extends Lr{static isForkEvent(e){return!(!e||!e._isForkEvent)}}let Qo=class e{constructor(){Jo.checkAbstract(new.target,e),kr(this,"_isProvider",!0)}getFeeData(){return Xo(this,void 0,void 0,(function*(){const{block:e,gasPrice:t}=yield Nr({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=cr.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 $o=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 Zo=new Pn("abstract-signer/5.7.0"),es=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],ts=[Pn.errors.INSUFFICIENT_FUNDS,Pn.errors.NONCE_EXPIRED,Pn.errors.REPLACEMENT_UNDERPRICED];let ns=class e{constructor(){Zo.checkAbstract(new.target,e),kr(this,"_isSigner",!0)}getBalance(e){return $o(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return $o(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return $o(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield Nr(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return $o(this,void 0,void 0,(function*(){this._checkProvider("call");const n=yield Nr(this.checkTransaction(e));return yield this.provider.call(n,t)}))}sendTransaction(e){return $o(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 $o(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return $o(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return $o(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return $o(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===es.indexOf(t)&&Zo.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=Pr(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()&&Zo.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return $o(this,void 0,void 0,(function*(){const t=yield Nr(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>$o(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&Zo.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||Zo.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):Zo.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&&Zo.throwError("network does not support EIP-1559",Pn.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):Zo.throwError("failed to get consistent fee data",Pn.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(ts.indexOf(e.code)>=0)throw e;return Zo.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pn.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]&&Zo.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield Nr(t)}))}_checkProvider(e){this.provider||Zo.throwError("missing provider",Pn.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}},rs=class e extends ns{constructor(e,t){super(),kr(this,"address",e),kr(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{Zo.throwError(e,Pn.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 is={},as={},os=ss;function ss(e,t){if(!e)throw new Error(t||"Assertion failed")}ss.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var us="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},cs=os,ls=vt(Object.freeze({__proto__:null,default:us}));function ds(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function fs(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function ps(e){return 1===e.length?"0"+e:e}function hs(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}as.inherits=ls,as.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):ds(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},as.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=ps(e[n].toString(16));return t},as.htonl=fs,as.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=fs(i)),n+=hs(i.toString(16))}return n},as.zero2=ps,as.zero8=hs,as.join32=function(e,t,n,r){var i=n-t;cs(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},as.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},as.rotr32=function(e,t){return e>>>t|e<<32-t},as.rotl32=function(e,t){return e<<t|e>>>32-t},as.sum32=function(e,t){return e+t>>>0},as.sum32_3=function(e,t,n){return e+t+n>>>0},as.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},as.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},as.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},as.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},as.sum64_lo=function(e,t,n,r){return t+r>>>0},as.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},as.sum64_4_lo=function(e,t,n,r,i,a,o,s){return t+r+a+s>>>0},as.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},as.sum64_5_lo=function(e,t,n,r,i,a,o,s,u,c){return t+r+a+s+c>>>0},as.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},as.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},as.shr64_hi=function(e,t,n){return e>>>n},as.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0};var ms={},ys=as,gs=os;function bs(){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}ms.BlockHash=bs,bs.prototype.update=function(e,t){if(e=ys.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=ys.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},bs.prototype.digest=function(e){return this.update(this._pad()),gs(null===this.pending),this._digest(e)},bs.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 vs={},Ts={},ws=as.rotr32;function As(e,t,n){return e&t^~e&n}function Es(e,t,n){return e&t^e&n^t&n}function _s(e,t,n){return e^t^n}Ts.ft_1=function(e,t,n,r){return 0===e?As(t,n,r):1===e||3===e?_s(t,n,r):2===e?Es(t,n,r):void 0},Ts.ch32=As,Ts.maj32=Es,Ts.p32=_s,Ts.s0_256=function(e){return ws(e,2)^ws(e,13)^ws(e,22)},Ts.s1_256=function(e){return ws(e,6)^ws(e,11)^ws(e,25)},Ts.g0_256=function(e){return ws(e,7)^ws(e,18)^e>>>3},Ts.g1_256=function(e){return ws(e,17)^ws(e,19)^e>>>10};var Is=as,Rs=ms,Cs=Ts,Os=Is.rotl32,ks=Is.sum32,Ss=Is.sum32_5,Ns=Cs.ft_1,xs=Rs.BlockHash,Ps=[1518500249,1859775393,2400959708,3395469782];function Ms(){if(!(this instanceof Ms))return new Ms;xs.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Is.inherits(Ms,xs);var Bs=Ms;Ms.blockSize=512,Ms.outSize=160,Ms.hmacStrength=80,Ms.padLength=64,Ms.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]=Os(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=Ss(Os(i,5),Ns(c,a,o,s),u,n[r],Ps[c]);u=s,s=o,o=Os(a,30),a=i,i=l}this.h[0]=ks(this.h[0],i),this.h[1]=ks(this.h[1],a),this.h[2]=ks(this.h[2],o),this.h[3]=ks(this.h[3],s),this.h[4]=ks(this.h[4],u)},Ms.prototype._digest=function(e){return"hex"===e?Is.toHex32(this.h,"big"):Is.split32(this.h,"big")};var Ds=as,Fs=ms,Ls=Ts,Us=os,qs=Ds.sum32,js=Ds.sum32_4,Gs=Ds.sum32_5,Hs=Ls.ch32,zs=Ls.maj32,Ws=Ls.s0_256,Vs=Ls.s1_256,Ks=Ls.g0_256,Xs=Ls.g1_256,Js=Fs.BlockHash,Ys=[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 Qs(){if(!(this instanceof Qs))return new Qs;Js.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Ys,this.W=new Array(64)}Ds.inherits(Qs,Js);var $s=Qs;Qs.blockSize=512,Qs.outSize=256,Qs.hmacStrength=192,Qs.padLength=64,Qs.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]=js(Xs(n[r-2]),n[r-7],Ks(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(Us(this.k.length===n.length),r=0;r<n.length;r++){var f=Gs(d,Vs(u),Hs(u,c,l),this.k[r],n[r]),p=qs(Ws(i),zs(i,a,o));d=l,l=c,c=u,u=qs(s,f),s=o,o=a,a=i,i=qs(f,p)}this.h[0]=qs(this.h[0],i),this.h[1]=qs(this.h[1],a),this.h[2]=qs(this.h[2],o),this.h[3]=qs(this.h[3],s),this.h[4]=qs(this.h[4],u),this.h[5]=qs(this.h[5],c),this.h[6]=qs(this.h[6],l),this.h[7]=qs(this.h[7],d)},Qs.prototype._digest=function(e){return"hex"===e?Ds.toHex32(this.h,"big"):Ds.split32(this.h,"big")};var Zs=as,eu=$s;function tu(){if(!(this instanceof tu))return new tu;eu.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Zs.inherits(tu,eu);var nu=tu;tu.blockSize=512,tu.outSize=224,tu.hmacStrength=192,tu.padLength=64,tu.prototype._digest=function(e){return"hex"===e?Zs.toHex32(this.h.slice(0,7),"big"):Zs.split32(this.h.slice(0,7),"big")};var ru=as,iu=ms,au=os,ou=ru.rotr64_hi,su=ru.rotr64_lo,uu=ru.shr64_hi,cu=ru.shr64_lo,lu=ru.sum64,du=ru.sum64_hi,fu=ru.sum64_lo,pu=ru.sum64_4_hi,hu=ru.sum64_4_lo,mu=ru.sum64_5_hi,yu=ru.sum64_5_lo,gu=iu.BlockHash,bu=[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 vu(){if(!(this instanceof vu))return new vu;gu.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=bu,this.W=new Array(160)}ru.inherits(vu,gu);var Tu=vu;function wu(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function Au(e,t,n,r,i,a){var o=t&r^~t&a;return o<0&&(o+=4294967296),o}function Eu(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function _u(e,t,n,r,i,a){var o=t&r^t&a^r&a;return o<0&&(o+=4294967296),o}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=su(e,t,28)^su(t,e,2)^su(t,e,7);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=su(e,t,14)^su(e,t,18)^su(t,e,9);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=su(e,t,1)^su(e,t,8)^cu(e,t,7);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}function xu(e,t){var n=su(e,t,19)^su(t,e,29)^cu(e,t,6);return n<0&&(n+=4294967296),n}vu.blockSize=1024,vu.outSize=512,vu.hmacStrength=192,vu.padLength=128,vu.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=Nu(n[r-4],n[r-3]),a=xu(n[r-4],n[r-3]),o=n[r-14],s=n[r-13],u=ku(n[r-30],n[r-29]),c=Su(n[r-30],n[r-29]),l=n[r-32],d=n[r-31];n[r]=pu(i,a,o,s,u,c,l,d),n[r+1]=hu(i,a,o,s,u,c,l,d)}},vu.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];au(this.k.length===n.length);for(var v=0;v<n.length;v+=2){var T=g,w=b,A=Cu(d,f),E=Ou(d,f),_=wu(d,f,p,h,m),I=Au(d,f,p,h,m,y),R=this.k[v],C=this.k[v+1],O=n[v],k=n[v+1],S=mu(T,w,A,E,_,I,R,C,O,k),N=yu(T,w,A,E,_,I,R,C,O,k);T=Iu(r,i),w=Ru(r,i),A=Eu(r,i,a,o,s),E=_u(r,i,a,o,s,u);var x=du(T,w,A,E),P=fu(T,w,A,E);g=m,b=y,m=p,y=h,p=d,h=f,d=du(c,l,S,N),f=fu(l,l,S,N),c=s,l=u,s=a,u=o,a=r,o=i,r=du(S,N,x,P),i=fu(S,N,x,P)}lu(this.h,0,r,i),lu(this.h,2,a,o),lu(this.h,4,s,u),lu(this.h,6,c,l),lu(this.h,8,d,f),lu(this.h,10,p,h),lu(this.h,12,m,y),lu(this.h,14,g,b)},vu.prototype._digest=function(e){return"hex"===e?ru.toHex32(this.h,"big"):ru.split32(this.h,"big")};var Pu=as,Mu=Tu;function Bu(){if(!(this instanceof Bu))return new Bu;Mu.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Pu.inherits(Bu,Mu);var Du=Bu;Bu.blockSize=1024,Bu.outSize=384,Bu.hmacStrength=192,Bu.padLength=128,Bu.prototype._digest=function(e){return"hex"===e?Pu.toHex32(this.h.slice(0,12),"big"):Pu.split32(this.h.slice(0,12),"big")},vs.sha1=Bs,vs.sha224=nu,vs.sha256=$s,vs.sha384=Du,vs.sha512=Tu;var Fu={},Lu=as,Uu=ms,qu=Lu.rotl32,ju=Lu.sum32,Gu=Lu.sum32_3,Hu=Lu.sum32_4,zu=Uu.BlockHash;function Wu(){if(!(this instanceof Wu))return new Wu;zu.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function Vu(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 Ku(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function Xu(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}Lu.inherits(Wu,zu),Fu.ripemd160=Wu,Wu.blockSize=512,Wu.outSize=160,Wu.hmacStrength=192,Wu.padLength=64,Wu.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=ju(qu(Hu(n,Vu(f,r,i,a),e[Ju[f]+t],Ku(f)),Qu[f]),o);n=o,o=a,a=qu(i,10),i=r,r=p,p=ju(qu(Hu(s,Vu(79-f,u,c,l),e[Yu[f]+t],Xu(f)),$u[f]),d),s=d,d=l,l=qu(c,10),c=u,u=p}p=Gu(this.h[1],i,l),this.h[1]=Gu(this.h[2],a,d),this.h[2]=Gu(this.h[3],o,s),this.h[3]=Gu(this.h[4],n,u),this.h[4]=Gu(this.h[0],r,c),this.h[0]=p},Wu.prototype._digest=function(e){return"hex"===e?Lu.toHex32(this.h,"little"):Lu.split32(this.h,"little")};var Ju=[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],Yu=[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],Qu=[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],$u=[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],Zu=as,ec=os;function tc(e,t,n){if(!(this instanceof tc))return new tc(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(Zu.toArray(t,n))}var nc=tc;tc.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),ec(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)},tc.prototype.update=function(e,t){return this.inner.update(e,t),this},tc.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)},function(e){var t=e;t.utils=as,t.common=ms,t.sha=vs,t.ripemd=Fu,t.hmac=nc,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}(is);var rc=bt(is);function ic(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 ac=oc;function oc(e,t){if(!e)throw new Error(t||"Assertion failed")}oc.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var sc=ic((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}})),uc=ic((function(e,t){var n=t;n.assert=ac,n.toArray=sc.toArray,n.zero2=sc.zero2,n.toHex=sc.toHex,n.encode=sc.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 En(e,"hex","le")}})),cc=uc.getNAF,lc=uc.getJSF,dc=uc.assert;function fc(e,t){this.type=e,this.p=new En(t.p,16),this.red=t.prime?En.red(t.prime):En.mont(this.p),this.zero=new En(0).toRed(this.red),this.one=new En(1).toRed(this.red),this.two=new En(2).toRed(this.red),this.n=t.n&&new En(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 pc=fc;function hc(e,t){this.curve=e,this.type=t,this.precomputed=null}fc.prototype.point=function(){throw new Error("Not implemented")},fc.prototype.validate=function(){throw new Error("Not implemented")},fc.prototype._fixedNafMul=function(e,t){dc(e.precomputed);var n=e._getDoubles(),r=cc(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()},fc.prototype._wnafMul=function(e,t){var n=4,r=e._getNAFPoints(n);n=r.wnd;for(var i=r.points,a=cc(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];dc(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},fc.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=lc(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]=cc(n[p],u[p],this._bitLength),l[h]=cc(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()},fc.BasePoint=hc,hc.prototype.eq=function(){throw new Error("Not implemented")},hc.prototype.validate=function(){return this.curve.validate(this)},fc.prototype.decodePoint=function(e,t){e=uc.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]?dc(e[e.length-1]%2==0):7===e[0]&&dc(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")},hc.prototype.encodeCompressed=function(e){return this.encode(e,!0)},hc.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))},hc.prototype.encode=function(e,t){return uc.encode(this._encode(t),e)},hc.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},hc.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)},hc.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}},hc.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}},hc.prototype._getBeta=function(){return null},hc.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t};var mc=ic((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}}})),yc=uc.assert;function gc(e){pc.call(this,"short",e),this.a=new En(e.a,16).toRed(this.red),this.b=new En(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)}mc(gc,pc);var bc=gc;function vc(e,t,n,r){pc.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new En(t,16),this.y=new En(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 Tc(e,t,n,r){pc.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new En(0)):(this.x=new En(t,16),this.y=new En(n,16),this.z=new En(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}gc.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new En(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 En(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],yc(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 En(e.a,16),b:new En(e.b,16)}})):this._getEndoBasis(n)}}},gc.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:En.mont(e),n=new En(2).toRed(t).redInvm(),r=n.redNeg(),i=new En(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},gc.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 En(1),h=new En(0),m=new En(0),y=new En(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}]},gc.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()}},gc.prototype.pointFromX=function(e,t){(e=new En(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)},gc.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)},gc.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},mc(vc,pc.BasePoint),gc.prototype.point=function(e,t,n){return new vc(this,e,t,n)},gc.prototype.pointFromJSON=function(e,t){return vc.fromJSON(this,e,t)},vc.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}},vc.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]},vc.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},vc.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)+">"},vc.prototype.isInfinity=function(){return this.inf},vc.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)},vc.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)},vc.prototype.getX=function(){return this.x.fromRed()},vc.prototype.getY=function(){return this.y.fromRed()},vc.prototype.mul=function(e){return e=new En(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)},vc.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)},vc.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)},vc.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))},vc.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},vc.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},mc(Tc,pc.BasePoint),gc.prototype.jpoint=function(e,t,n){return new Tc(this,e,t,n)},Tc.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)},Tc.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},Tc.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)},Tc.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)},Tc.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)},Tc.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},Tc.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)},Tc.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)},Tc.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)},Tc.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)},Tc.prototype.mul=function(e,t){return e=new En(e,t),this.curve._wnafMul(this,e)},Tc.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)},Tc.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}},Tc.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)+">"},Tc.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var wc=ic((function(e,t){var n=t;n.base=pc,n.short=bc,n.mont=null,n.edwards=null})),Ac=ic((function(e,t){var n,r=t,i=uc.assert;function a(e){"short"===e.type?this.curve=new wc.short(e):"edwards"===e.type?this.curve=new wc.edwards(e):this.curve=new wc.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:rc.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:rc.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:rc.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:rc.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:rc.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:rc.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:rc.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:rc.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})}));function Ec(e){if(!(this instanceof Ec))return new Ec(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=sc.toArray(e.entropy,e.entropyEnc||"hex"),n=sc.toArray(e.nonce,e.nonceEnc||"hex"),r=sc.toArray(e.pers,e.persEnc||"hex");ac(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}var _c=Ec;Ec.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},Ec.prototype._hmac=function(){return new rc.hmac(this.hash,this.K)},Ec.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())},Ec.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=sc.toArray(e,t),n=sc.toArray(n,r),ac(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},Ec.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=sc.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++,sc.encode(a,t)};var Ic=uc.assert;function Rc(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 Cc=Rc;Rc.fromPublic=function(e,t,n){return t instanceof Rc?t:new Rc(e,{pub:t,pubEnc:n})},Rc.fromPrivate=function(e,t,n){return t instanceof Rc?t:new Rc(e,{priv:t,privEnc:n})},Rc.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"}},Rc.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},Rc.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},Rc.prototype._importPrivate=function(e,t){this.priv=new En(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},Rc.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?Ic(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||Ic(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)},Rc.prototype.derive=function(e){return e.validate()||Ic(e.validate(),"public point not validated"),e.mul(this.priv).getX()},Rc.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},Rc.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},Rc.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Oc=uc.assert;function kc(e,t){if(e instanceof kc)return e;this._importDER(e,t)||(Oc(e.r&&e.s,"Signature without r or s"),this.r=new En(e.r,16),this.s=new En(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var Sc=kc;function Nc(){this.place=0}function xc(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 Pc(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 Mc(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)}}kc.prototype._importDER=function(e,t){e=uc.toArray(e,t);var n=new Nc;if(48!==e[n.place++])return!1;var r=xc(e,n);if(!1===r)return!1;if(r+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var i=xc(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=xc(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 En(a),this.s=new En(s),this.recoveryParam=null,!0},kc.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=Pc(t),n=Pc(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];Mc(r,t.length),(r=r.concat(t)).push(2),Mc(r,n.length);var i=r.concat(n),a=[48];return Mc(a,i.length),a=a.concat(i),uc.encode(a,e)};var Bc=function(){throw new Error("unsupported")},Dc=uc.assert;function Fc(e){if(!(this instanceof Fc))return new Fc(e);"string"==typeof e&&(Dc(Object.prototype.hasOwnProperty.call(Ac,e),"Unknown curve "+e),e=Ac[e]),e instanceof Ac.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 Lc=Fc;Fc.prototype.keyPair=function(e){return new Cc(this,e)},Fc.prototype.keyFromPrivate=function(e,t){return Cc.fromPrivate(this,e,t)},Fc.prototype.keyFromPublic=function(e,t){return Cc.fromPublic(this,e,t)},Fc.prototype.genKeyPair=function(e){e||(e={});for(var t=new _c({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Bc(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new En(2));;){var i=new En(t.generate(n));if(!(i.cmp(r)>0))return i.iaddn(1),this.keyFromPrivate(i)}},Fc.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},Fc.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 En(e,16));for(var i=this.n.byteLength(),a=t.getPrivate().toArray("be",i),o=e.toArray("be",i),s=new _c({hash:this.hash,entropy:a,nonce:o,pers:r.pers,persEnc:r.persEnc||"utf8"}),u=this.n.sub(new En(1)),c=0;;c++){var l=r.k?r.k(c):new En(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 Sc({r:p,s:h,recoveryParam:m})}}}}}},Fc.prototype.verify=function(e,t,n,r){e=this._truncateToN(new En(e,16)),n=this.keyFromPublic(n,r);var i=(t=new Sc(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)},Fc.prototype.recoverPubKey=function(e,t,n,r){Dc((3&n)===n,"The recovery param is more than two bits"),t=new Sc(t,r);var i=this.n,a=new En(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)},Fc.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new Sc(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 Uc=ic((function(e,t){var n=t;n.version="6.5.4",n.utils=uc,n.rand=function(){throw new Error("unsupported")},n.curve=wc,n.curves=Ac,n.ec=Lc,n.eddsa=null})),qc=Uc.ec;const jc=new Pn("signing-key/5.7.0");let Gc=null;function Hc(){return Gc||(Gc=new qc("secp256k1")),Gc}class zc{constructor(e){kr(this,"curve","secp256k1"),kr(this,"privateKey",Kn(e)),32!==Xn(this.privateKey)&&jc.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Hc().keyFromPrivate(jn(this.privateKey));kr(this,"publicKey","0x"+t.getPublic(!1,"hex")),kr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),kr(this,"_isSigningKey",!0)}_addPoint(e){const t=Hc().keyFromPublic(jn(this.publicKey)),n=Hc().keyFromPublic(jn(e));return"0x"+t.pub.add(n.pub).encodeCompressed("hex")}signDigest(e){const t=Hc().keyFromPrivate(jn(this.privateKey)),n=jn(e);32!==n.length&&jc.throwArgumentError("bad digest length","digest",e);const r=t.sign(n,{canonical:!0});return er({recoveryParam:r.recoveryParam,r:Zn("0x"+r.r.toString(16),32),s:Zn("0x"+r.s.toString(16),32)})}computeSharedSecret(e){const t=Hc().keyFromPrivate(jn(this.privateKey)),n=Hc().keyFromPublic(jn(Vc(e)));return Zn("0x"+t.derive(n.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Wc(e,t){const n=er(t),r={r:jn(n.r),s:jn(n.s)};return"0x"+Hc().recoverPubKey(jn(e),r,n.recoveryParam).encode("hex",!1)}function Vc(e,t){const n=jn(e);if(32===n.length){const e=new zc(n);return t?"0x"+Hc().keyFromPrivate(n).getPublic(!0,"hex"):e.publicKey}return 33===n.length?t?Kn(n):"0x"+Hc().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?t?"0x"+Hc().keyFromPublic(n).getPublic(!0,"hex"):Kn(n):jc.throwArgumentError("invalid public or private key","key","[REDACTED]")}var Kc=Object.freeze({__proto__:null,SigningKey:zc,computePublicKey:Vc,recoverPublicKey:Wc});const Xc=new Pn("transactions/5.7.0");var Jc;function Yc(e){return"0x"===e?null:xi(e)}function Qc(e){return"0x"===e?Qi:cr.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Jc||(Jc={}));const $c=[{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"}],Zc={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function el(e){return xi(Jn(yi(Jn(Vc(e),1)),12))}function tl(e,t){return el(Wc(jn(e),t))}function nl(e,t){const n=Hn(cr.from(e).toHexString());return n.length>32&&Xc.throwArgumentError("invalid length for "+t,"transaction:"+t,e),n}function rl(e,t){return{address:xi(e),storageKeys:(t||[]).map(((t,n)=>(32!==Xn(t)&&Xc.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase())))}}function il(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&Xc.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),rl(e[0],e[1])):rl(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const n=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return rl(t,Object.keys(n).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}function al(e){return il(e).map((e=>[e.address,e.storageKeys]))}function ol(e,t){if(null!=e.gasPrice){const t=cr.from(e.gasPrice),n=cr.from(e.maxFeePerGas||0);t.eq(n)||Xc.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:n})}const n=[nl(e.chainId||0,"chainId"),nl(e.nonce||0,"nonce"),nl(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),nl(e.maxFeePerGas||0,"maxFeePerGas"),nl(e.gasLimit||0,"gasLimit"),null!=e.to?xi(e.to):"0x",nl(e.value||0,"value"),e.data||"0x",al(e.accessList||[])];if(t){const e=er(t);n.push(nl(e.recoveryParam,"recoveryParam")),n.push(Hn(e.r)),n.push(Hn(e.s))}return Yn(["0x02",Ai(n)])}function sl(e,t){const n=[nl(e.chainId||0,"chainId"),nl(e.nonce||0,"nonce"),nl(e.gasPrice||0,"gasPrice"),nl(e.gasLimit||0,"gasLimit"),null!=e.to?xi(e.to):"0x",nl(e.value||0,"value"),e.data||"0x",al(e.accessList||[])];if(t){const e=er(t);n.push(nl(e.recoveryParam,"recoveryParam")),n.push(Hn(e.r)),n.push(Hn(e.s))}return Yn(["0x01",Ai(n)])}function ul(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&Xc.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){xr(e,Zc);const n=[];$c.forEach((function(t){let r=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),r=jn(Kn(r,i)),t.length&&r.length!==t.length&&r.length>0&&Xc.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r),t.maxLength&&(r=Hn(r),r.length>t.maxLength&&Xc.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r)),n.push(Kn(r))}));let r=0;if(null!=e.chainId?(r=e.chainId,"number"!=typeof r&&Xc.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Ln(t)&&t.v>28&&(r=Math.floor((t.v-35)/2)),0!==r&&(n.push(Kn(r)),n.push("0x"),n.push("0x")),!t)return Ai(n);const i=er(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&&Xc.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==a&&Xc.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),n.push(Kn(a)),n.push(Hn(jn(i.r))),n.push(Hn(jn(i.s))),Ai(n)}(e,t);switch(e.type){case 1:return sl(e,t);case 2:return ol(e,t)}return Xc.throwError(`unsupported transaction type: ${e.type}`,Pn.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function cl(e,t,n){try{const n=Qc(t[0]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");e.v=n}catch(e){Xc.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=Zn(t[1],32),e.s=Zn(t[2],32);try{const t=yi(n(e));e.from=tl(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}function ll(e){const t=jn(e);if(t[0]>127)return function(e){const t=Ii(e);9!==t.length&&6!==t.length&&Xc.throwArgumentError("invalid raw transaction","rawTransaction",e);const n={nonce:Qc(t[0]).toNumber(),gasPrice:Qc(t[1]),gasLimit:Qc(t[2]),to:Yc(t[3]),value:Qc(t[4]),data:t[5],chainId:0};if(6===t.length)return n;try{n.v=cr.from(t[6]).toNumber()}catch(e){return n}if(n.r=Zn(t[7],32),n.s=Zn(t[8],32),cr.from(n.r).isZero()&&cr.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(Kn(n.chainId)),i.push("0x"),i.push("0x"),r-=2*n.chainId+8);const a=yi(Ai(i));try{n.from=tl(a,{r:Kn(n.r),s:Kn(n.s),recoveryParam:r})}catch(e){}n.hash=yi(e)}return n.type=null,n}(t);switch(t[0]){case 1:return function(e){const t=Ii(e.slice(1));8!==t.length&&11!==t.length&&Xc.throwArgumentError("invalid component count for transaction type: 1","payload",Kn(e));const n={type:1,chainId:Qc(t[0]).toNumber(),nonce:Qc(t[1]).toNumber(),gasPrice:Qc(t[2]),gasLimit:Qc(t[3]),to:Yc(t[4]),value:Qc(t[5]),data:t[6],accessList:il(t[7])};return 8===t.length||(n.hash=yi(e),cl(n,t.slice(8),sl)),n}(t);case 2:return function(e){const t=Ii(e.slice(1));9!==t.length&&12!==t.length&&Xc.throwArgumentError("invalid component count for transaction type: 2","payload",Kn(e));const n=Qc(t[2]),r=Qc(t[3]),i={type:2,chainId:Qc(t[0]).toNumber(),nonce:Qc(t[1]).toNumber(),maxPriorityFeePerGas:n,maxFeePerGas:r,gasPrice:null,gasLimit:Qc(t[4]),to:Yc(t[5]),value:Qc(t[6]),data:t[7],accessList:il(t[8])};return 9===t.length||(i.hash=yi(e),cl(i,t.slice(9),ol)),i}(t)}return Xc.throwError(`unsupported transaction type: ${t[0]}`,Pn.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}var dl=Object.freeze({__proto__:null,get TransactionTypes(){return Jc},accessListify:il,computeAddress:el,parse:ll,recoverAddress:tl,serialize:ul});var fl=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 pl=new Pn("contracts/5.7.0"),hl={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 ml(e,t){return fl(this,void 0,void 0,(function*(){const n=yield t;"string"!=typeof n&&pl.throwArgumentError("invalid address or ENS name","name",n);try{return xi(n)}catch(e){}e||pl.throwError("a provider or signer is needed to resolve ENS names",Pn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&pl.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r}))}function yl(e,t,n){return fl(this,void 0,void 0,(function*(){return Array.isArray(n)?yield Promise.all(n.map(((n,r)=>yl(e,Array.isArray(t)?t[r]:t[n.name],n)))):"address"===n.type?yield ml(e,t):"tuple"===n.type?yield yl(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>yl(e,t,n.arrayChildren)))):Promise.reject(pl.makeError("invalid value for array",Pn.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function gl(e,t,n){return fl(this,void 0,void 0,(function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=Pr(n.pop())),pl.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from?r.from=Nr({override:ml(e.signer,r.from),signer:e.signer.getAddress()}).then((e=>fl(this,void 0,void 0,(function*(){return xi(e.signer)!==e.override&&pl.throwError("Contract with a Signer cannot override from",Pn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):r.from=e.signer.getAddress():r.from&&(r.from=ml(e.provider,r.from));const i=yield Nr({args:yl(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:Nr(r)||{}}),a=e.interface.encodeFunctionData(t,i.args),o={data:a,to:i.address},s=i.overrides;if(null!=s.nonce&&(o.nonce=cr.from(s.nonce).toNumber()),null!=s.gasLimit&&(o.gasLimit=cr.from(s.gasLimit)),null!=s.gasPrice&&(o.gasPrice=cr.from(s.gasPrice)),null!=s.maxFeePerGas&&(o.maxFeePerGas=cr.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(o.maxPriorityFeePerGas=cr.from(s.maxPriorityFeePerGas)),null!=s.from&&(o.from=s.from),null!=s.type&&(o.type=s.type),null!=s.accessList&&(o.accessList=il(s.accessList)),null==o.gasLimit&&null!=t.gas){let e=21e3;const n=jn(a);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);o.gasLimit=cr.from(t.gas).add(e)}if(s.value){const e=cr.from(s.value);e.isZero()||t.payable||pl.throwError("non-payable method cannot override value",Pn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),o.value=e}s.customData&&(o.customData=Pr(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&&pl.throwError(`cannot override ${u.map((e=>JSON.stringify(e))).join(",")}`,Pn.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),o}))}function bl(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then((t=>(t.events=t.logs.map((n=>{let r=Fr(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 vl(e,t,n){const r=e.signer||e.provider;return function(...i){return fl(this,void 0,void 0,(function*(){let a;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Pr(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 gl(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===Pn.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=o),t}}))}}function Tl(e,t,n){return t.constant?vl(e,t,n):function(e,t){return function(...n){return fl(this,void 0,void 0,(function*(){e.signer||pl.throwError("sending a transaction requires a signer",Pn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield gl(e,t,n),i=yield e.signer.sendTransaction(r);return bl(e,i),i}))}}(e,t)}function wl(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 Al=class{constructor(e,t){kr(this,"tag",e),kr(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]}},El=class extends Al{constructor(){super("error",null)}},_l=class extends Al{constructor(e,t,n,r){const i={address:e};let a=t.getEventTopic(n);r?(a!==r[0]&&pl.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[a],super(wl(i),i),kr(this,"address",e),kr(this,"interface",t),kr(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=di(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}},Il=class extends Al{constructor(e,t){super("*",{address:e}),kr(this,"address",e),kr(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){}}},Rl=class{constructor(e,t,n){kr(this,"interface",Sr(new.target,"getInterface")(t)),null==n?(kr(this,"provider",null),kr(this,"signer",null)):ns.isSigner(n)?(kr(this,"provider",n.provider||null),kr(this,"signer",n)):Qo.isProvider(n)?(kr(this,"provider",n),kr(this,"signer",null)):pl.throwArgumentError("invalid signer or provider","signerOrProvider",n),kr(this,"callStatic",{}),kr(this,"estimateGas",{}),kr(this,"functions",{}),kr(this,"populateTransaction",{}),kr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const n=this.interface.events[t];kr(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?kr(this.filters,t,this.filters[n[0]]):pl.warn(`Duplicate definition of ${t} (${n.join(", ")})`)}))}if(kr(this,"_runningEvents",{}),kr(this,"_wrappedEmits",{}),null==e&&pl.throwArgumentError("invalid contract address or ENS name","addressOrName",e),kr(this,"address",e),this.provider)kr(this,"resolvedAddress",ml(this.provider,e));else try{kr(this,"resolvedAddress",Promise.resolve(xi(e)))}catch(e){pl.throwError("provider is required to use ENS name as contract address",Pn.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])pl.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]&&kr(this,e,Tl(this,t,!0)),null==this.functions[e]&&kr(this.functions,e,Tl(this,t,!1)),null==this.callStatic[e]&&kr(this.callStatic,e,vl(this,t,!0)),null==this.populateTransaction[e]&&kr(this.populateTransaction,e,function(e,t){return function(...n){return gl(e,t,n)}}(this,t)),null==this.estimateGas[e]&&kr(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return fl(this,void 0,void 0,(function*(){n||pl.throwError("estimate require a provider or signer",Pn.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield gl(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]&&kr(this,e,this[n])}catch(e){}null==this.functions[e]&&kr(this.functions,e,this.functions[n]),null==this.callStatic[e]&&kr(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&kr(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&kr(this.estimateGas,e,this.estimateGas[n])}))}static getContractAddress(e){return Bi(e)}static getInterface(e){return Vo.isInterface(e)?e:new Vo(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&&pl.throwError("contract not deployed",Pn.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||pl.throwError("sending a transactions require a signer",Pn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Pr(e||{});return["from","to"].forEach((function(e){null!=t[e]&&pl.throwError("cannot override "+e,Pn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new rs(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&kr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Ho.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 El);if("event"===e)return this._normalizeRunningEvent(new Al("event",null));if("*"===e)return this._normalizeRunningEvent(new Il(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new _l(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 _l(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new Al(wl(t),t))}return this._normalizeRunningEvent(new Il(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=Fr(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||pl.throwError("events require a provider or a signer with a provider",Pn.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=Pr(r.filter);return"string"==typeof t&&Wn(t,32)?(null!=n&&pl.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)}},Cl=class extends Rl{};class Ol{constructor(e,t,n){let r=null;r="string"==typeof t?t:qn(t)?Kn(t):t&&"string"==typeof t.object?t.object:"!","0x"!==r.substring(0,2)&&(r="0x"+r),(!Wn(r)||r.length%2)&&pl.throwArgumentError("invalid bytecode","bytecode",t),n&&!ns.isSigner(n)&&pl.throwArgumentError("invalid signer","signer",n),kr(this,"bytecode",r),kr(this,"interface",Sr(new.target,"getInterface")(e)),kr(this,"signer",n||null)}getDeployTransaction(...e){let t={};if(e.length===this.interface.deploy.inputs.length+1&&"object"==typeof e[e.length-1]){t=Pr(e.pop());for(const e in t)if(!hl[e])throw new Error("unknown transaction override "+e)}if(["data","from","to"].forEach((e=>{null!=t[e]&&pl.throwError("cannot override "+e,Pn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.value){cr.from(t.value).isZero()||this.interface.deploy.payable||pl.throwError("non-payable constructor cannot override value",Pn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:t.value})}return pl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor"),t.data=Kn(Gn([this.bytecode,this.interface.encodeDeploy(e)])),t}deploy(...e){return fl(this,void 0,void 0,(function*(){let t={};e.length===this.interface.deploy.inputs.length+1&&(t=e.pop()),pl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor");const n=yield yl(this.signer,e,this.interface.deploy.inputs);n.push(t);const r=this.getDeployTransaction(...n),i=yield this.signer.sendTransaction(r),a=Sr(this.constructor,"getContractAddress")(i),o=Sr(this.constructor,"getContract")(a,this.interface,this.signer);return bl(o,i),kr(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&&pl.throwError("missing compiler output",Pn.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 Cl.getInterface(e)}static getContractAddress(e){return Bi(e)}static getContract(e,t,n){return new Cl(e,t,n)}}class kl{constructor(e){kr(this,"alphabet",e),kr(this,"base",e.length),kr(this,"_alphabetMap",{}),kr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=jn(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 jn(new Uint8Array(t.reverse()))}}const Sl=new kl("abcdefghijklmnopqrstuvwxyz234567"),Nl=new kl("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");var xl,Pl=Object.freeze({__proto__:null,Base32:Sl,Base58:Nl,BaseX:kl});!function(e){e.sha256="sha256",e.sha512="sha512"}(xl||(xl={}));const Ml=new Pn("sha2/5.7.0");function Bl(e){return"0x"+rc.ripemd160().update(jn(e)).digest("hex")}function Dl(e){return"0x"+rc.sha256().update(jn(e)).digest("hex")}function Fl(e){return"0x"+rc.sha512().update(jn(e)).digest("hex")}function Ll(e,t,n){return xl[e]||Ml.throwError("unsupported algorithm "+e,Pn.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+rc.hmac(rc[e],jn(t)).update(jn(n)).digest("hex")}var Ul=Object.freeze({__proto__:null,get SupportedAlgorithm(){return xl},computeHmac:Ll,ripemd160:Bl,sha256:Dl,sha512:Fl});function ql(e,t,n,r,i){let a;e=jn(e),t=jn(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=jn(Ll(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=jn(Ll(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(jn(l).slice(0,h),p)}return Kn(s)}const jl=new Pn("wordlists/5.7.0");class Gl{constructor(e){jl.checkAbstract(new.target,Gl),kr(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 qa(t.join("\n")+"\n")}static register(e,t){t||(t=e.locale)}}let Hl=null;function zl(e){if(null==Hl&&(Hl="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo".replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==Gl.check(e)))throw Hl=null,new Error("BIP39 Wordlist for en (English) FAILED")}const Wl=new class extends Gl{constructor(){super("en")}getWord(e){return zl(this),Hl[e]}getWordIndex(e){return zl(this),Hl.indexOf(e)}};Gl.register(Wl);const Vl={en:Wl},Kl=new Pn("hdnode/5.7.0"),Xl=cr.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Jl=pa("Bitcoin seed"),Yl=2147483648;function Ql(e){return(1<<e)-1<<8-e}function $l(e){return Zn(Kn(e),32)}function Zl(e){return Nl.encode(Gn([e,Jn(Dl(Dl(e)),0,4)]))}function ed(e){if(null==e)return Vl.en;if("string"==typeof e){const t=Vl[e];return null==t&&Kl.throwArgumentError("unknown locale","wordlist",e),t}return e}const td={},nd="m/44'/60'/0'/0/0";class rd{constructor(e,t,n,r,i,a,o,s){if(e!==td)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new zc(t);kr(this,"privateKey",e.privateKey),kr(this,"publicKey",e.compressedPublicKey)}else kr(this,"privateKey",null),kr(this,"publicKey",Kn(n));kr(this,"parentFingerprint",r),kr(this,"fingerprint",Jn(Bl(Dl(this.publicKey)),0,4)),kr(this,"address",el(this.publicKey)),kr(this,"chainCode",i),kr(this,"index",a),kr(this,"depth",o),null==s?(kr(this,"mnemonic",null),kr(this,"path",null)):"string"==typeof s?(kr(this,"mnemonic",null),kr(this,"path",s)):(kr(this,"mnemonic",s),kr(this,"path",s.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return Zl(Gn([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Kn(this.depth),this.parentFingerprint,Zn(Kn(this.index),4),this.chainCode,null!=this.privateKey?Gn(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new rd(td,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&Yl){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(jn(this.privateKey),1),t&&(t+="'")}else n.set(jn(this.publicKey));for(let t=24;t>=0;t-=8)n[33+(t>>3)]=e>>24-t&255;const r=jn(Ll(xl.sha512,this.chainCode,n)),i=r.slice(0,32),a=r.slice(32);let o=null,s=null;if(this.privateKey)o=$l(cr.from(i).add(this.privateKey).mod(Xl));else{s=new zc(Kn(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 rd(td,o,s,this.fingerprint,$l(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>=Yl)throw new Error("invalid path index - "+r);n=n._derive(Yl+e)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const e=parseInt(r);if(e>=Yl)throw new Error("invalid path index - "+r);n=n._derive(e)}}}return n}static _fromSeed(e,t){const n=jn(e);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=jn(Ll(xl.sha512,Jl,n));return new rd(td,$l(r.slice(0,32)),null,"0x00000000",$l(r.slice(32)),0,0,t)}static fromMnemonic(e,t,n){return e=od(ad(e,n=ed(n)),n),rd._fromSeed(id(e,t),{phrase:e,path:"m",locale:n.locale})}static fromSeed(e){return rd._fromSeed(e,null)}static fromExtendedKey(e){const t=Nl.decode(e);82===t.length&&Zl(t.slice(0,78))===e||Kl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=t[4],r=Kn(t.slice(5,9)),i=parseInt(Kn(t.slice(9,13)).substring(2),16),a=Kn(t.slice(13,45)),o=t.slice(45,78);switch(Kn(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new rd(td,null,Kn(o),r,a,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==o[0])break;return new rd(td,Kn(o.slice(1)),null,r,a,i,n,null)}return Kl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function id(e,t){t||(t="");const n=pa("mnemonic"+t,ua.NFKD);return ql(pa(e,ua.NFKD),n,2048,64,"sha512")}function ad(e,t){t=ed(t),Kl.checkNormalize();const n=t.split(e);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=jn(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=Ql(n.length/3);if((jn(Dl(r.slice(0,a/8)))[0]&o)!==(r[r.length-1]&o))throw new Error("invalid checksum");return Kn(r.slice(0,a/8))}function od(e,t){if(t=ed(t),(e=jn(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=jn(Dl(e))[0]&Ql(i);return n[n.length-1]<<=i,n[n.length-1]|=a>>8-i,t.join(n.map((e=>t.getWord(e))))}function sd(e,t){try{return ad(e,t),!0}catch(e){}return!1}function ud(e){return("number"!=typeof e||e<0||e>=Yl||e%1)&&Kl.throwArgumentError("invalid account index","index",e),`m/44'/60'/${e}'/0/0`}var cd=Object.freeze({__proto__:null,HDNode:rd,defaultPath:nd,entropyToMnemonic:od,getAccountPath:ud,isValidMnemonic:sd,mnemonicToEntropy:ad,mnemonicToSeed:id});const ld=new Pn("random/5.7.0");const dd=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 fd=dd.crypto||dd.msCrypto;function pd(e){(e<=0||e>1024||e%1||e!=e)&&ld.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return fd.getRandomValues(t),jn(t)}function hd(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}fd&&fd.getRandomValues||(ld.warn("WARNING: Missing strong random number source"),fd={getRandomValues:function(e){return ld.throwError("no secure random source avaialble",Pn.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});var md=Object.freeze({__proto__:null,randomBytes:pd,shuffled:hd}),yd={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}()}(yd);var gd=bt(yd.exports);const bd="json-wallets/5.7.0";function vd(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),jn(e)}function Td(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function wd(e){return"string"==typeof e?pa(e,ua.NFKC):jn(e)}function Ad(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 Ed(e){const t=jn(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=Kn(t);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const _d=new Pn(bd);class Id extends Lr{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function Rd(e,t){const n=JSON.parse(e);t=wd(t);const r=xi(Ad(n,"ethaddr")),i=vd(Ad(n,"encseed"));i&&i.length%16==0||_d.throwArgumentError("invalid encseed","json",e);const a=jn(ql(t,t,2e3,32,"sha256")).slice(0,16),o=i.slice(0,16),s=i.slice(16),u=new gd.ModeOfOperation.cbc(a,o),c=gd.padding.pkcs7.strip(jn(u.decrypt(s)));let l="";for(let e=0;e<c.length;e++)l+=String.fromCharCode(c[e]);const d=yi(pa(l));return new Id({_isCrowdsaleAccount:!0,address:r,privateKey:d})}function Cd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Od(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 kd(e){if(Cd(e))try{return xi(JSON.parse(e).ethaddr)}catch(e){return null}if(Od(e))try{return xi(JSON.parse(e).address)}catch(e){return null}return null}var Sd={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}()}(Sd);var Nd=bt(Sd.exports),xd=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 Pd=new Pn(bd);function Md(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Bd extends Lr{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Dd(e,t){const n=vd(Ad(e,"crypto/ciphertext"));if(Kn(yi(Gn([t.slice(16,32),n]))).substring(2)!==Ad(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(e,t,n){if("aes-128-ctr"===Ad(e,"crypto/cipher")){const r=vd(Ad(e,"crypto/cipherparams/iv")),i=new gd.Counter(r);return jn(new gd.ModeOfOperation.ctr(t,i).decrypt(n))}return null}(e,t.slice(0,16),n);r||Pd.throwError("unsupported cipher",Pn.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),a=el(r);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),xi(t)!==a)throw new Error("address mismatch")}const o={_isKeystoreAccount:!0,address:a,privateKey:Kn(r)};if("0.1"===Ad(e,"x-ethers/version")){const t=vd(Ad(e,"x-ethers/mnemonicCiphertext")),n=vd(Ad(e,"x-ethers/mnemonicCounter")),r=new gd.Counter(n),a=new gd.ModeOfOperation.ctr(i,r),s=Ad(e,"x-ethers/path")||nd,u=Ad(e,"x-ethers/locale")||"en",c=jn(a.decrypt(t));try{const e=od(c,u),t=rd.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!==Pn.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Bd(o)}function Fd(e,t,n,r,i){return jn(ql(e,t,n,r,i))}function Ld(e,t,n,r,i){return Promise.resolve(Fd(e,t,n,r,i))}function Ud(e,t,n,r,i){const a=wd(t),o=Ad(e,"crypto/kdf");if(o&&"string"==typeof o){const t=function(e,t){return Pd.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===o.toLowerCase()){const n=vd(Ad(e,"crypto/kdfparams/salt")),s=parseInt(Ad(e,"crypto/kdfparams/n")),u=parseInt(Ad(e,"crypto/kdfparams/r")),c=parseInt(Ad(e,"crypto/kdfparams/p"));s&&u&&c||t("kdf",o),0!=(s&s-1)&&t("N",s);const l=parseInt(Ad(e,"crypto/kdfparams/dklen"));return 32!==l&&t("dklen",l),r(a,n,s,u,c,64,i)}if("pbkdf2"===o.toLowerCase()){const r=vd(Ad(e,"crypto/kdfparams/salt"));let i=null;const o=Ad(e,"crypto/kdfparams/prf");"hmac-sha256"===o?i="sha256":"hmac-sha512"===o?i="sha512":t("prf",o);const s=parseInt(Ad(e,"crypto/kdfparams/c")),u=parseInt(Ad(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),n(a,r,s,u,i)}}return Pd.throwArgumentError("unsupported key-derivation function","kdf",o)}function qd(e,t){const n=JSON.parse(e);return Dd(n,Ud(n,t,Fd,Nd.syncScrypt))}function jd(e,t,n){return xd(this,void 0,void 0,(function*(){const r=JSON.parse(e);return Dd(r,yield Ud(r,t,Ld,Nd.scrypt,n))}))}function Gd(e,t,n,r){try{if(xi(e.address)!==el(e.privateKey))throw new Error("address/privateKey mismatch");if(Md(e)){const t=e.mnemonic;if(rd.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||nd).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=jn(e.privateKey),a=wd(t);let o=null,s=null,u=null;if(Md(e)){const t=e.mnemonic;o=jn(ad(t.phrase,t.locale||"en")),s=t.path||nd,u=t.locale||"en"}let c=n.client;c||(c="ethers.js");let l=null;l=n.salt?jn(n.salt):pd(32);let d=null;if(n.iv){if(d=jn(n.iv),16!==d.length)throw new Error("invalid iv")}else d=pd(16);let f=null;if(n.uuid){if(f=jn(n.uuid),16!==f.length)throw new Error("invalid uuid")}else f=pd(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)),Nd.scrypt(a,l,p,h,m,64,r).then((t=>{const n=(t=jn(t)).slice(0,16),r=t.slice(16,32),a=t.slice(32,64),y=new gd.Counter(d),g=jn(new gd.ModeOfOperation.ctr(n,y).encrypt(i)),b=yi(Gn([r,g])),v={address:e.address.substring(2).toLowerCase(),id:Ed(f),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Kn(d).substring(2)},ciphertext:Kn(g).substring(2),kdf:"scrypt",kdfparams:{salt:Kn(l).substring(2),n:p,dklen:32,p:m,r:h},mac:b.substring(2)}};if(o){const e=pd(16),t=new gd.Counter(e),n=jn(new gd.ModeOfOperation.ctr(a,t).encrypt(o)),r=new Date,i=r.getUTCFullYear()+"-"+Td(r.getUTCMonth()+1,2)+"-"+Td(r.getUTCDate(),2)+"T"+Td(r.getUTCHours(),2)+"-"+Td(r.getUTCMinutes(),2)+"-"+Td(r.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:c,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Kn(e).substring(2),mnemonicCiphertext:Kn(n).substring(2),path:s,locale:u,version:"0.1"}}return JSON.stringify(v)}))}function Hd(e,t,n){if(Cd(e)){n&&n(0);const r=Rd(e,t);return n&&n(1),Promise.resolve(r)}return Od(e)?jd(e,t,n):Promise.reject(new Error("invalid JSON wallet"))}function zd(e,t){if(Cd(e))return Rd(e,t);if(Od(e))return qd(e,t);throw new Error("invalid JSON wallet")}var Wd=Object.freeze({__proto__:null,decryptCrowdsale:Rd,decryptJsonWallet:Hd,decryptJsonWalletSync:zd,decryptKeystore:jd,decryptKeystoreSync:qd,encryptKeystore:Gd,getJsonWalletAddress:kd,isCrowdsaleWallet:Cd,isKeystoreWallet:Od});var Vd=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 Kd=new Pn("wallet/5.7.0");class Xd extends ns{constructor(e,t){if(super(),null!=(n=e)&&Wn(n.privateKey,32)&&null!=n.address){const t=new zc(e.privateKey);if(kr(this,"_signingKey",(()=>t)),kr(this,"address",el(this.publicKey)),this.address!==xi(e.address)&&Kd.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;kr(this,"_mnemonic",(()=>({phrase:t.phrase,path:t.path||nd,locale:t.locale||"en"})));const n=this.mnemonic;el(rd.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&Kd.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else kr(this,"_mnemonic",(()=>null))}else{if(zc.isSigningKey(e))"secp256k1"!==e.curve&&Kd.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),kr(this,"_signingKey",(()=>e));else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new zc(e);kr(this,"_signingKey",(()=>t))}kr(this,"_mnemonic",(()=>null)),kr(this,"address",el(this.publicKey))}var n;t&&!Qo.isProvider(t)&&Kd.throwArgumentError("invalid provider","provider",t),kr(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 Xd(this,e)}signTransaction(e){return Nr(e).then((t=>{null!=t.from&&(xi(t.from)!==this.address&&Kd.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const n=this._signingKey().signDigest(yi(ul(t)));return ul(t,n)}))}signMessage(e){return Vd(this,void 0,void 0,(function*(){return tr(this._signingKey().signDigest(wo(e)))}))}_signTypedData(e,t,n){return Vd(this,void 0,void 0,(function*(){const r=yield Fo.resolveNames(e,t,n,(e=>(null==this.provider&&Kd.throwError("cannot resolve ENS names without a provider",Pn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e))));return tr(this._signingKey().signDigest(Fo.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={}),Gd(this,e,t,n)}static createRandom(e){let t=pd(16);e||(e={}),e.extraEntropy&&(t=jn(Jn(yi(Gn([t,e.extraEntropy])),0,16)));const n=od(t,e.locale);return Xd.fromMnemonic(n,e.path,e.locale)}static fromEncryptedJson(e,t,n){return Hd(e,t,n).then((e=>new Xd(e)))}static fromEncryptedJsonSync(e,t){return new Xd(zd(e,t))}static fromMnemonic(e,t,n){return t||(t=nd),new Xd(rd.fromMnemonic(e,null,n).derivePath(t))}}function Jd(e,t){return tl(wo(e),t)}function Yd(e,t,n,r){return tl(Fo.hash(e,t,n),r)}var Qd=Object.freeze({__proto__:null,Wallet:Xd,verifyMessage:Jd,verifyTypedData:Yd});const $d=new Pn("networks/5.7.1");function Zd(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 Zd(e)},t}function ef(e,t){const n=function(n,r){return n.JsonRpcProvider?new n.JsonRpcProvider(e,t):null};return n.renetwork=function(t){return ef(e,t)},n}const tf={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Zd("homestead")},nf={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Zd("ropsten")},rf={chainId:63,name:"classicMordor",_defaultProvider:ef("https://www.ethercluster.com/mordor","classicMordor")},af={unspecified:{chainId:0,name:"unspecified"},homestead:tf,mainnet:tf,morden:{chainId:2,name:"morden"},ropsten:nf,testnet:nf,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Zd("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Zd("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Zd("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:Zd("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:ef("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:rf,classicTestnet:rf,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:ef("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Zd("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:Zd("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 of(e){if(null==e)return null;if("number"==typeof e){for(const t in af){const n=af[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=af[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=af[e.name];if(!t)return"number"!=typeof e.chainId&&$d.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&$d.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 sf=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 uf(e,t){return sf(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:jn(new Uint8Array(i))}}))}var cf=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 lf=new Pn("web/5.7.1");function df(e){return new Promise((t=>{setTimeout(t,e)}))}function ff(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Ln(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return ga(e)}catch(e){}return Kn(e)}return e}function pf(e,t,n){const r="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;lf.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;lf.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||lf.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&&lf.throwError("basic authentication requires a secure https url",Pn.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"});const t=e.user+":"+e.password;s.authorization={key:"Authorization",value:"Basic "+Ha(pa(t))}}null!=e.skipFetchSetup&&(c.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(c.fetchOptions=Pr(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]?Ga(p[3]):(h=p[3],pa(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){lf.throwError("processing response error",Pn.errors.SERVER_ERROR,{body:ff(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(lf.makeError("timeout",Pn.errors.TIMEOUT,{requestBody:ff(c.body,m["content-type"]),requestMethod:c.method,timeout:d,url:u})))}),d))})),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return cf(this,void 0,void 0,(function*(){for(let e=0;e<r;e++){let t=null;try{if(t=yield uf(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 df(n);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),lf.throwError("missing response",Pn.errors.SERVER_ERROR,{requestBody:ff(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(),lf.throwError("bad response",Pn.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:ff(s,t.headers?t.headers["content-type"]:null),requestBody:ff(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 df(t);continue}}y.cancel(),lf.throwError("processing response error",Pn.errors.SERVER_ERROR,{body:ff(s,t.headers?t.headers["content-type"]:null),error:n,requestBody:ff(c.body,m["content-type"]),requestMethod:c.method,url:u})}return y.cancel(),s}return lf.throwError("failed response",Pn.errors.SERVER_ERROR,{requestBody:ff(c.body,m["content-type"]),requestMethod:c.method,url:u})}))}();return Promise.race([y.promise,g])}function hf(e,t,n){let r=null;if(null!=t){r=pa(t);const n="string"==typeof e?{url:e}:Pr(e);if(n.headers){0!==Object.keys(n.headers).filter((e=>"content-type"===e.toLowerCase())).length||(n.headers=Pr(n.headers),n.headers["content-type"]="application/json")}else n.headers={"content-type":"application/json"};e=n}return pf(e,r,((e,t)=>{let r=null;if(null!=e)try{r=JSON.parse(ga(e))}catch(t){lf.throwError("invalid JSON",Pn.errors.SERVER_ERROR,{body:e,error:t})}return n&&(r=n(r,t)),r}))}function mf(e,t){return t||(t={}),null==(t=Pr(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 yf=Object.freeze({__proto__:null,_fetchData:pf,fetchJson:hf,poll:mf}),gf="qpzry9x8gf2tvdw0s3jn54khce6mua7l",bf={},vf=0;vf<32;vf++){var Tf=gf.charAt(vf);if(void 0!==bf[Tf])throw new TypeError(Tf+" is ambiguous");bf[Tf]=vf}function wf(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 Af(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=wf(t)^r>>5}for(t=wf(t),n=0;n<e.length;++n){var i=e.charCodeAt(n);t=wf(t)^31&i}return t}function Ef(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=Af(a);if("string"==typeof s)return s;for(var u=[],c=0;c<o.length;++c){var l=o.charAt(c),d=bf[l];if(void 0===d)return"Unknown character "+l;s=wf(s)^d,c+6>=o.length||u.push(d)}return 1!==s?"Invalid checksum for "+e:{prefix:a,words:u}}function _f(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 If={decodeUnsafe:function(){var e=Ef.apply(null,arguments);if("object"==typeof e)return e},decode:function(e){var t=Ef.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=Af(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=wf(r)^o,i+=gf.charAt(o)}for(a=0;a<6;++a)r=wf(r);for(r^=1,a=0;a<6;++a){i+=gf.charAt(r>>5*(5-a)&31)}return i},toWordsUnsafe:function(e){var t=_f(e,8,5,!0);if(Array.isArray(t))return t},toWords:function(e){var t=_f(e,8,5,!0);if(Array.isArray(t))return t;throw new Error(t)},fromWordsUnsafe:function(e){var t=_f(e,5,8,!1);if(Array.isArray(t))return t},fromWords:function(e){var t=_f(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}},Rf=bt(If);const Cf="providers/5.7.2",Of=new Pn(Cf);class kf{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:kf.allowNull(this.accessList.bind(this),null),blockHash:kf.allowNull(a,null),blockNumber:kf.allowNull(s,null),transactionIndex:kf.allowNull(s,null),confirmations:kf.allowNull(s,null),from:t,gasPrice:kf.allowNull(n),maxPriorityFeePerGas:kf.allowNull(n),maxFeePerGas:kf.allowNull(n),gasLimit:n,to:kf.allowNull(t,null),value:n,nonce:s,data:i,r:kf.allowNull(this.uint256),s:kf.allowNull(this.uint256),v:kf.allowNull(s),creates:kf.allowNull(t,null),raw:kf.allowNull(i)},e.transactionRequest={from:kf.allowNull(t),nonce:kf.allowNull(s),gasLimit:kf.allowNull(n),gasPrice:kf.allowNull(n),maxPriorityFeePerGas:kf.allowNull(n),maxFeePerGas:kf.allowNull(n),to:kf.allowNull(t),value:kf.allowNull(n),data:kf.allowNull((e=>this.data(e,!0))),type:kf.allowNull(s),accessList:kf.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:s,blockNumber:s,transactionHash:a,address:t,topics:kf.arrayOf(a),data:i,logIndex:s,blockHash:a},e.receipt={to:kf.allowNull(this.address,null),from:kf.allowNull(this.address,null),contractAddress:kf.allowNull(t,null),transactionIndex:s,root:kf.allowNull(o),gasUsed:n,logsBloom:kf.allowNull(i),blockHash:a,transactionHash:a,logs:kf.arrayOf(this.receiptLog.bind(this)),blockNumber:s,confirmations:kf.allowNull(s,null),cumulativeGasUsed:n,effectiveGasPrice:kf.allowNull(n),status:kf.allowNull(s),type:u},e.block={hash:kf.allowNull(a),parentHash:a,number:s,timestamp:s,nonce:kf.allowNull(o),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:kf.allowNull(t),extraData:i,transactions:kf.allowNull(kf.arrayOf(a)),baseFeePerGas:kf.allowNull(n)},e.blockWithTransactions=Pr(e.block),e.blockWithTransactions.transactions=kf.allowNull(kf.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:kf.allowNull(r,void 0),toBlock:kf.allowNull(r,void 0),blockHash:kf.allowNull(a,void 0),address:kf.allowNull(t,void 0),topics:kf.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:kf.allowNull(s),blockHash:kf.allowNull(a),transactionIndex:s,removed:kf.allowNull(this.boolean.bind(this)),address:t,data:kf.allowFalsish(i,"0x"),topics:kf.arrayOf(a),transactionHash:a,logIndex:s},e}accessList(e){return il(e||[])}number(e){return"0x"===e?0:cr.from(e).toNumber()}type(e){return"0x"===e||null==e?0:cr.from(e).toNumber()}bigNumber(e){return cr.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),Wn(e))?e.toLowerCase():Of.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 xi(e)}callAddress(e){if(!Wn(e,32))return null;const t=xi(Jn(e,12));return t===Ji?null:t}contractAddress(e){return Bi(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||Wn(e))return Qn(e);throw new Error("invalid blockTag")}hash(e,t){const n=this.hex(e,t);return 32!==Xn(n)?Of.throwArgumentError("invalid hash","value",e):n}difficulty(e){if(null==e)return null;const t=cr.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Wn(e))throw new Error("invalid uint256");return Zn(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=kf.check(t,e);return r._difficulty=null==n?null:cr.from(n),r}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return kf.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&cr.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=kf.check(this.formats.transaction,e);if(null!=e.chainId){let n=e.chainId;Wn(n)&&(n=cr.from(n).toNumber()),t.chainId=n}else{let n=e.networkId;null==n&&null==t.v&&(n=e.chainId),Wn(n)&&(n=cr.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 ll(e)}receiptLog(e){return kf.check(this.formats.receiptLog,e)}receipt(e){const t=kf.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=cr.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&Of.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):Of.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&Of.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 kf.check(this.formats.filter,e)}filterLog(e){return kf.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 Sf(e){return e&&"function"==typeof e.isCommunityResource}function Nf(e){return Sf(e)&&e.isCommunityResource()}let xf=!1;function Pf(){xf||(xf=!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 Mf=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 Bf=new Pn(Cf);function Df(e){return null==e?"null":(32!==Xn(e)&&Bf.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function Ff(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[Df(e)]=!0}));const n=Object.keys(t);return n.sort(),n.join("|")}return Df(e)})).join("&")}function Lf(e){if("string"==typeof e){if(32===Xn(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+Ff(e);if(Yo.isForkEvent(e))throw Bf.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+Ff(e.topics||[])}throw new Error("invalid event - "+e)}function Uf(){return(new Date).getTime()}function qf(e){return new Promise((t=>{setTimeout(t,e)}))}const jf=["block","network","pending","poll"];class Gf{constructor(e,t,n){kr(this,"tag",e),kr(this,"listener",t),kr(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||jf.indexOf(this.tag)>=0}}const Hf={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 zf(e){return Zn(cr.from(e).toHexString(),32)}function Wf(e){return Nl.encode(Gn([e,Jn(Dl(Dl(e)),0,4)]))}const Vf=new RegExp("^(ipfs)://(.*)$","i"),Kf=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Vf,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Xf(e,t){try{return ga(Jf(e,t))}catch(e){}return null}function Jf(e,t){if("0x"===e)return null;const n=cr.from(Jn(e,t,t+32)).toNumber(),r=cr.from(Jn(e,n,n+32)).toNumber();return Jn(e,n+32,n+32+r)}function Yf(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):Bf.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function Qf(e){const t=jn(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 $f(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Zf(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=jn(e[r]);t[r]=Qf(n),t.push(Qf(i.length)),t.push($f(i)),n+=32+32*Math.ceil(i.length/32)}return Yn(t)}class ep{constructor(e,t,n,r){kr(this,"provider",e),kr(this,"name",n),kr(this,"address",e.formatter.address(t)),kr(this,"_resolvedAddress",r)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then((e=>cr.from(e).eq(1))).catch((e=>{if(e.code===Pn.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e}))),this._supportsEip2544}_fetch(e,t){return Mf(this,void 0,void 0,(function*(){const n={to:this.address,ccipReadEnabled:!0,data:Yn([e,bo(this.name),t||"0x"])};let r=!1;(yield this.supportsWildcard())&&(r=!0,n.data=Yn(["0x9061b923",Zf([vo(this.name),n.data])]));try{let e=yield this.provider.call(n);return jn(e).length%32==4&&Bf.throwError("resolver threw error",Pn.errors.CALL_EXCEPTION,{transaction:n,data:e}),r&&(e=Jf(e,0)),e}catch(e){if(e.code===Pn.errors.CALL_EXCEPTION)return null;throw e}}))}_fetchBytes(e,t){return Mf(this,void 0,void 0,(function*(){const n=yield this._fetch(e,t);return null!=n?Jf(n,0):null}))}_getAddress(e,t){const n=Hf[String(e)];if(null==n&&Bf.throwError(`unsupported coin type: ${e}`,Pn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===n.ilk)return this.provider.formatter.address(t);const r=jn(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 Wf(Gn([[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 Wf(Gn([[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=Rf.toWords(r.slice(2));return e.unshift(t),Rf.encode(n.prefix,e)}}return null}getAddress(e){return Mf(this,void 0,void 0,(function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||e===ia?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===Pn.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",zf(e));if(null==t||"0x"===t)return null;const n=this._getAddress(e,t);return null==n&&Bf.throwError("invalid or unsupported coin data",Pn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),n}))}getAvatar(){return Mf(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<Kf.length;n++){const r=t.match(Kf[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:Yf(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=Zn(cr.from(o[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:s,data:Yn(["0x6352211e",u])}));if(a!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=cr.from(yield this.provider.call({to:s,data:Yn(["0x00fdd58e",Zn(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:Yn([n,u])};let l=Xf(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=Yf(l)),e.push({type:"metadata-url",content:l});const d=yield hf(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(Vf))return null;e.push({type:"url-ipfs",content:f}),f=Yf(f)}return e.push({type:"url",content:f}),{linkage:e,url:f}}}}}catch(e){}return null}))}getContentHash(){return Mf(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://"+Nl.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://"+Nl.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://"+Ha("0x"+i[1]).replace(/[=+\/]/g,(t=>e[t]))}return Bf.throwError("invalid or unsupported content hash data",Pn.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})}))}getText(e){return Mf(this,void 0,void 0,(function*(){let t=pa(e);t=Gn([zf(64),zf(t.length),t]),t.length%32!=0&&(t=Gn([t,Zn("0x",32-e.length%32)]));const n=yield this._fetchBytes("0x59d1d43c",Kn(t));return null==n||"0x"===n?null:ga(n)}))}}let tp=null,np=1;class rp extends Qo{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),kr(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=Sr(new.target,"getNetwork")(e);t?(kr(this,"_network",t),this.emit("network",t,null)):Bf.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return Mf(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||Bf.throwError("no network detected",Pn.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:kr(this,"_network",e),this.emit("network",e,null))}return this._network}))}get ready(){return mf((()=>this._ready().then((e=>e),(e=>{if(e.code!==Pn.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))))}static getFormatter(){return null==tp&&(tp=new kf),tp}static getNetwork(e){return of(null==e?"homestead":e)}ccipReadFetch(e,t,n){return Mf(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 hf({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 Bf.throwError(`response not found during CCIP fetch: ${c}`,Pn.errors.SERVER_ERROR,{url:t,errorMessage:c});a.push(c)}return Bf.throwError(`error encountered during CCIP fetch: ${a.map((e=>JSON.stringify(e))).join(", ")}`,Pn.errors.SERVER_ERROR,{urls:n,errorMessages:a})}))}_getInternalBlockNumber(e){return Mf(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(Uf()-n.respTime<=e)return n.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=Uf(),n=Nr({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=Uf();return(e=cr.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 Mf(this,void 0,void 0,(function*(){const e=np++,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)Bf.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${n})`),this.emit("error",Bf.makeError("network block skew detected",Pn.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 Mf(this,void 0,void 0,(function*(){return Bf.throwError("provider does not support network detection",Pn.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})}))}getNetwork(){return Mf(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 qf(0),this._network;const n=Bf.makeError("underlying network changed",Pn.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=Uf();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=Uf(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,n){return Mf(this,void 0,void 0,(function*(){return this._waitForTransaction(e,null==t?1:t,n||0,null)}))}_waitForTransaction(e,t,n,r){return Mf(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=>Mf(this,void 0,void 0,(function*(){s||(yield qf(1e3),this.getTransactionCount(r.from).then((l=>Mf(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(Bf.makeError("transaction was replaced",Pn.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(Bf.makeError("timeout exceeded",Pn.errors.TIMEOUT,{timeout:n}))}),n);e.unref&&e.unref(),o.push((()=>{clearTimeout(e)}))}}))}))}getBlockNumber(){return Mf(this,void 0,void 0,(function*(){return this._getInternalBlockNumber(0)}))}getGasPrice(){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return cr.from(e)}catch(t){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}}))}getBalance(e,t){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Nr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getBalance",n);try{return cr.from(r)}catch(e){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"getBalance",params:n,result:r,error:e})}}))}getTransactionCount(e,t){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Nr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getTransactionCount",n);try{return cr.from(r).toNumber()}catch(e){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:r,error:e})}}))}getCode(e,t){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Nr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getCode",n);try{return Kn(r)}catch(e){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"getCode",params:n,result:r,error:e})}}))}getStorageAt(e,t,n){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield Nr({address:this._getAddress(e),blockTag:this._getBlockTag(n),position:Promise.resolve(t).then((e=>Qn(e)))}),i=yield this.perform("getStorageAt",r);try{return Kn(i)}catch(e){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"getStorageAt",params:r,result:i,error:e})}}))}_wrapTransaction(e,t,n){if(null!=t&&32!==Xn(t))throw new Error("invalid response - sendTransaction");const r=e;return null!=t&&e.hash!==t&&Bf.throwError("Transaction hash mismatch from Provider.sendTransaction.",Pn.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),r.wait=(t,r)=>Mf(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&&Bf.throwError("transaction failed",Pn.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:a}),a)})),r}sendTransaction(e){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then((e=>Kn(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 Mf(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?cr.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?Kn(e):null)))})),this.formatter.transactionRequest(yield Nr(n))}))}_getFilter(e){return Mf(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 Nr(t))}))}_call(e,t,n){return Mf(this,void 0,void 0,(function*(){n>=10&&Bf.throwError("CCIP read exceeded maximum redirections",Pn.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)&&Xn(i)%32==4)try{const a=Jn(i,4),o=Jn(a,0,32);cr.from(o).eq(r)||Bf.throwError("CCIP Read sender did not match",Pn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const s=[],u=cr.from(Jn(a,32,64)).toNumber(),c=cr.from(Jn(a,u,u+32)).toNumber(),l=Jn(a,u+32);for(let t=0;t<c;t++){const n=Xf(l,32*t);null==n&&Bf.throwError("CCIP Read contained corrupt URL string",Pn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),s.push(n)}const d=Jf(a,64);cr.from(Jn(a,100,128)).isZero()||Bf.throwError("CCIP Read callback selector included junk",Pn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const f=Jn(a,96,100),p=Jf(a,128),h=yield this.ccipReadFetch(e,d,s);null==h&&Bf.throwError("CCIP Read disabled or provided no URLs",Pn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:r,data:Yn([f,Zf([h,p])])};return this._call(m,t,n+1)}catch(e){if(e.code===Pn.errors.SERVER_ERROR)throw e}try{return Kn(i)}catch(n){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:n})}}))}call(e,t){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Nr({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 Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Nr({transaction:this._getTransactionRequest(e)}),n=yield this.perform("estimateGas",t);try{return cr.from(n)}catch(e){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:n,error:e})}}))}_getAddress(e){return Mf(this,void 0,void 0,(function*(){"string"!=typeof(e=yield e)&&Bf.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&Bf.throwError("ENS name not configured",Pn.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t}))}_getBlock(e,t){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;let n=-128;const r={includeTransactions:!!t};if(Wn(e,32))r.blockHash=e;else try{r.blockTag=yield this._getBlockTag(e),Wn(r.blockTag)&&(n=parseInt(r.blockTag.substring(2),16))}catch(t){Bf.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return mf((()=>Mf(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 Mf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return mf((()=>Mf(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 Mf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return mf((()=>Mf(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 Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Nr({filter:this._getFilter(e)}),n=yield this.perform("getLogs",t);return n.forEach((e=>{null==e.removed&&(e.removed=!1)})),kf.arrayOf(this.formatter.filterLog.bind(this.formatter))(n)}))}getEtherPrice(){return Mf(this,void 0,void 0,(function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})}))}_getBlockTag(e){return Mf(this,void 0,void 0,(function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&Bf.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 Mf(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 ep(this,n,e);return t===e||(yield r.supportsWildcard())?r:null}t=t.split(".").slice(1).join(".")}}))}_getResolver(e,t){return Mf(this,void 0,void 0,(function*(){null==t&&(t="ENS");const n=yield this.getNetwork();n.ensAddress||Bf.throwError("network does not support ENS",Pn.errors.UNSUPPORTED_OPERATION,{operation:t,network:n.name});try{const t=yield this.call({to:n.ensAddress,data:"0x0178b8bf"+bo(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null}))}resolveName(e){return Mf(this,void 0,void 0,(function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Wn(e))throw t}"string"!=typeof e&&Bf.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null}))}lookupAddress(e){return Mf(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=Xf(yield this.call({to:n,data:"0x691f3431"+bo(t).substring(2)}),0);return(yield this.resolveName(r))!=e?null:r}))}getAvatar(e){return Mf(this,void 0,void 0,(function*(){let t=null;if(Wn(e)){const n=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(n,"getAvatar");if(!r)return null;t=new ep(this,r,n);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==Pn.errors.CALL_EXCEPTION)throw e}try{const e=Xf(yield this.call({to:r,data:"0x691f3431"+bo(n).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==Pn.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 Bf.throwError(e+" not implemented",Pn.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 Gf(Lf(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=Lf(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=Lf(e);return this._events.filter((e=>e.tag===t)).length}listeners(e){if(null==e)return this._events.map((e=>e.listener));let t=Lf(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=Lf(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=Lf(e);this._events=this._events.filter((e=>e.tag!==n||(t.push(e),!1)))}return t.forEach((e=>{this._stopEvent(e)})),this}}var ip=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 Pn(Cf),op=["call","estimateGas"];function sp(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const n=Wn(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=sp(e[n],t);if(r)return r}return null}if("string"==typeof e)try{return sp(JSON.parse(e),t)}catch(e){}return null}function up(e,t,n){const r=n.transaction||n.signedTransaction;if("call"===e){const e=sp(t,!0);if(e)return e.data;ap.throwError("missing revert data in call exception; Transaction reverted without a reason string",Pn.errors.CALL_EXCEPTION,{data:"0x",transaction:r,error:t})}if("estimateGas"===e){let n=sp(t.body,!1);null==n&&(n=sp(t,!1)),n&&ap.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pn.errors.UNPREDICTABLE_GAS_LIMIT,{reason:n.message,method:e,transaction:r,error:t})}let i=t.message;throw t.code===Pn.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)&&ap.throwError("insufficient funds for intrinsic transaction cost",Pn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),i.match(/nonce (is )?too low/i)&&ap.throwError("nonce has already been used",Pn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&ap.throwError("replacement fee too low",Pn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),i.match(/only replay-protected/i)&&ap.throwError("legacy pre-eip-155 transactions not supported",Pn.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:r}),op.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&ap.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}function cp(e){return new Promise((function(t){setTimeout(t,e)}))}function lp(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 dp(e){return e?e.toLowerCase():e}const fp={};class pp extends ns{constructor(e,t,n){if(super(),e!==fp)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");kr(this,"provider",t),null==n&&(n=0),"string"==typeof n?(kr(this,"_address",this.provider.formatter.address(n)),kr(this,"_index",null)):"number"==typeof n?(kr(this,"_index",n),kr(this,"_address",null)):ap.throwArgumentError("invalid address or index","addressOrIndex",n)}connect(e){return ap.throwError("cannot alter JSON-RPC Signer connection",Pn.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new hp(fp,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&&ap.throwError("unknown account #"+this._index,Pn.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index]))))}sendUncheckedTransaction(e){e=Pr(e);const t=this.getAddress().then((e=>(e&&(e=e.toLowerCase()),e)));if(null==e.gasLimit){const n=Pr(e);n.from=t,e.gasLimit=this.provider.estimateGas(n)}return null!=e.to&&(e.to=Promise.resolve(e.to).then((e=>ip(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&ap.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))))),Nr({tx:Nr(e),sender:t}).then((({tx:t,sender:n})=>{null!=t.from?t.from.toLowerCase()!==n&&ap.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)&&ap.throwError("user rejected transaction",Pn.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),up("sendTransaction",e,r))))}))}signTransaction(e){return ap.throwError("signing transactions is unsupported",Pn.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return ip(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 mf((()=>ip(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 ip(this,void 0,void 0,(function*(){const t="string"==typeof e?pa(e):e,n=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Kn(t),n.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&ap.throwError("user rejected signing",Pn.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:e}),t}}))}_legacySignMessage(e){return ip(this,void 0,void 0,(function*(){const t="string"==typeof e?pa(e):e,n=yield this.getAddress();try{return yield this.provider.send("eth_sign",[n.toLowerCase(),Kn(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&ap.throwError("user rejected signing",Pn.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:e}),t}}))}_signTypedData(e,t,n){return ip(this,void 0,void 0,(function*(){const r=yield Fo.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(Fo.getPayload(r.domain,t,r.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&ap.throwError("user rejected signing",Pn.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:r.domain,types:t,value:r.value}}),e}}))}unlock(e){return ip(this,void 0,void 0,(function*(){const t=this.provider,n=yield this.getAddress();return t.send("personal_unlockAccount",[n.toLowerCase(),e,null])}))}}class hp extends pp{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 mp={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};let yp=class extends rp{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=Sr(this.constructor,"defaultUrl")()),kr(this,"connection","string"==typeof e?Object.freeze({url:e}):Object.freeze(Pr(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 ip(this,void 0,void 0,(function*(){yield cp(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=Sr(this.constructor,"getNetwork");try{return t(cr.from(e).toNumber())}catch(t){return ap.throwError("could not detect network",Pn.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return ap.throwError("could not detect network",Pn.errors.NETWORK_ERROR,{event:"noNetwork"})}))}getSigner(e){return new pp(fp,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:Fr(n),provider:this});const r=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(r&&this._cache[e])return this._cache[e];const i=hf(this.connection,JSON.stringify(n),lp).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",[dp(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[dp(t.address),t.blockTag]];case"getCode":return["eth_getCode",[dp(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[dp(t.address),Zn(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",[Sr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[Sr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=dp(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return ip(this,void 0,void 0,(function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&cr.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=yield this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&((t=Pr(t)).transaction=Pr(e),delete t.transaction.type)}}const n=this.prepareRequest(e,t);null==n&&ap.throwError(e+" not implemented",Pn.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(n[0],n[1])}catch(n){return up(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 cp(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=Pr(mp);if(t)for(const e in t)t[e]&&(n[e]=!0);xr(e,n);const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((function(t){if(null==e[t])return;const n=Qn(cr.from(e[t]));"gasLimit"===t&&(t="gas"),r[t]=n})),["from","to","data"].forEach((function(t){null!=e[t]&&(r[t]=Kn(e[t]))})),e.accessList&&(r.accessList=il(e.accessList)),r}},gp=null;try{if(gp=WebSocket,null==gp)throw new Error("inject please")}catch(e){const t=new Pn(Cf);gp=function(){t.throwError("WebSockets not supported in this environment",Pn.errors.UNSUPPORTED_OPERATION,{operation:"new WebSocket()"})}}var bp=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 vp=new Pn(Cf);let Tp=1;class wp extends yp{constructor(e,t){"any"===t&&vp.throwError("WebSocketProvider does not support 'any' network yet",Pn.errors.UNSUPPORTED_OPERATION,{operation:"network:any"}),super("string"==typeof e?e:"_websocket",t),this._pollingInterval=-1,this._wsReady=!1,kr(this,"_websocket","string"==typeof e?new gp(this.connection.url):e),kr(this,"_requests",{}),kr(this,"_subs",{}),kr(this,"_subIds",{}),kr(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"),kr(e,"code",n.error.code||null),kr(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){vp.throwError("cannot reset events block on WebSocketProvider",Pn.errors.UNSUPPORTED_OPERATION,{operation:"resetEventBlock"})}set pollingInterval(e){vp.throwError("cannot set polling interval on WebSocketProvider",Pn.errors.UNSUPPORTED_OPERATION,{operation:"setPollingInterval"})}poll(){return bp(this,void 0,void 0,(function*(){return null}))}set polling(e){e&&vp.throwError("cannot set polling on WebSocketProvider",Pn.errors.UNSUPPORTED_OPERATION,{operation:"setPolling"})}send(e,t){const n=Tp++;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 bp(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=cr.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 bp(this,void 0,void 0,(function*(){this.websocket.readyState===gp.CONNECTING&&(yield new Promise((e=>{this.websocket.onopen=function(){e(!0)},this.websocket.onerror=function(){e(!1)}}))),this.websocket.close(1e3)}))}}var Ap=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 Ep=new Pn(Cf);class _p extends yp{detectNetwork(){const e=Object.create(null,{detectNetwork:{get:()=>super.detectNetwork}});return Ap(this,void 0,void 0,(function*(){let t=this.network;return null==t&&(t=yield e.detectNetwork.call(this),t||Ep.throwError("no network detected",Pn.errors.UNKNOWN_ERROR,{}),null==this._network&&(kr(this,"_network",t),this.emit("network",t,null))),t}))}}class Ip extends _p{constructor(e,t){Ep.checkAbstract(new.target,Ip),e=Sr(new.target,"getNetwork")(e),t=Sr(new.target,"getApiKey")(t);super(Sr(new.target,"getUrl")(e,t),e),"string"==typeof t?kr(this,"apiKey",t):null!=t&&Object.keys(t).forEach((e=>{kr(this,e,t[e])}))}_startPending(){Ep.warn("WARNING: API provider does not support pending filters")}isCommunityResource(){return!1}getSigner(e){return Ep.throwError("API provider does not support signing",Pn.errors.UNSUPPORTED_OPERATION,{operation:"getSigner"})}listAccounts(){return Promise.resolve([])}static getApiKey(e){return e}static getUrl(e,t){return Ep.throwError("not implemented; sub-classes must override getUrl",Pn.errors.NOT_IMPLEMENTED,{operation:"getUrl"})}}const Rp=new Pn(Cf),Cp="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";class Op extends wp{constructor(e,t){const n=new kp(e,t);super(n.connection.url.replace(/^http/i,"ws").replace(".alchemyapi.",".ws.alchemyapi."),n.network),kr(this,"apiKey",n.apiKey)}isCommunityResource(){return this.apiKey===Cp}}class kp extends Ip{static getWebSocketProvider(e,t){return new Op(e,t)}static getApiKey(e){return null==e?Cp:(e&&"string"!=typeof e&&Rp.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:Rp.throwArgumentError("unsupported network","network",arguments[0])}return{allowGzip:!0,url:"https://"+n+t,throttleCallback:(e,n)=>(t===Cp&&Pf(),Promise.resolve(!0))}}isCommunityResource(){return this.apiKey===Cp}}const Sp=new Pn(Cf),Np="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function xp(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 Sp.throwArgumentError("unsupported network","name",e)}class Pp extends Ip{isCommunityResource(){return this.apiKey===Np}static getApiKey(e){return null==e?Np:e}static getUrl(e,t){null==t&&(t=Np);const n={allowGzip:!0,url:"https://"+xp(e.name)+t,throttleCallback:(e,n)=>(t.apiKey===Np&&Pf(),Promise.resolve(!0))};return null!=t.projectSecret&&(n.user="",n.password=t.projectSecret),n}}var Mp=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 Pn(Cf);class Dp extends Ip{static getApiKey(e){return null!=e&&Bp.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 Bp.throwArgumentError("unsupported network","network",arguments[0]);return n}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return Mp(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 Fp=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 Lp=new Pn(Cf);function Up(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]?Qn(Kn(r)):"accessList"===n?"["+il(r).map((e=>`{address:"${e.address}",storageKeys:["${e.storageKeys.join('","')}"]}`)).join(",")+"]":Kn(r),t[n]=r)}return t}function qp(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 jp(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 Gp(e){if("pending"===e)throw new Error("pending not supported");return"latest"===e?e:parseInt(e.substring(2),16)}function Hp(e,t,n){if("call"===e&&t.code===Pn.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,"")),Wn(n))return n;Lp.throwError("missing revert data in call exception",Pn.errors.CALL_EXCEPTION,{error:t,data:"0x"})}}let r=t.message;throw t.code===Pn.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/)&&Lp.throwError("insufficient funds for intrinsic transaction cost",Pn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),r.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&Lp.throwError("nonce has already been used",Pn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),r.match(/another transaction with same nonce/)&&Lp.throwError("replacement fee too low",Pn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),r.match(/execution failed due to an exception|execution reverted/)&&Lp.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}class zp extends rp{constructor(e,t){super(e),kr(this,"baseUrl",this.getBaseUrl()),kr(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 Lp.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 Fp(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?jp:qp;this.emit("debug",{action:"request",request:r,provider:this});const o={url:r,throttleSlotInterval:1e3,throttleCallback:(e,t)=>(this.isCommunityResource()&&Pf(),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 hf(o,s,a||jp);return this.emit("debug",{action:"response",request:r,response:Fr(u),provider:this}),u}))}detectNetwork(){return Fp(this,void 0,void 0,(function*(){return this.network}))}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return Fp(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=>Hp("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=Up(t.transaction);e.module="proxy",e.action="eth_call";try{return yield this.fetch("proxy",e,!0)}catch(e){return Hp("call",e,t.transaction)}}case"estimateGas":{const e=Up(t.transaction);e.module="proxy",e.action="eth_estimateGas";try{return yield this.fetch("proxy",e,!0)}catch(e){return Hp("estimateGas",e,t.transaction)}}case"getLogs":{const e={action:"getLogs"};if(t.filter.fromBlock&&(e.fromBlock=Gp(t.filter.fromBlock)),t.filter.toBlock&&(e.toBlock=Gp(t.filter.toBlock)),t.filter.address&&(e.address=t.filter.address),t.filter.topics&&t.filter.topics.length>0&&(t.filter.topics.length>1&&Lp.throwError("unsupported topic count",Pn.errors.UNSUPPORTED_OPERATION,{topics:t.filter.topics}),1===t.filter.topics.length)){const n=t.filter.topics[0];"string"==typeof n&&66===n.length||Lp.throwError("unsupported topic format",Pn.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 Fp(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 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 Vp=new Pn(Cf);function Kp(){return(new Date).getTime()}function Xp(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)||Vp.throwArgumentError("provider mismatch","networks",e):t=r}return t}function Jp(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 Yp(e){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return JSON.stringify(e);if("string"==typeof e)return e;if(cr.isBigNumber(e))return e.toString();if(Array.isArray(e))return JSON.stringify(e.map((e=>Yp(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]":Yp(n),JSON.stringify(t)+":"+n})).join(",")+"}"}throw new Error("unknown value type: "+typeof e)}let Qp=1;function $p(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 Zp=[Pn.errors.CALL_EXCEPTION,Pn.errors.INSUFFICIENT_FUNDS,Pn.errors.NONCE_EXPIRED,Pn.errors.REPLACEMENT_UNDERPRICED,Pn.errors.UNPREDICTABLE_GAS_LIMIT],eh=["address","args","errorArgs","errorSignature","method","transaction"];function th(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 nh(e,t,n){let r=Yp;switch(t){case"getBlockNumber":return function(t){const n=t.map((e=>e.result));let r=Jp(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 Jp(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=Pr(e)).confirmations=-1,Yp(e))};break;case"getBlock":r=n.includeTransactions?function(e){return null==e?null:((e=Pr(e)).transactions=e.transactions.map((e=>((e=Pr(e)).confirmations=-1,e))),Yp(e))}:function(e){return null==e?null:Yp(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 rh(e,t){return Wp(this,void 0,void 0,(function*(){const n=e.provider;return null!=n.blockNumber&&n.blockNumber>=t||-1===t?n:mf((()=>new Promise(((r,i)=>{setTimeout((function(){return n.blockNumber>=t?r(n):e.cancelled?r(null):r(void 0)}),0)}))),{oncePoll:n})}))}function ih(e,t,n,r){return Wp(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&&Wn(r.blockTag)&&(i=yield rh(e,t)),i[n](r.address,r.blockTag||"latest");case"getStorageAt":return r.blockTag&&Wn(r.blockTag)&&(i=yield rh(e,t)),i.getStorageAt(r.address,r.position,r.blockTag||"latest");case"getBlock":return r.blockTag&&Wn(r.blockTag)&&(i=yield rh(e,t)),i[r.includeTransactions?"getBlockWithTransactions":"getBlock"](r.blockTag||r.blockHash);case"call":case"estimateGas":return r.blockTag&&Wn(r.blockTag)&&(i=yield rh(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&&Wn(n.fromBlock)||n.toBlock&&Wn(n.toBlock))&&(i=yield rh(e,t)),i.getLogs(n)}}return Vp.throwError("unknown method error",Pn.errors.UNKNOWN_ERROR,{method:n,params:r})}))}class ah extends rp{constructor(e,t){0===e.length&&Vp.throwArgumentError("missing providers","providers",e);const n=e.map(((e,t)=>{if(Qo.isProvider(e)){const t=Nf(e)?2e3:750,n=1;return Object.freeze({provider:e,weight:1,stallTimeout:t,priority:n})}const n=Pr(e);null==n.priority&&(n.priority=1),null==n.stallTimeout&&(n.stallTimeout=Nf(e)?2e3:750),null==n.weight&&(n.weight=1);const r=n.weight;return(r%1||r>512||r<1)&&Vp.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&&Vp.throwArgumentError("quorum will always fail; larger than total weight","quorum",t);let i=Xp(n.map((e=>e.provider.network)));null==i&&(i=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then(e,t)}),0)}))),super(i),kr(this,"providerConfigs",Object.freeze(n)),kr(this,"quorum",t),this._highestBlockNumber=-1}detectNetwork(){return Wp(this,void 0,void 0,(function*(){return Xp(yield Promise.all(this.providerConfigs.map((e=>e.provider.getNetwork()))))}))}perform(e,t){return Wp(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=nh(this,e,t),r=hd(this.providerConfigs.map(Pr));r.sort(((e,t)=>e.priority-t.priority));const i=this._highestBlockNumber;let a=0,o=!0;for(;;){const s=Kp();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=Qp++;n.start=Kp(),n.staller=$p(n.stallTimeout),n.staller.wait((()=>{n.staller=null})),n.runner=ih(n,i,e,t).then((r=>{n.done=!0,n.result=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:th(n,Kp()),request:{method:e,params:Fr(t)},provider:this})}),(r=>{n.done=!0,n.error=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:th(n,Kp()),request:{method:e,params:Fr(t)},provider:this})})),this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:th(n,null),request:{method:e,params:Fr(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 $p(100).getPromise()),o=!1}const d=r.reduce(((e,t)=>{if(!t.done||null==t.error)return e;const n=t.error.code;return Zp.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={};eh.forEach((e=>{null!=n[e]&&(i[e]=n[e])})),Vp.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})),Vp.throwError("failed to meet quorum",Pn.errors.SERVER_ERROR,{method:e,params:t,results:r.map((e=>th(e))),provider:this})}))}}const oh=new Pn(Cf),sh="84842078b09946638c03157f83405213";class uh extends wp{constructor(e,t){const n=new ch(e,t),r=n.connection;r.password&&oh.throwError("INFURA WebSocket project secrets unsupported",Pn.errors.UNSUPPORTED_OPERATION,{operation:"InfuraProvider.getWebSocketProvider()"});super(r.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/"),e),kr(this,"apiKey",n.projectId),kr(this,"projectId",n.projectId),kr(this,"projectSecret",n.projectSecret)}isCommunityResource(){return this.projectId===sh}}class ch extends Ip{static getWebSocketProvider(e,t){return new uh(e,t)}static getApiKey(e){const t={apiKey:sh,projectId:sh,projectSecret:null};return null==e||("string"==typeof e?t.projectId=e:null!=e.projectSecret?(oh.assertArgument("string"==typeof e.projectId,"projectSecret requires a projectId","projectId",e.projectId),oh.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:oh.throwError("unsupported network",Pn.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={allowGzip:!0,url:"https://"+n+"/v3/"+t.projectId,throttleCallback:(e,n)=>(t.projectId===sh&&Pf(),Promise.resolve(!0))};return null!=t.projectSecret&&(r.user="",r.password=t.projectSecret),r}isCommunityResource(){return this.projectId===sh}}class lh extends yp{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:Fr(t),provider:this}),hf(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 dh=new Pn(Cf);class fh extends Ip{static getApiKey(e){return e&&"string"!=typeof e&&dh.throwArgumentError("invalid apiKey","apiKey",e),e||"ETHERS_JS_SHARED"}static getUrl(e,t){dh.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:dh.throwArgumentError("unsupported network","network",arguments[0])}return n+"?apiKey="+t}}const ph=new Pn(Cf),hh="62e1ad51b37b8e00394bda3b";class mh extends Ip{static getApiKey(e){const t={applicationId:null,loadBalancer:!0,applicationSecretKey:null};return null==e?t.applicationId=hh:"string"==typeof e?t.applicationId=e:null!=e.applicationSecretKey?(t.applicationId=e.applicationId,t.applicationSecretKey=e.applicationSecretKey):e.applicationId?t.applicationId=e.applicationId:ph.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:ph.throwError("unsupported network",Pn.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===hh}}const yh=new Pn(Cf);let gh=1;function bh(e,t){const n="Web3LegacyFetcher";return function(e,r){const i={method:e,params:r,id:gh++,jsonrpc:"2.0"};return new Promise(((e,r)=>{this.emit("debug",{action:"request",fetcher:n,request:Fr(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 vh extends yp{constructor(e,t){null==e&&yh.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:Fr(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=bh(0,e.sendAsync.bind(e)):e.send?r=bh(0,e.send.bind(e)):yh.throwArgumentError("unsupported provider","provider",e),n||(n="unknown:")),super(n,t),kr(this,"jsonRpcFetchFunc",r),kr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}const Th=new Pn(Cf);function wh(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 yp(e);case"ws":case"wss":return new wp(e);default:Th.throwArgumentError("unsupported URL scheme","network",e)}}const n=of(e);return n&&n._defaultProvider||Th.throwError("unsupported getDefaultProvider network",Pn.errors.NETWORK_ERROR,{operation:"getDefaultProvider",network:e}),n._defaultProvider({FallbackProvider:ah,AlchemyProvider:kp,AnkrProvider:Pp,CloudflareProvider:Dp,EtherscanProvider:zp,InfuraProvider:ch,JsonRpcProvider:yp,NodesmithProvider:fh,PocketProvider:mh,Web3Provider:vh,IpcProvider:null},t)}var Ah=Object.freeze({__proto__:null,AlchemyProvider:kp,AlchemyWebSocketProvider:Op,AnkrProvider:Pp,BaseProvider:rp,CloudflareProvider:Dp,EtherscanProvider:zp,FallbackProvider:ah,Formatter:kf,InfuraProvider:ch,InfuraWebSocketProvider:uh,IpcProvider:null,JsonRpcBatchProvider:lh,JsonRpcProvider:yp,JsonRpcSigner:pp,NodesmithProvider:fh,PocketProvider:mh,Provider:Qo,Resolver:ep,StaticJsonRpcProvider:_p,UrlJsonRpcProvider:Ip,Web3Provider:vh,WebSocketProvider:wp,getDefaultProvider:wh,getNetwork:of,isCommunityResourcable:Sf,isCommunityResource:Nf,showThrottleMessage:Pf});const Eh=new RegExp("^bytes([0-9]+)$"),_h=new RegExp("^(u?int)([0-9]*)$"),Ih=new RegExp("^(.*)\\[([0-9]*)\\]$"),Rh="0000000000000000000000000000000000000000000000000000000000000000",Ch=new Pn("solidity/5.7.0");function Oh(e,t,n){switch(e){case"address":return n?zn(t,32):jn(t);case"string":return pa(t);case"bytes":return jn(t);case"bool":return t=t?"0x01":"0x00",n?zn(t,32):jn(t)}let r=e.match(_h);if(r){let i=parseInt(r[2]||"256");return(r[2]&&String(i)!==r[2]||i%8!=0||0===i||i>256)&&Ch.throwArgumentError("invalid number type","type",e),n&&(i=256),zn(t=cr.from(t).toTwos(i),i/8)}if(r=e.match(Eh),r){const i=parseInt(r[1]);return(String(i)!==r[1]||0===i||i>32)&&Ch.throwArgumentError("invalid bytes type","type",e),jn(t).byteLength!==i&&Ch.throwArgumentError(`invalid value for ${e}`,"value",t),n?jn((t+Rh).substring(0,66)):t}if(r=e.match(Ih),r&&Array.isArray(t)){const n=r[1];parseInt(r[2]||String(t.length))!=t.length&&Ch.throwArgumentError(`invalid array length for ${e}`,"value",t);const i=[];return t.forEach((function(e){i.push(Oh(n,e,!0))})),Gn(i)}return Ch.throwArgumentError("invalid type","type",e)}function kh(e,t){e.length!=t.length&&Ch.throwArgumentError("wrong number of values; expected ${ types.length }","values",t);const n=[];return e.forEach((function(e,r){n.push(Oh(e,t[r]))})),Kn(Gn(n))}function Sh(e,t){return yi(kh(e,t))}function Nh(e,t){return Dl(kh(e,t))}var xh=Object.freeze({__proto__:null,keccak256:Sh,pack:kh,sha256:Nh});const Ph=new Pn("units/5.7.0"),Mh=["wei","kwei","mwei","gwei","szabo","finney","ether"];function Bh(e){const t=String(e).split(".");(t.length>2||!t[0].match(/^-?[0-9]*$/)||t[1]&&!t[1].match(/^[0-9]*$/)||"."===e||"-."===e)&&Ph.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 Dh(e,t){if("string"==typeof t){const e=Mh.indexOf(t);-1!==e&&(t=3*e)}return wr(e,null!=t?t:18)}function Fh(e,t){if("string"!=typeof e&&Ph.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Mh.indexOf(t);-1!==e&&(t=3*e)}return Ar(e,null!=t?t:18)}function Lh(e){return Dh(e,18)}function Uh(e){return Fh(e,18)}var qh=Object.freeze({__proto__:null,commify:Bh,formatEther:Lh,formatUnits:Dh,parseEther:Uh,parseUnits:Fh}),jh=Object.freeze({__proto__:null,AbiCoder:La,ConstructorFragment:ni,ErrorFragment:ai,EventFragment:$r,FormatTypes:Kr,Fragment:Qr,FunctionFragment:ri,HDNode:rd,Indexed:Ho,Interface:Vo,LogDescription:qo,Logger:Pn,ParamType:Jr,RLP:Ri,SigningKey:zc,get SupportedAlgorithm(){return xl},TransactionDescription:jo,get TransactionTypes(){return Jc},get UnicodeNormalizationForm(){return ua},Utf8ErrorFuncs:da,get Utf8ErrorReason(){return ca},_TypedDataEncoder:Fo,_fetchData:pf,_toEscapedUtf8String:ma,accessListify:il,arrayify:jn,base58:Nl,base64:za,checkProperties:xr,checkResultErrors:di,commify:Bh,computeAddress:el,computeHmac:Ll,computePublicKey:Vc,concat:Gn,deepCopy:Fr,defaultAbiCoder:Ua,defaultPath:nd,defineReadOnly:kr,dnsEncode:vo,entropyToMnemonic:od,fetchJson:hf,formatBytes32String:va,formatEther:Lh,formatUnits:Dh,getAccountPath:ud,getAddress:xi,getContractAddress:Bi,getCreate2Address:Di,getIcapAddress:Mi,getJsonWalletAddress:kd,getStatic:Sr,hashMessage:wo,hexConcat:Yn,hexDataLength:Xn,hexDataSlice:Jn,hexStripZeros:$n,hexValue:Qn,hexZeroPad:Zn,hexlify:Kn,id:qa,isAddress:Pi,isBytes:qn,isBytesLike:Ln,isHexString:Wn,isValidMnemonic:sd,isValidName:go,joinSignature:tr,keccak256:yi,mnemonicToEntropy:ad,mnemonicToSeed:id,namehash:bo,nameprep:Na,parseBytes32String:Ta,parseEther:Uh,parseTransaction:ll,parseUnits:Fh,poll:mf,randomBytes:pd,recoverAddress:tl,recoverPublicKey:Wc,resolveProperties:Nr,ripemd160:Bl,serializeTransaction:ul,sha256:Dl,sha512:Fl,shallowCopy:Pr,shuffled:hd,solidityKeccak256:Sh,solidityPack:kh,soliditySha256:Nh,splitSignature:er,stripZeros:Hn,toUtf8Bytes:pa,toUtf8CodePoints:ba,toUtf8String:ga,verifyMessage:Jd,verifyTypedData:Yd,zeroPad:zn});const Gh="ethers/5.7.2",Hh=new Pn(Gh);var zh=Object.freeze({__proto__:null,BaseContract:Rl,BigNumber:cr,Contract:Cl,ContractFactory:Ol,FixedNumber:_r,Signer:ns,VoidSigner:rs,Wallet:Xd,Wordlist:Gl,constants:aa,get errors(){return Nn},getDefaultProvider:wh,logger:Hh,providers:Ah,utils:jh,version:Gh,wordlists:Vl});try{const e=window;null==e._ethers&&(e._ethers=zh)}catch(e){}var Wh,Vh,Kh,Xh,Jh,Yh,Qh,$h=Object.freeze({__proto__:null,BaseContract:Rl,BigNumber:cr,Contract:Cl,ContractFactory:Ol,FixedNumber:_r,Signer:ns,VoidSigner:rs,Wallet:Xd,Wordlist:Gl,constants:aa,get errors(){return Nn},ethers:zh,getDefaultProvider:wh,logger:Hh,providers:Ah,utils:jh,version:Gh,wordlists:Vl});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,(Wh=e.ChainName||(e.ChainName={})).ETHEREUM="Ethereum",Wh.SEPOLIA="Sepolia",Wh.IMTBL_ZKEVM_TESTNET="Immutable zkEVM Test",Wh.IMTBL_ZKEVM_DEVNET="Immutable zkEVM Dev",Wh.IMTBL_ZKEVM_MAINNET="Immutable zkEVM",e.ChainSlug=void 0,(Vh=e.ChainSlug||(e.ChainSlug={})).ETHEREUM="ethereum",Vh.SEPOLIA="sepolia",Vh.IMTBL_ZKEVM_MAINNET="imtbl-zkevm-mainnet",Vh.IMTBL_ZKEVM_TESTNET="imtbl-zkevm-testnet",Vh.IMTBL_ZKEVM_DEVNET="imtbl-zkevm-devnet",function(e){e.TRANSAK="201811419111"}(Kh||(Kh={})),e.GasEstimateType=void 0,(Xh=e.GasEstimateType||(e.GasEstimateType={})).BRIDGE_TO_L2="BRIDGE_TO_L2",Xh.SWAP="SWAP",e.NetworkFilterTypes=void 0,(e.NetworkFilterTypes||(e.NetworkFilterTypes={})).ALL="all",e.TokenFilterTypes=void 0,(Jh=e.TokenFilterTypes||(e.TokenFilterTypes={})).ALL="all",Jh.SWAP="swap",Jh.BRIDGE="bridge",Jh.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"}(Yh||(Yh={})),e.WalletFilterTypes=void 0,(e.WalletFilterTypes||(e.WalletFilterTypes={})).ALL="all",e.WalletProviderName=void 0,(Qh=e.WalletProviderName||(e.WalletProviderName={})).PASSPORT="passport",Qh.METAMASK="metamask";const Zh={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1};var em,tm,nm,rm,im,am,om;e.CheckoutStatus=void 0,(em=e.CheckoutStatus||(e.CheckoutStatus={})).SUCCESS="SUCCESS",em.FAILED="FAILED",em.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",em.FULFILLMENTS_UNSETTLED="FULFILLMENTS_UNSETTLED",e.ItemType=void 0,function(e){e.NATIVE="NATIVE",e.ERC20="ERC20",e.ERC721="ERC721"}(e.ItemType||(e.ItemType={})),e.TransactionOrGasType=void 0,(tm=e.TransactionOrGasType||(e.TransactionOrGasType={})).TRANSACTION="TRANSACTION",tm.GAS="GAS",e.GasTokenType=void 0,(nm=e.GasTokenType||(e.GasTokenType={})).NATIVE="NATIVE",nm.ERC20="ERC20",e.RoutingOutcomeType=void 0,(rm=e.RoutingOutcomeType||(e.RoutingOutcomeType={})).ROUTES_FOUND="ROUTES_FOUND",rm.NO_ROUTES_FOUND="NO_ROUTES_FOUND",rm.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,(im=e.FundingStepType||(e.FundingStepType={})).BRIDGE="BRIDGE",im.SWAP="SWAP",im.ONRAMP="ONRAMP",e.ExchangeType=void 0,(e.ExchangeType||(e.ExchangeType={})).ONRAMP="onramp",e.CheckoutErrorType=void 0,(am=e.CheckoutErrorType||(e.CheckoutErrorType={})).MISSING_PARAMS="MISSING_PARAMS",am.WEB3_PROVIDER_ERROR="WEB3_PROVIDER_ERROR",am.PROVIDER_ERROR="PROVIDER_ERROR",am.DEFAULT_PROVIDER_ERROR="DEFAULT_PROVIDER_ERROR",am.CONNECT_PROVIDER_ERROR="CONNECT_PROVIDER_ERROR",am.GET_BALANCE_ERROR="GET_BALANCE_ERROR",am.GET_INDEXER_BALANCE_ERROR="GET_INDEXER_BALANCE_ERROR",am.GET_ERC20_INFO_ERROR="GET_ERC20_INFO_ERROR",am.GET_ERC20_BALANCE_ERROR="GET_ERC20_BALANCE_ERROR",am.GET_ERC721_BALANCE_ERROR="GET_ERC721_BALANCE_ERROR",am.GET_NETWORK_INFO_ERROR="GET_NETWORK_INFO_ERROR",am.METAMASK_PROVIDER_ERROR="METAMASK_PROVIDER_ERROR",am.CHAIN_NOT_SUPPORTED_ERROR="CHAIN_NOT_SUPPORTED_ERROR",am.PROVIDER_REQUEST_MISSING_ERROR="PROVIDER_REQUEST_MISSING_ERROR",am.PROVIDER_REQUEST_FAILED_ERROR="PROVIDER_REQUEST_FAILED_ERROR",am.USER_REJECTED_REQUEST_ERROR="USER_REJECTED_REQUEST_ERROR",am.TRANSACTION_FAILED="TRANSACTION_FAILED",am.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",am.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",am.INVALID_GAS_ESTIMATE_TYPE="INVALID_GAS_ESTIMATE_TYPE",am.UNSUPPORTED_TOKEN_TYPE_ERROR="UNSUPPORTED_TOKEN_TYPE_ERROR",am.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR="UNSUPPORTED_BALANCE_REQUIREMENT_ERROR",am.GET_ORDER_LISTING_ERROR="GET_ORDER_LISTING_ERROR",am.CANCEL_ORDER_LISTING_ERROR="CANCEL_ORDER_LISTING_ERROR",am.PREPARE_ORDER_LISTING_ERROR="PREPARE_ORDER_LISTING_ERROR",am.CREATE_ORDER_LISTING_ERROR="CREATE_ORDER_LISTING_ERROR",am.FULFILL_ORDER_LISTING_ERROR="FULFILL_ORDER_LISTING_ERROR",am.SWITCH_NETWORK_UNSUPPORTED="SWITCH_NETWORK_UNSUPPORTED",am.GET_ERC20_ALLOWANCE_ERROR="GET_ERC20_ALLOWANCE_ERROR",am.GET_ERC721_ALLOWANCE_ERROR="GET_ERC721_ALLOWANCE_ERROR",am.EXECUTE_APPROVAL_TRANSACTION_ERROR="EXECUTE_APPROVAL_TRANSACTION_ERROR",am.EXECUTE_FULFILLMENT_TRANSACTION_ERROR="EXECUTE_FULFILLMENT_TRANSACTION_ERROR",am.SIGN_MESSAGE_ERROR="SIGN_MESSAGE_ERROR",am.BRIDGE_GAS_ESTIMATE_ERROR="BRIDGE_GAS_ESTIMATE_ERROR",am.ORDER_FEE_ERROR="ORDER_FEE_ERROR",am.ITEM_REQUIREMENTS_ERROR="ITEM_REQUIREMENTS_ERROR",am.API_ERROR="API_ERROR",am.ORDER_EXPIRED_ERROR="ORDER_EXPIRED_ERROR",am.WIDGETS_SCRIPT_LOAD_ERROR="WIDGETS_SCRIPT_LOAD_ERROR";class sm 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"}(om||(om={}));const um=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 sm)throw new sm(r,t.type,{...t.data,innerErrorType:e.type,...e.data});throw new sm(r,t.type,{...t.data})}};async function cm(t){if(!t.provider?.request)throw new sm("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const n=await t.provider.request({method:Yh.GET_CHAINID,params:[]});return parseInt(n,16)}async function lm(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 dm(t,n){const{networkMap:r}=t;return um((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 cm(n);return{chainId:t,isSupported:Array.from(r.keys()).includes(t)}}}),{type:e.CheckoutErrorType.GET_NETWORK_INFO_ERROR})}async function fm(t,n,r){const{networkMap:i}=t;if(!(await lm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===r)))throw new sm(`Chain:${r} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(n.provider?.isPassport)throw new sm("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:Yh.SWITCH_NETWORK,params:[{chainId:e.get(n)?.chainIdHex}]})}(i,n,r)}catch(t){if(4902!==t.code)throw new sm("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:Yh.ADD_NETWORK,params:[i]})}}(i,n,r)}catch(t){throw new sm("User cancelled add network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR,{error:t})}}const a=new vh(n.provider);if((await a.getNetwork()).chainId!==r)throw new sm("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);return{network:await dm(t,a),provider:a}}const pm="development",hm=18,mm="native",ym={name:"IMX",symbol:"IMX",decimals:hm,address:mm},gm={[pm]:"https://api.dev.immutable.com",[mt.SANDBOX]:"https://api.sandbox.immutable.com",[mt.PRODUCTION]:"https://api.immutable.com"},bm={[pm]:"https://checkout-api.dev.immutable.com",[mt.SANDBOX]:"https://checkout-api.sandbox.immutable.com",[mt.PRODUCTION]:"https://checkout-api.immutable.com"},vm={[mt.SANDBOX]:"https://global-stg.transak.com",[mt.PRODUCTION]:"https://global.transak.com/"},Tm=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:ym}]]),wm=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:ym}]]),Am=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:ym}]]),Em={[e.ChainId.IMTBL_ZKEVM_TESTNET]:{url:"https://explorer.testnet.immutable.com",nativeToken:wm.get(e.ChainId.IMTBL_ZKEVM_TESTNET).nativeCurrency},[e.ChainId.IMTBL_ZKEVM_MAINNET]:{url:"https://explorer.immutable.com",nativeToken:Tm.get(e.ChainId.IMTBL_ZKEVM_MAINNET).nativeCurrency},[e.ChainId.SEPOLIA]:{url:"https://eth-sepolia.blockscout.com",nativeToken:wm.get(e.ChainId.SEPOLIA).nativeCurrency},[e.ChainId.ETHEREUM]:{url:"https://eth.blockscout.com/",nativeToken:Tm.get(e.ChainId.ETHEREUM).nativeCurrency}},_m=[{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"}],Im=[{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"}],Rm={maxFeePerGas:cr.from(102e9),maxPriorityFeePerGas:cr.from(101e9)},Cm=()=>"0.44.3";class Om{httpClient;isDevelopment;isProduction;configCache;tokensCache;version="v1";constructor(e,t){this.isDevelopment=t.isDevelopment,this.isProduction=t.isProduction,this.httpClient=e}getEndpoint=()=>this.isDevelopment?bm[pm]:this.isProduction?bm[mt.PRODUCTION]:bm[mt.SANDBOX];parseResponse(t){let n=t.data;if(t.data&&"object"!=typeof t.data)try{n=JSON.parse(t.data)}catch(t){throw new sm("Invalid configuration",e.CheckoutErrorType.API_ERROR,{error:t})}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 sm(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR,{error:t})}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 sm(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR,{error:t})}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 km extends Error{message;constructor(e){super(e),this.message=e}}const Sm=t=>t.isProduction?e.ChainId.ETHEREUM:e.ChainId.SEPOLIA,Nm=t=>t.isDevelopment?e.ChainId.IMTBL_ZKEVM_DEVNET:t.isProduction?e.ChainId.IMTBL_ZKEVM_MAINNET:e.ChainId.IMTBL_ZKEVM_TESTNET;class xm{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;environment;networkMap;constructor(e,t){if(!Object.values(mt).includes(e.baseConfig.environment))throw new km("Invalid checkout configuration of environment");var n;this.environment=e.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===mt.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?Am:n?Tm:wm),this.remote=new Om(t,{isDevelopment:this.isDevelopment,isProduction:this.isProduction})}}const Pm=(e="",t="")=>e.toLowerCase()===t.toLowerCase(),Mm=async(t,{type:n=e.TokenFilterTypes.ALL,chainId:r,exclude:i})=>{let a,o,s=[];const u=r??Sm(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[Kh.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}},Bm=e=>!e||Pm(e,mm);async function Dm(t,n){return await um((async()=>{const e=new Cl(n,JSON.stringify(_m),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 Fm{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=Em[this.chainId].url;const r=Em[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(Em[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=dt.InternalServerError,n="InternalServerError";return $e.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=dt.InternalServerError,n="InternalServerError";return $e.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}}var Lm;!function(e){e.ERC20="ERC-20"}(Lm||(Lm={}));const Um=(e,t,n)=>{e.isProduction||console.info(t,n)},qm=async(e,t,n)=>{const r=performance.now(),i=await n,a=performance.now();return Um(e,t,(a-r)/1e3),i},jm=async(t,n,r)=>await um((async()=>{const i=await dm(t,n);if(!i.isSupported)throw new sm(`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:Dh(a,i.nativeCurrency.decimals),token:i.nativeCurrency}}),{type:e.CheckoutErrorType.GET_BALANCE_ERROR});async function Gm(t,n,r){return await um((async()=>{const e=new Cl(r,JSON.stringify(_m),t);return Promise.all([Dm(t,r),e.balanceOf(n)]).then((([e,t])=>({balance:t,formattedBalance:Dh(t,e.decimals),token:{name:e.name,symbol:e.symbol,decimals:e.decimals,address:r}})))}),{type:e.CheckoutErrorType.GET_ERC20_BALANCE_ERROR})}const Hm=new Map,zm=async(t,n,r,i)=>{if(!r&&!n)throw new sm("both walletAddress and provider are missing. At least one must be provided.",e.CheckoutErrorType.MISSING_PARAMS);if(!t.networkMap.get(i))throw new sm(`chain ID ${i} not supported by the environment`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);const{tokens:a}=await Mm(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&&Fm.isChainSupported(i)){const r=Sm(t)===i;return s||(s=await(n?.getSigner().getAddress())),await qm(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||mm]:e}))));let s=Hm.get(r);if(!s){const e=t.remote.getHttpClient();s=new Fm(e,r),Hm.set(r,s)}const u=[],c=Lm.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!==dt.NotFound)throw new sm(t.message||"InternalServerError | getTokensByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,{error:t})}})(s),(async t=>{try{const e=await t.getNativeTokenByWalletAddress({walletAddress:n});e.token.address||=mm,u.push(e)}catch(t){if(t?.code!==dt.NotFound)throw new sm(t.message||"InternalServerError | getNativeTokenByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,{error:t})}})(s)]);const l=[];return u.forEach((e=>{if(a&&!o[e.token.address])return;const t=e.token||{},n=cr.from(e.value);let r=parseInt(t.decimals,10);Number.isNaN(r)&&(r=hm);const i={...t,decimals:r},s=Dh(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 sm("indexer is disabled for this chain, you must provide a provider.",e.CheckoutErrorType.MISSING_PARAMS);return s||=await n.getSigner().getAddress(),await qm(t,`Time to fetch balances using RPC for ${i}`,(async(e,t,n,r)=>{const i=[];return r.forEach((r=>{!r.address||Pm(r.address,mm)?i.push(jm(e,t,n)):i.push(Gm(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&&!Pm(n.address,mm)||(t.value.token.address=mm),t.value}))}})(t,n,s,a))};var Wm=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))}))},Vm=bt(Wm);async function Km(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 sm("Passport not provided",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR);r=new vh(n.connectEvm());break;case e.WalletProviderName.METAMASK:r=await async function(){const t=await um((async()=>await Vm()),{type:e.CheckoutErrorType.METAMASK_PROVIDER_ERROR});if(!t||!t.request)throw new sm("No MetaMask provider installed.",e.CheckoutErrorType.METAMASK_PROVIDER_ERROR);return new vh(t)}();break;default:throw console.error("The WalletProviderName that was provided is not supported"),new sm("Provider not supported",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR)}return{provider:r,walletProviderName:t}}function Xm(e){return!(!e||!e.provider?.request||"function"!=typeof e.provider.request)}async function Jm(t,n,r){return um((async()=>{if(n.provider?.isPassport)return n;if(!Xm(n))throw new sm("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const i={...Zh,...r},a=await cm(n);let o=n.network?.chainId;try{o=n.network?.chainId,o||(o=(await n.getNetwork()).chainId)}catch(t){throw new sm("Unable to detect the web3Provider network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR,{error:t})}if(o!==a&&!i.allowMistmatchedChainId)throw new sm("Your wallet has changed network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);if(!(await lm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===a))&&!i.allowUnsupportedProvider)throw new sm("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 Ym=async(t,n)=>{try{const e=t.getSigner(),r=(e=>{const t=e;return t.maxFeePerGas=Rm.maxFeePerGas,t.maxPriorityFeePerGas=Rm.maxPriorityFeePerGas,t})(n);return{transactionResponse:await e.sendTransaction(r)}}catch(t){if(t.code===Nn.INSUFFICIENT_FUNDS)throw new sm(t.message,e.CheckoutErrorType.INSUFFICIENT_FUNDS,{error:t});if(t.code===Nn.ACTION_REJECTED)throw new sm(t.message,e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR,{error:t});if(t.code===Nn.UNPREDICTABLE_GAS_LIMIT)throw new sm(t.message,e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT,{error:t});throw new sm(t.message,e.CheckoutErrorType.TRANSACTION_FAILED,{error:t})}};function Qm(e,t){return function(){return e.apply(t,arguments)}}const{toString:$m}=Object.prototype,{getPrototypeOf:Zm}=Object,ey=(e=>t=>{const n=$m.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),ty=e=>(e=e.toLowerCase(),t=>ey(t)===e),ny=e=>t=>typeof t===e,{isArray:ry}=Array,iy=ny("undefined");const ay=ty("ArrayBuffer");const oy=ny("string"),sy=ny("function"),uy=ny("number"),cy=e=>null!==e&&"object"==typeof e,ly=e=>{if("object"!==ey(e))return!1;const t=Zm(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},dy=ty("Date"),fy=ty("File"),py=ty("Blob"),hy=ty("FileList"),my=ty("URLSearchParams");function yy(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,i;if("object"!=typeof e&&(e=[e]),ry(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 gy(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 by="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,vy=e=>!iy(e)&&e!==by;const Ty=(e=>t=>e&&t instanceof e)("undefined"!=typeof Uint8Array&&Zm(Uint8Array)),wy=ty("HTMLFormElement"),Ay=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ey=ty("RegExp"),_y=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};yy(n,((n,i)=>{let a;!1!==(a=t(n,i,e))&&(r[i]=a||n)})),Object.defineProperties(e,r)},Iy="abcdefghijklmnopqrstuvwxyz",Ry="0123456789",Cy={DIGIT:Ry,ALPHA:Iy,ALPHA_DIGIT:Iy+Iy.toUpperCase()+Ry};const Oy=ty("AsyncFunction");var ky={isArray:ry,isArrayBuffer:ay,isBuffer:function(e){return null!==e&&!iy(e)&&null!==e.constructor&&!iy(e.constructor)&&sy(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||sy(e.append)&&("formdata"===(t=ey(e))||"object"===t&&sy(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&ay(e.buffer),t},isString:oy,isNumber:uy,isBoolean:e=>!0===e||!1===e,isObject:cy,isPlainObject:ly,isUndefined:iy,isDate:dy,isFile:fy,isBlob:py,isRegExp:Ey,isFunction:sy,isStream:e=>cy(e)&&sy(e.pipe),isURLSearchParams:my,isTypedArray:Ty,isFileList:hy,forEach:yy,merge:function e(){const{caseless:t}=vy(this)&&this||{},n={},r=(r,i)=>{const a=t&&gy(n,i)||i;ly(n[a])&&ly(r)?n[a]=e(n[a],r):ly(r)?n[a]=e({},r):ry(r)?n[a]=r.slice():n[a]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&yy(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(yy(t,((t,r)=>{n&&sy(t)?e[r]=Qm(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&&Zm(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:ey,kindOfTest:ty,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(ry(e))return e;let t=e.length;if(!uy(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:wy,hasOwnProperty:Ay,hasOwnProp:Ay,reduceDescriptors:_y,freezeMethods:e=>{_y(e,((t,n)=>{if(sy(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];sy(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 ry(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:gy,global:by,isContextDefined:vy,ALPHABET:Cy,generateString:(e=16,t=Cy.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&sy(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(cy(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const i=ry(e)?[]:{};return yy(e,((e,t)=>{const a=n(e,r+1);!iy(a)&&(i[t]=a)})),t[r]=void 0,i}}return e};return n(e,0)},isAsyncFn:Oy,isThenable:e=>e&&(cy(e)||sy(e))&&sy(e.then)&&sy(e.catch)};function Sy(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)}ky.inherits(Sy,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:ky.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Ny=Sy.prototype,xy={};["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=>{xy[e]={value:e}})),Object.defineProperties(Sy,xy),Object.defineProperty(Ny,"isAxiosError",{value:!0}),Sy.from=(e,t,n,r,i,a)=>{const o=Object.create(Ny);return ky.toFlatObject(e,o,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),Sy.call(o,e.message,t,n,r,i),o.cause=e,o.name=e.name,a&&Object.assign(o,a),o};function Py(e){return ky.isPlainObject(e)||ky.isArray(e)}function My(e){return ky.endsWith(e,"[]")?e.slice(0,-2):e}function By(e,t,n){return e?e.concat(t).map((function(e,t){return e=My(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const Dy=ky.toFlatObject(ky,{},null,(function(e){return/^is[A-Z]/.test(e)}));function Fy(e,t,n){if(!ky.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=ky.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ky.isUndefined(t[e])}))).metaTokens,i=n.visitor||c,a=n.dots,o=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&ky.isSpecCompliantForm(t);if(!ky.isFunction(i))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(ky.isDate(e))return e.toISOString();if(!s&&ky.isBlob(e))throw new Sy("Blob is not supported. Use a Buffer instead.");return ky.isArrayBuffer(e)||ky.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(ky.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(ky.isArray(e)&&function(e){return ky.isArray(e)&&!e.some(Py)}(e)||(ky.isFileList(e)||ky.endsWith(n,"[]"))&&(s=ky.toArray(e)))return n=My(n),s.forEach((function(e,r){!ky.isUndefined(e)&&null!==e&&t.append(!0===o?By([n],r,a):null===o?n:n+"[]",u(e))})),!1;return!!Py(e)||(t.append(By(i,n,a),u(e)),!1)}const l=[],d=Object.assign(Dy,{defaultVisitor:c,convertValue:u,isVisitable:Py});if(!ky.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!ky.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),ky.forEach(n,(function(n,a){!0===(!(ky.isUndefined(n)||null===n)&&i.call(t,n,ky.isString(a)?a.trim():a,r,d))&&e(n,r?r.concat(a):[a])})),l.pop()}}(e),t}function Ly(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Uy(e,t){this._pairs=[],e&&Fy(e,this,t)}const qy=Uy.prototype;function jy(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Gy(e,t,n){if(!t)return e;const r=n&&n.encode||jy,i=n&&n.serialize;let a;if(a=i?i(t,n):ky.isURLSearchParams(t)?t.toString():new Uy(t,n).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}qy.append=function(e,t){this._pairs.push([e,t])},qy.toString=function(e){const t=e?function(t){return e.call(this,t,Ly)}:Ly;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Hy=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){ky.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},zy={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Wy={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Uy,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Vy="undefined"!=typeof window&&"undefined"!=typeof document,Ky=(e=>Vy&&["ReactNative","NativeScript","NS"].indexOf(e)<0)("undefined"!=typeof navigator&&navigator.product),Xy="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts;var Jy={...Object.freeze({__proto__:null,hasBrowserEnv:Vy,hasStandardBrowserEnv:Ky,hasStandardBrowserWebWorkerEnv:Xy}),...Wy};function Yy(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&&ky.isArray(r)?r.length:a,s)return ky.hasOwnProp(r,a)?r[a]=[r[a],n]:r[a]=n,!o;r[a]&&ky.isObject(r[a])||(r[a]=[]);return t(e,n,r[a],i)&&ky.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(ky.isFormData(e)&&ky.isFunction(e.entries)){const n={};return ky.forEachEntry(e,((e,r)=>{t(function(e){return ky.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const Qy={transitional:zy,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,i=ky.isObject(e);i&&ky.isHTMLForm(e)&&(e=new FormData(e));if(ky.isFormData(e))return r&&r?JSON.stringify(Yy(e)):e;if(ky.isArrayBuffer(e)||ky.isBuffer(e)||ky.isStream(e)||ky.isFile(e)||ky.isBlob(e))return e;if(ky.isArrayBufferView(e))return e.buffer;if(ky.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 Fy(e,new Jy.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return Jy.isNode&&ky.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((a=ky.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return Fy(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||r?(t.setContentType("application/json",!1),function(e,t,n){if(ky.isString(e))try{return(t||JSON.parse)(e),ky.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Qy.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&ky.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 Sy.from(e,Sy.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:Jy.classes.FormData,Blob:Jy.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ky.forEach(["delete","get","head","post","put","patch"],(e=>{Qy.headers[e]={}}));var $y=Qy;const Zy=ky.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 eg=Symbol("internals");function tg(e){return e&&String(e).trim().toLowerCase()}function ng(e){return!1===e||null==e?e:ky.isArray(e)?e.map(ng):String(e)}function rg(e,t,n,r,i){return ky.isFunction(r)?r.call(this,t,n):(i&&(t=n),ky.isString(t)?ky.isString(r)?-1!==t.indexOf(r):ky.isRegExp(r)?r.test(t):void 0:void 0)}class ig{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function i(e,t,n){const i=tg(t);if(!i)throw new Error("header name must be a non-empty string");const a=ky.findKey(r,i);(!a||void 0===r[a]||!0===n||void 0===n&&!1!==r[a])&&(r[a||t]=ng(e))}const a=(e,t)=>ky.forEach(e,((e,n)=>i(e,n,t)));return ky.isPlainObject(e)||e instanceof this.constructor?a(e,t):ky.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]&&Zy[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=tg(e)){const n=ky.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(ky.isFunction(t))return t.call(this,e,n);if(ky.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=tg(e)){const n=ky.findKey(this,e);return!(!n||void 0===this[n]||t&&!rg(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function i(e){if(e=tg(e)){const i=ky.findKey(n,e);!i||t&&!rg(0,n[i],i,t)||(delete n[i],r=!0)}}return ky.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&&!rg(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}normalize(e){const t=this,n={};return ky.forEach(this,((r,i)=>{const a=ky.findKey(n,i);if(a)return t[a]=ng(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]=ng(r),n[o]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return ky.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&ky.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[eg]=this[eg]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=tg(e);t[r]||(!function(e,t){const n=ky.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 ky.isArray(e)?e.forEach(r):r(e),this}}ig.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ky.reduceDescriptors(ig.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),ky.freezeMethods(ig);var ag=ig;function og(e,t){const n=this||$y,r=t||n,i=ag.from(r.headers);let a=r.data;return ky.forEach(e,(function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)})),i.normalize(),a}function sg(e){return!(!e||!e.__CANCEL__)}function ug(e,t,n){Sy.call(this,null==e?"canceled":e,Sy.ERR_CANCELED,t,n),this.name="CanceledError"}ky.inherits(ug,Sy,{__CANCEL__:!0});var cg=Jy.hasStandardBrowserEnv?{write(e,t,n,r,i,a){const o=[e+"="+encodeURIComponent(t)];ky.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),ky.isString(r)&&o.push("path="+r),ky.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 lg(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 dg=Jy.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=ky.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};function fg(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 pg="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let r=e.data;const i=ag.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(ky.isFormData(r))if(Jy.hasStandardBrowserEnv||Jy.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=lg(e.baseURL,e.url);function f(){if(!l)return;const r=ag.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new Sy("Request failed with status code "+n.status,[Sy.ERR_BAD_REQUEST,Sy.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(),Gy(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 Sy("Request aborted",Sy.ECONNABORTED,e,l)),l=null)},l.onerror=function(){n(new Sy("Network Error",Sy.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||zy;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new Sy(t,r.clarifyTimeoutError?Sy.ETIMEDOUT:Sy.ECONNABORTED,e,l)),l=null},Jy.hasStandardBrowserEnv&&(u&&ky.isFunction(u)&&(u=u(e)),u||!1!==u&&dg(d))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&cg.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===r&&i.setContentType(null),"setRequestHeader"in l&&ky.forEach(i.toJSON(),(function(e,t){l.setRequestHeader(t,e)})),ky.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),s&&"json"!==s&&(l.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",fg(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",fg(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=t=>{l&&(n(!t||t.type?new ug(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===Jy.protocols.indexOf(p)?n(new Sy("Unsupported protocol "+p+":",Sy.ERR_BAD_REQUEST,e)):l.send(r||null)}))};const hg={http:null,xhr:pg};ky.forEach(hg,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const mg=e=>`- ${e}`,yg=e=>ky.isFunction(e)||null===e||!1===e;var gg=e=>{e=ky.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,!yg(n)&&(r=hg[(t=String(n)).toLowerCase()],void 0===r))throw new Sy(`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 Sy("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(mg).join("\n"):" "+mg(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function bg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ug(null,e)}function vg(e){bg(e),e.headers=ag.from(e.headers),e.data=og.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return gg(e.adapter||$y.adapter)(e).then((function(t){return bg(e),t.data=og.call(e,e.transformResponse,t),t.headers=ag.from(t.headers),t}),(function(t){return sg(t)||(bg(e),t&&t.response&&(t.response.data=og.call(e,e.transformResponse,t.response),t.response.headers=ag.from(t.response.headers))),Promise.reject(t)}))}const Tg=e=>e instanceof ag?e.toJSON():e;function wg(e,t){t=t||{};const n={};function r(e,t,n){return ky.isPlainObject(e)&&ky.isPlainObject(t)?ky.merge.call({caseless:n},e,t):ky.isPlainObject(t)?ky.merge({},t):ky.isArray(t)?t.slice():t}function i(e,t,n){return ky.isUndefined(t)?ky.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function a(e,t){if(!ky.isUndefined(t))return r(void 0,t)}function o(e,t){return ky.isUndefined(t)?ky.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(Tg(e),Tg(t),!0)};return ky.forEach(Object.keys(Object.assign({},e,t)),(function(r){const a=u[r]||i,o=a(e[r],t[r],r);ky.isUndefined(o)&&a!==s||(n[r]=o)})),n}const Ag="1.6.5",Eg={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Eg[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const _g={};Eg.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 Sy(r(i," has been removed"+(t?" in "+t:"")),Sy.ERR_DEPRECATED);return t&&!_g[i]&&(_g[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 Ig={assertOptions:function(e,t,n){if("object"!=typeof e)throw new Sy("options must be an object",Sy.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 Sy("option "+a+" must be "+n,Sy.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new Sy("Unknown option "+a,Sy.ERR_BAD_OPTION)}},validators:Eg};const Rg=Ig.validators;class Cg{constructor(e){this.defaults=e,this.interceptors={request:new Hy,response:new Hy}}request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=wg(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:i}=t;void 0!==n&&Ig.assertOptions(n,{silentJSONParsing:Rg.transitional(Rg.boolean),forcedJSONParsing:Rg.transitional(Rg.boolean),clarifyTimeoutError:Rg.transitional(Rg.boolean)},!1),null!=r&&(ky.isFunction(r)?t.paramsSerializer={serialize:r}:Ig.assertOptions(r,{encode:Rg.function,serialize:Rg.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let a=i&&ky.merge(i.common,i[t.method]);i&&ky.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete i[e]})),t.headers=ag.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=[vg.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=vg.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 Gy(lg((e=wg(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}ky.forEach(["delete","get","head","options"],(function(e){Cg.prototype[e]=function(t,n){return this.request(wg(n||{},{method:e,url:t,data:(n||{}).data}))}})),ky.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,i){return this.request(wg(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Cg.prototype[e]=t(),Cg.prototype[e+"Form"]=t(!0)}));var Og=Cg;class kg{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 ug(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 kg((function(t){e=t})),cancel:e}}}var Sg=kg;const Ng={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(Ng).forEach((([e,t])=>{Ng[t]=e}));var xg=Ng;const Pg=function e(t){const n=new Og(t),r=Qm(Og.prototype.request,n);return ky.extend(r,Og.prototype,n,{allOwnKeys:!0}),ky.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(wg(t,n))},r}($y);Pg.Axios=Og,Pg.CanceledError=ug,Pg.CancelToken=Sg,Pg.isCancel=sg,Pg.VERSION=Ag,Pg.toFormData=Fy,Pg.AxiosError=Sy,Pg.Cancel=Pg.CanceledError,Pg.all=function(e){return Promise.all(e)},Pg.spread=function(e){return function(t){return e.apply(null,t)}},Pg.isAxiosError=function(e){return ky.isObject(e)&&!0===e.isAxiosError},Pg.mergeConfig=wg,Pg.AxiosHeaders=ag,Pg.formToJSON=e=>Yy(ky.isHTMLForm(e)?new FormData(e):e),Pg.getAdapter=gg,Pg.HttpStatusCode=xg,Pg.default=Pg;var Mg=Pg,Bg="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Dg(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Fg(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 Lg={exports:{}},Ug=Fg(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:Ug.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,Bg)}(Lg);var qg=Dg(Lg.exports);let jg=!1,Gg=!1;const Hg={debug:1,default:2,info:2,warning:3,error:4,off:5};let zg=Hg.default,Wg=null;const Vg=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 Kg,Xg;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(Kg||(Kg={})),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"}(Xg||(Xg={}));const Jg="0123456789abcdef";let Yg=class e{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==Hg[n]&&this.throwArgumentError("invalid log level name","logLevel",e),zg>Hg[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(Gg)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+=Jg[t[e]>>4],n+=Jg[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 Xg.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 Xg.CALL_EXCEPTION:case Xg.INSUFFICIENT_FUNDS:case Xg.MISSING_NEW:case Xg.NONCE_EXPIRED:case Xg.REPLACEMENT_UNDERPRICED:case Xg.TRANSACTION_REPLACED:case Xg.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){Vg&&this.throwError("platform missing String.prototype.normalize",e.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Vg})}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 Wg||(Wg=new e("logger/5.7.0")),Wg}static setCensorship(t,n){if(!t&&n&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),jg){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}Gg=!!t,jg=!!n}static setLogLevel(t){const n=Hg[t.toLowerCase()];null!=n?zg=n:e.globalLogger().warn("invalid log level - "+t)}static from(t){return new e(t)}};Yg.errors=Xg,Yg.levels=Kg;const Qg=new Yg("bytes/5.7.0");function $g(e){return!!e.toHexString}function Zg(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return Zg(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function eb(e){return"number"==typeof e&&e==e&&e%1==0}function tb(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!eb(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!eb(n)||n<0||n>=256)return!1}return!0}function nb(e,t){if(t||(t={}),"number"==typeof e){Qg.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),Zg(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),$g(e)&&(e=e.toHexString()),ib(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":Qg.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 Zg(new Uint8Array(r))}return tb(e)?Zg(new Uint8Array(e)):Qg.throwArgumentError("invalid arrayify value","value",e)}function rb(e){const t=e.map((e=>nb(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),Zg(r)}function ib(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}const ab="0123456789abcdef";function ob(e,t){if(t||(t={}),"number"==typeof e){Qg.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=ab[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),$g(e))return e.toHexString();if(ib(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Qg.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(tb(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=ab[(240&r)>>4]+ab[15&r]}return t}return Qg.throwArgumentError("invalid hexlify value","value",e)}function sb(e,t,n){return"string"!=typeof e?e=ob(e):(!ib(e)||e.length%2)&&Qg.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function ub(e,t){for("string"!=typeof e?e=ob(e):ib(e)||Qg.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Qg.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}var cb=qg.BN;const lb=new Yg("bignumber/5.7.0"),db={},fb=9007199254740991;let pb=!1;class hb{constructor(e,t){e!==db&&lb.throwError("cannot call constructor directly; use BigNumber.from",Yg.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return yb(gb(this).fromTwos(e))}toTwos(e){return yb(gb(this).toTwos(e))}abs(){return"-"===this._hex[0]?hb.from(this._hex.substring(1)):this}add(e){return yb(gb(this).add(gb(e)))}sub(e){return yb(gb(this).sub(gb(e)))}div(e){return hb.from(e).isZero()&&bb("division-by-zero","div"),yb(gb(this).div(gb(e)))}mul(e){return yb(gb(this).mul(gb(e)))}mod(e){const t=gb(e);return t.isNeg()&&bb("division-by-zero","mod"),yb(gb(this).umod(t))}pow(e){const t=gb(e);return t.isNeg()&&bb("negative-power","pow"),yb(gb(this).pow(t))}and(e){const t=gb(e);return(this.isNegative()||t.isNeg())&&bb("unbound-bitwise-result","and"),yb(gb(this).and(t))}or(e){const t=gb(e);return(this.isNegative()||t.isNeg())&&bb("unbound-bitwise-result","or"),yb(gb(this).or(t))}xor(e){const t=gb(e);return(this.isNegative()||t.isNeg())&&bb("unbound-bitwise-result","xor"),yb(gb(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&bb("negative-width","mask"),yb(gb(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&bb("negative-width","shl"),yb(gb(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&bb("negative-width","shr"),yb(gb(this).shrn(e))}eq(e){return gb(this).eq(gb(e))}lt(e){return gb(this).lt(gb(e))}lte(e){return gb(this).lte(gb(e))}gt(e){return gb(this).gt(gb(e))}gte(e){return gb(this).gte(gb(e))}isNegative(){return"-"===this._hex[0]}isZero(){return gb(this).isZero()}toNumber(){try{return gb(this).toNumber()}catch(e){bb("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return lb.throwError("this platform does not support BigInt",Yg.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?pb||(pb=!0,lb.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?lb.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",Yg.errors.UNEXPECTED_ARGUMENT,{}):lb.throwError("BigNumber.toString does not accept parameters",Yg.errors.UNEXPECTED_ARGUMENT,{})),gb(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof hb)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new hb(db,mb(e)):e.match(/^-?[0-9]+$/)?new hb(db,mb(new cb(e))):lb.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&bb("underflow","BigNumber.from",e),(e>=fb||e<=-fb)&&bb("overflow","BigNumber.from",e),hb.from(String(e));const t=e;if("bigint"==typeof t)return hb.from(t.toString());if(tb(t))return hb.from(ob(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return hb.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(ib(e)||"-"===e[0]&&ib(e.substring(1))))return hb.from(e)}return lb.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function mb(e){if("string"!=typeof e)return mb(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&lb.throwArgumentError("invalid hex","value",e),"0x00"===(e=mb(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 yb(e){return hb.from(mb(e))}function gb(e){const t=hb.from(e).toHexString();return"-"===t[0]?new cb("-"+t.substring(3),16):new cb(t.substring(2),16)}function bb(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),lb.throwError(e,Yg.errors.NUMERIC_FAULT,r)}var vb=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 Tb=new Yg("properties/5.7.0");function wb(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function Ab(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 Eb(e){return vb(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 _b(e){const t={};for(const n in e)t[n]=e[n];return t}const Ib={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Rb(e){if(null==e||Ib[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(!Rb(r))return!1}return!0}return Tb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Cb(e){if(Rb(e))return e;if(Array.isArray(e))return Object.freeze(e.map((e=>Ob(e))));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&wb(t,n,Ob(r))}return t}return Tb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Ob(e){return Cb(e)}class kb{constructor(e){for(const t in e)this[t]=Ob(e[t])}}const Sb="abi/5.7.0",Nb=new Yg(Sb),xb={};let Pb={calldata:!0,memory:!0,storage:!0},Mb={calldata:!0,memory:!0};function Bb(e,t){if("bytes"===e||"string"===e){if(Pb[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Mb[t])return!0;return(Pb[t]||"payable"===t)&&Nb.throwArgumentError("invalid modifier","name",t),!1}function Db(e,t){for(let n in t)wb(e,n,t[n])}const Fb=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),Lb=new RegExp(/^(.*)\[([0-9]*)\]$/);class Ub{constructor(e,t){e!==xb&&Nb.throwError("use fromString",Yg.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),Db(this,t);let n=this.type.match(Lb);Db(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:Ub.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=Fb.sighash),Fb[e]||Nb.throwArgumentError("invalid format type","format",e),e===Fb.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!==Fb.sighash&&(t+=this.type),t+="("+this.components.map((t=>t.format(e))).join(e===Fb.full?", ":",")+")"):t+=this.type,e!==Fb.sighash&&(!0===this.indexed&&(t+=" indexed"),e===Fb.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?Ub.fromString(e,t):Ub.fromObject(e)}static fromObject(e){return Ub.isParamType(e)?e:new Ub(xb,{name:e.name||null,type:Yb(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(Ub.fromObject):null})}static fromString(e,t){return n=function(e,t){let n=e;function r(t){Nb.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=Yb(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=""),Bb(o.type,o.name)&&(o.name=""),o.type=Yb(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=""),Bb(o.type,o.name)&&(o.name=""),o.type=Yb(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=Yb(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=""):Bb(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&&Nb.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=""):Bb(o.type,o.name)&&(o.name=""),a.type=Yb(a.type),a}(e,!!t),Ub.fromObject({name:n.name,type:n.type,indexed:n.indexed,components:n.components});var n}static isParamType(e){return!(null==e||!e._isParamType)}}function qb(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&&Nb.throwArgumentError("unbalanced parenthesis","value",e)))}n&&t.push(n);return t}(e).map((e=>Ub.fromString(e,t)))}class jb{constructor(e,t){e!==xb&&Nb.throwError("use a static from method",Yg.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),Db(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return jb.isFragment(e)?e:"string"==typeof e?jb.fromString(e):jb.fromObject(e)}static fromObject(e){if(jb.isFragment(e))return e;switch(e.type){case"function":return Kb.fromObject(e);case"event":return Gb.fromObject(e);case"constructor":return Vb.fromObject(e);case"error":return Jb.fromObject(e);case"fallback":case"receive":return null}return Nb.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]?Gb.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?Kb.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?Vb.fromString(e.trim()):"error"===e.split(" ")[0]?Jb.fromString(e.substring(5).trim()):Nb.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class Gb extends jb{format(e){if(e||(e=Fb.sighash),Fb[e]||Nb.throwArgumentError("invalid format type","format",e),e===Fb.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!==Fb.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Fb.full?", ":",")+") ",e!==Fb.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?Gb.fromString(e):Gb.fromObject(e)}static fromObject(e){if(Gb.isEventFragment(e))return e;"event"!==e.type&&Nb.throwArgumentError("invalid event object","value",e);const t={name:$b(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(Ub.fromObject):[],type:"event"};return new Gb(xb,t)}static fromString(e){let t=e.match(Zb);t||Nb.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:Nb.warn("unknown modifier: "+e)}})),Gb.fromObject({name:t[1].trim(),anonymous:n,inputs:qb(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function Hb(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&Nb.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||Nb.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=hb.from(n[1]),n[0]):e}function zb(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 Wb(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&&Nb.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Nb.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||Nb.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&&Nb.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&&Nb.throwArgumentError("unable to determine stateMutability","value",e),t}class Vb extends jb{format(e){if(e||(e=Fb.sighash),Fb[e]||Nb.throwArgumentError("invalid format type","format",e),e===Fb.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===Fb.sighash&&Nb.throwError("cannot format a constructor for sighash",Yg.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map((t=>t.format(e))).join(e===Fb.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?Vb.fromString(e):Vb.fromObject(e)}static fromObject(e){if(Vb.isConstructorFragment(e))return e;"constructor"!==e.type&&Nb.throwArgumentError("invalid constructor object","value",e);let t=Wb(e);t.constant&&Nb.throwArgumentError("constructor cannot be constant","value",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(Ub.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?hb.from(e.gas):null};return new Vb(xb,n)}static fromString(e){let t={type:"constructor"},n=(e=Hb(e,t)).match(Zb);return n&&"constructor"===n[1].trim()||Nb.throwArgumentError("invalid constructor string","value",e),t.inputs=qb(n[2].trim(),!1),zb(n[3].trim(),t),Vb.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class Kb extends Vb{format(e){if(e||(e=Fb.sighash),Fb[e]||Nb.throwArgumentError("invalid format type","format",e),e===Fb.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!==Fb.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Fb.full?", ":",")+") ",e!==Fb.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?Kb.fromString(e):Kb.fromObject(e)}static fromObject(e){if(Kb.isFunctionFragment(e))return e;"function"!==e.type&&Nb.throwArgumentError("invalid function object","value",e);let t=Wb(e);const n={type:e.type,name:$b(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(Ub.fromObject):[],outputs:e.outputs?e.outputs.map(Ub.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?hb.from(e.gas):null};return new Kb(xb,n)}static fromString(e){let t={type:"function"},n=(e=Hb(e,t)).split(" returns ");n.length>2&&Nb.throwArgumentError("invalid function string","value",e);let r=n[0].match(Zb);if(r||Nb.throwArgumentError("invalid function signature","value",e),t.name=r[1].trim(),t.name&&$b(t.name),t.inputs=qb(r[2],!1),zb(r[3].trim(),t),n.length>1){let r=n[1].match(Zb);""==r[1].trim()&&""==r[3].trim()||Nb.throwArgumentError("unexpected tokens","value",e),t.outputs=qb(r[2],!1)}else t.outputs=[];return Kb.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function Xb(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Nb.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class Jb extends jb{format(e){if(e||(e=Fb.sighash),Fb[e]||Nb.throwArgumentError("invalid format type","format",e),e===Fb.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==Fb.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Fb.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?Jb.fromString(e):Jb.fromObject(e)}static fromObject(e){if(Jb.isErrorFragment(e))return e;"error"!==e.type&&Nb.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:$b(e.name),inputs:e.inputs?e.inputs.map(Ub.fromObject):[]};return Xb(new Jb(xb,t))}static fromString(e){let t={type:"error"},n=e.match(Zb);return n||Nb.throwArgumentError("invalid error signature","value",e),t.name=n[1].trim(),t.name&&$b(t.name),t.inputs=qb(n[2],!1),Xb(Jb.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function Yb(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const Qb=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function $b(e){return e&&e.match(Qb)||Nb.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const Zb=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");const ev=new Yg(Sb);class tv{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){ev.throwArgumentError(e,this.localName,t)}}class nv{constructor(e){wb(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+=ob(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(rb(e._data))}writeBytes(e){let t=nb(e);const n=t.length%this.wordSize;return n&&(t=rb([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=nb(hb.from(e));return t.length>this.wordSize&&ev.throwError("value out-of-bounds",Yg.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=rb([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 rv{constructor(e,t,n,r){wb(this,"_data",nb(e)),wb(this,"wordSize",t||32),wb(this,"_coerceFunc",n),wb(this,"allowLoose",r),this._offset=0}get data(){return ob(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):rv.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:ev.throwError("data out-of-bounds",Yg.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(e){return new rv(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 hb.from(this.readBytes(this.wordSize))}}var iv={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=gt: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[_]]}()}(hi);var mi=bt(hi.exports);function yi(e){return"0x"+mi.keccak_256(jn(e))}var gi=Object.freeze({__proto__:null,keccak256:yi});const bi=new Pn("rlp/5.7.0");function vi(e){const t=[];for(;e;)t.unshift(255&e),e>>=8;return t}function Ti(e,t,n){let r=0;for(let i=0;i<n;i++)r=256*r+e[t+i];return r}function wi(e){if(Array.isArray(e)){let t=[];if(e.forEach((function(e){t=t.concat(wi(e))})),t.length<=55)return t.unshift(192+t.length),t;const n=vi(t.length);return n.unshift(247+n.length),n.concat(t)}Ln(e)||bi.throwArgumentError("RLP object must be BytesLike","object",e);const t=Array.prototype.slice.call(jn(e));if(1===t.length&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const n=vi(t.length);return n.unshift(183+n.length),n.concat(t)}function Ai(e){return Kn(wi(e))}function Ei(e,t,n,r){const i=[];for(;n<t+1+r;){const a=_i(e,n);i.push(a.result),(n+=a.consumed)>t+1+r&&bi.throwError("child data too short",Pn.errors.BUFFER_OVERRUN,{})}return{consumed:1+r,result:i}}function _i(e,t){if(0===e.length&&bi.throwError("data too short",Pn.errors.BUFFER_OVERRUN,{}),e[t]>=248){const n=e[t]-247;t+1+n>e.length&&bi.throwError("data short segment too short",Pn.errors.BUFFER_OVERRUN,{});const r=Ti(e,t+1,n);return t+1+n+r>e.length&&bi.throwError("data long segment too short",Pn.errors.BUFFER_OVERRUN,{}),Ei(e,t,t+1+n,n+r)}if(e[t]>=192){const n=e[t]-192;return t+1+n>e.length&&bi.throwError("data array too short",Pn.errors.BUFFER_OVERRUN,{}),Ei(e,t,t+1,n)}if(e[t]>=184){const n=e[t]-183;t+1+n>e.length&&bi.throwError("data array too short",Pn.errors.BUFFER_OVERRUN,{});const r=Ti(e,t+1,n);t+1+n+r>e.length&&bi.throwError("data array too short",Pn.errors.BUFFER_OVERRUN,{});return{consumed:1+n+r,result:Kn(e.slice(t+1+n,t+1+n+r))}}if(e[t]>=128){const n=e[t]-128;t+1+n>e.length&&bi.throwError("data too short",Pn.errors.BUFFER_OVERRUN,{});return{consumed:1+n,result:Kn(e.slice(t+1,t+1+n))}}return{consumed:1,result:Kn(e[t])}}function Ii(e){const t=jn(e),n=_i(t,0);return n.consumed!==t.length&&bi.throwArgumentError("invalid rlp data","data",e),n.result}var Ri=Object.freeze({__proto__:null,decode:Ii,encode:Ai});const Ci=new Pn("address/5.7.0");function Oi(e){Wn(e,20)||Ci.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=jn(yi(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 ki={};for(let e=0;e<10;e++)ki[String(e)]=String(e);for(let e=0;e<26;e++)ki[String.fromCharCode(65+e)]=String(10+e);const Si=Math.floor(function(e){return Math.log10?Math.log10(e):Math.log(e)/Math.LN10}(9007199254740991));function Ni(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map((e=>ki[e])).join("");for(;t.length>=Si;){let e=t.substring(0,Si);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 xi(e){let t=null;if("string"!=typeof e&&Ci.throwArgumentError("invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==e.substring(0,2)&&(e="0x"+e),t=Oi(e),e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&t!==e&&Ci.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)!==Ni(e)&&Ci.throwArgumentError("bad icap checksum","address",e),n=e.substring(4),t=new ir(n,36).toString(16);t.length<40;)t="0"+t;t=Oi("0x"+t)}else Ci.throwArgumentError("invalid address","address",e);var n;return t}function Pi(e){try{return xi(e),!0}catch(e){}return!1}function Mi(e){let t=(n=xi(e).substring(2),new ir(n,16).toString(36)).toUpperCase();for(var n;t.length<30;)t="0"+t;return"XE"+Ni("XE00"+t)+t}function Bi(e){let t=null;try{t=xi(e.from)}catch(t){Ci.throwArgumentError("missing from address","transaction",e)}return xi(Jn(yi(Ai([t,Hn(jn(cr.from(e.nonce).toHexString()))])),12))}function Di(e,t,n){return 32!==Xn(t)&&Ci.throwArgumentError("salt must be 32 bytes","salt",t),32!==Xn(n)&&Ci.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",n),xi(Jn(yi(Gn(["0xff",xi(e),t,n])),12))}var Fi=Object.freeze({__proto__:null,getAddress:xi,getContractAddress:Bi,getCreate2Address:Di,getIcapAddress:Mi,isAddress:Pi});let Li=class extends fi{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){try{t=xi(t)}catch(e){this._throwError(e.message,t)}return e.writeValue(t)}decode(e){return xi(Zn(e.readValue().toHexString(),20))}},Ui=class extends fi{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 qi=new Pn(qr);function ji(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||qi.throwError("cannot encode object for signature with missing names",Pn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]&&qi.throwError("cannot encode object for signature with duplicate names",Pn.errors.INVALID_ARGUMENT,{argument:"values",coder:t,value:n}),e[r]=!0,n[r]}))}else qi.throwArgumentError("invalid tuple value","tuple",n);t.length!==r.length&&qi.throwArgumentError("types/value length mismatch","tuple",n);let i=new pi(e.wordSize),a=new pi(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 Gi(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===Pn.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===Pn.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 Hi=class extends fi{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)),qi.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 ji(e,r,t)}decode(e){let t=this.length;-1===t&&(t=e.readValue().toNumber(),32*t>e._data.length&&qi.throwError("insufficient data length",Pn.errors.BUFFER_OVERRUN,{length:e._data.length,count:t}));let n=[];for(let e=0;e<t;e++)n.push(new Ui(this.coder));return e.coerce(this.name,Gi(e,n))}},zi=class extends fi{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())}},Wi=class extends fi{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=jn(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readValue().toNumber(),!0)}},Vi=class extends Wi{constructor(e){super("bytes",e)}decode(e){return e.coerce(this.name,Kn(super.decode(e)))}},Ki=class extends fi{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=jn(t);return n.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(n)}decode(e){return e.coerce(this.name,Kn(e.readBytes(this.size)))}},Xi=class extends fi{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 Ji="0x0000000000000000000000000000000000000000",Yi=cr.from(-1),Qi=cr.from(0),$i=cr.from(1),Zi=cr.from(2),ea=cr.from("1000000000000000000"),ta=cr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),na=cr.from("-0x8000000000000000000000000000000000000000000000000000000000000000"),ra=cr.from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ia="0x0000000000000000000000000000000000000000000000000000000000000000";var aa=Object.freeze({__proto__:null,AddressZero:Ji,EtherSymbol:"Ξ",HashZero:ia,MaxInt256:ra,MaxUint256:ta,MinInt256:na,NegativeOne:Yi,One:$i,Two:Zi,WeiPerEther:ea,Zero:Qi});let oa=class extends fi{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=cr.from(t),r=ta.mask(8*e.wordSize);if(this.signed){let e=r.mask(8*this.size-1);(n.gt(e)||n.lt(e.add($i).mul(Yi)))&&this._throwError("value out-of-bounds",t)}else(n.lt(Qi)||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 sa=new Pn("strings/5.7.0");var ua,ca;function la(e,t,n,r,i){if(e===ca.BAD_PREFIX||e===ca.UNEXPECTED_CONTINUE){let e=0;for(let r=t+1;r<n.length&&n[r]>>6==2;r++)e++;return e}return e===ca.OVERRUN?n.length-t-1:0}!function(e){e.current="",e.NFC="NFC",e.NFD="NFD",e.NFKC="NFKC",e.NFKD="NFKD"}(ua||(ua={})),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"}(ca||(ca={}));const da=Object.freeze({error:function(e,t,n,r,i){return sa.throwArgumentError(`invalid codepoint at offset ${t}; ${e}`,"bytes",n)},ignore:la,replace:function(e,t,n,r,i){return e===ca.OVERLONG?(r.push(i),0):(r.push(65533),la(e,t,n))}});function fa(e,t){null==t&&(t=da.error),e=jn(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)?ca.UNEXPECTED_CONTINUE:ca.BAD_PREFIX,r-1,e,n);continue}a=3,o=65535}if(r-1+a>=e.length){r+=t(ca.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(ca.MISSING_CONTINUE,r,e,n),s=null;break}s=s<<6|63&i,r++}null!==s&&(s>1114111?r+=t(ca.OUT_OF_RANGE,r-1-a,e,n,s):s>=55296&&s<=57343?r+=t(ca.UTF16_SURROGATE,r-1-a,e,n,s):s<=o?r+=t(ca.OVERLONG,r-1-a,e,n,s):n.push(s))}return n}function pa(e,t=ua.current){t!=ua.current&&(sa.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 jn(n)}function ha(e){const t="0000"+e.toString(16);return"\\u"+t.substring(t.length-4)}function ma(e,t){return'"'+fa(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?ha(e):ha(55296+((e-=65536)>>10&1023))+ha(56320+(1023&e))})).join("")+'"'}function ya(e){return e.map((e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10&1023),56320+(1023&e))))).join("")}function ga(e,t){return ya(fa(e,t))}function ba(e,t=ua.current){return fa(pa(e,t))}function va(e){const t=pa(e);if(t.length>31)throw new Error("bytes32 string must be less than 32 bytes");return Kn(Gn([t,ia]).slice(0,32))}function Ta(e){const t=jn(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 ga(t.slice(0,n))}function wa(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 Aa(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 Ea(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 _a=Aa("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"),Ia="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((e=>parseInt(e,16))),Ra=[{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}],Ca=wa("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"),Oa=wa("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"),ka=wa("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})),Sa=Aa("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 Na(e){if(e.match(/^[a-z0-9-]*$/i)&&e.length<=59)return e.toLowerCase();let t=ba(e);var n;n=t.map((e=>{if(Ia.indexOf(e)>=0)return[];if(e>=65024&&e<=65039)return[];let t=function(e){let t=Ea(e,Ra);if(t)return[e+t.s];let n=Ca[e];if(n)return n;let r=Oa[e];return r?[e+r[0]]:ka[e]||null}(e);return t||[e]})),t=n.reduce(((e,t)=>(t.forEach((t=>{e.push(t)})),e)),[]),t=ba(ya(t),ua.NFKC),t.forEach((e=>{if(Ea(e,Sa))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")})),t.forEach((e=>{if(Ea(e,_a))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")}));let r=ya(t);if("-"===r.substring(0,1)||"--"===r.substring(2,4)||"-"===r.substring(r.length-1))throw new Error("invalid hyphen");return r}var xa=Object.freeze({__proto__:null,get UnicodeNormalizationForm(){return ua},Utf8ErrorFuncs:da,get Utf8ErrorReason(){return ca},_toEscapedUtf8String:ma,formatBytes32String:va,nameprep:Na,parseBytes32String:Ta,toUtf8Bytes:pa,toUtf8CodePoints:ba,toUtf8String:ga});let Pa=class extends Wi{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,pa(t))}decode(e){return ga(super.decode(e))}},Ma=class extends fi{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 ji(e,this.coders,t)}decode(e){return e.coerce(this.name,Gi(e,this.coders))}};const Ba=new Pn(qr),Da=new RegExp(/^bytes([0-9]*)$/),Fa=new RegExp(/^(u?int)([0-9]*)$/);let La=class{constructor(e){kr(this,"coerceFunc",e||null)}_getCoder(e){switch(e.baseType){case"address":return new Li(e.name);case"bool":return new zi(e.name);case"string":return new Pa(e.name);case"bytes":return new Vi(e.name);case"array":return new Hi(this._getCoder(e.arrayChildren),e.arrayLength,e.name);case"tuple":return new Ma((e.components||[]).map((e=>this._getCoder(e))),e.name);case"":return new Xi(e.name)}let t=e.type.match(Fa);if(t){let n=parseInt(t[2]||"256");return(0===n||n>256||n%8!=0)&&Ba.throwArgumentError("invalid "+t[1]+" bit length","param",e),new oa(n/8,"int"===t[1],e.name)}if(t=e.type.match(Da),t){let n=parseInt(t[1]);return(0===n||n>32)&&Ba.throwArgumentError("invalid bytes length","param",e),new Ki(n,e.name)}return Ba.throwArgumentError("invalid type","type",e.type)}_getWordSize(){return 32}_getReader(e,t){return new class e{constructor(e,t,n,r){kr(this,"_data",jn(e)),kr(this,"wordSize",t||32),kr(this,"_coerceFunc",n),kr(this,"allowLoose",r),this._offset=0}get data(){return Kn(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:li.throwError("data out-of-bounds",Pn.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 cr.from(this.readBytes(this.wordSize))}}(e,this._getWordSize(),this.coerceFunc,t)}_getWriter(){return new pi(this._getWordSize())}getDefaultValue(e){const t=e.map((e=>this._getCoder(Jr.from(e))));return new Ma(t,"_").defaultValue()}encode(e,t){e.length!==t.length&&Ba.throwError("types/values length mismatch",Pn.errors.INVALID_ARGUMENT,{count:{types:e.length,values:t.length},value:{types:e,values:t}});const n=e.map((e=>this._getCoder(Jr.from(e)))),r=new Ma(n,"_"),i=this._getWriter();return r.encode(i,t),i.data}decode(e,t,n){const r=e.map((e=>this._getCoder(Jr.from(e))));return new Ma(r,"_").decode(this._getReader(jn(t),n))}};const Ua=new La;function qa(e){return yi(pa(e))}const ja="hash/5.7.0";function Ga(e){e=atob(e);const t=[];for(let n=0;n<e.length;n++)t.push(e.charCodeAt(n));return jn(t)}function Ha(e){e=jn(e);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}var za=Object.freeze({__proto__:null,decode:Ga,encode:Ha});function Wa(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 Va(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 Ka(e){return 1&e?~e>>1:e>>1}function Xa(e,t){let n=Array(e);for(let r=0,i=-1;r<e;r++)n[r]=i+=1+t();return n}function Ja(e,t){let n=Array(e);for(let r=0,i=0;r<e;r++)n[r]=i+=Ka(t());return n}function Ya(e,t){let n=Xa(e(),e),r=e(),i=Xa(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 Qa(e,t,n){let r=Array(e).fill(void 0).map((()=>[]));for(let i=0;i<t;i++)Ja(e,n).forEach(((e,t)=>r[t].push(e)));return r}function $a(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 Wa(Qa(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 Za(e,t){return Qa(1+t(),1+e,t).map((e=>[e[0],e.slice(1)]))}const eo=Va(Ga("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==")),to=new Set(Ya(eo)),no=new Set(Ya(eo)),ro=function(e){let t=[];for(;;){let n=e();if(0==n)break;t.push($a(n,e))}for(;;){let n=e()-1;if(n<0)break;t.push(Za(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}(Wa(t))}(eo),io=function(e){let t=Ya(e).sort(((e,t)=>e-t));return function n(){let r=[];for(;;){let i=Ya(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}}()}(eo),ao=45,oo=95;function so(e){return ba(e)}function uo(e){return e.filter((e=>65039!=e))}function co(e){for(let t of e.split(".")){let e=so(t);try{for(let t=e.lastIndexOf(oo)-1;t>=0;t--)if(e[t]!==oo)throw new Error("underscore only allowed at start");if(e.length>=4&&e.every((e=>e<128))&&e[2]===ao&&e[3]===ao)throw new Error("invalid label extension")}catch(e){throw new Error(`Invalid label "${t}": ${e.message}`)}}return e}function lo(e){return co(function(e,t){let n=so(e).reverse(),r=[];for(;n.length;){let e=fo(n);if(e){r.push(...t(e));continue}let i=n.pop();if(to.has(i)){r.push(i);continue}if(no.has(i))continue;let a=ro[i];if(!a)throw new Error(`Disallowed codepoint: 0x${i.toString(16).toUpperCase()}`);r.push(...a)}return co(function(e){return e.normalize("NFC")}(String.fromCodePoint(...r)))}(e,uo))}function fo(e,t){var n;let r,i,a=io,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 po=new Pn(ja),ho=new Uint8Array(32);function mo(e){if(0===e.length)throw new Error("invalid ENS name; empty component");return e}function yo(e){const t=pa(lo(e)),n=[];if(0===e.length)return n;let r=0;for(let e=0;e<t.length;e++){46===t[e]&&(n.push(mo(t.slice(r,e))),r=e+1)}if(r>=t.length)throw new Error("invalid ENS name; empty component");return n.push(mo(t.slice(r))),n}function go(e){try{return 0!==yo(e).length}catch(e){}return!1}function bo(e){"string"!=typeof e&&po.throwArgumentError("invalid ENS name; not a string","name",e);let t=ho;const n=yo(e);for(;n.length;)t=yi(Gn([t,yi(n.pop())]));return Kn(t)}function vo(e){return Kn(Gn(yo(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"}ho.fill(0);const To="Ethereum Signed Message:\n";function wo(e){return"string"==typeof e&&(e=pa(e)),yi(Gn([pa(To),pa(String(e.length)),e]))}var Ao=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 Eo=new Pn(ja),_o=new Uint8Array(32);_o.fill(0);const Io=cr.from(-1),Ro=cr.from(0),Co=cr.from(1),Oo=cr.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const ko=Zn(Co.toHexString(),32),So=Zn(Ro.toHexString(),32),No={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},xo=["name","version","chainId","verifyingContract","salt"];function Po(e){return function(t){return"string"!=typeof t&&Eo.throwArgumentError(`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}const Mo={name:Po("name"),version:Po("version"),chainId:function(e){try{return cr.from(e).toString()}catch(e){}return Eo.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",e)},verifyingContract:function(e){try{return xi(e).toLowerCase()}catch(e){}return Eo.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){try{const t=jn(e);if(32!==t.length)throw new Error("bad length");return Kn(t)}catch(e){}return Eo.throwArgumentError('invalid domain value "salt"',"domain.salt",e)}};function Bo(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))&&Eo.throwArgumentError("invalid numeric width","type",e);const i=Oo.mask(n?r-1:r),a=n?i.add(Co).mul(Io):Ro;return function(t){const n=cr.from(t);return(n.lt(a)||n.gt(i))&&Eo.throwArgumentError(`value out-of-bounds for ${e}`,"value",t),Zn(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))&&Eo.throwArgumentError("invalid bytes width","type",e),function(t){return jn(t).length!==n&&Eo.throwArgumentError(`invalid length for ${e}`,"value",t),function(e){const t=jn(e),n=t.length%32;return n?Yn([t,_o.slice(n)]):Kn(t)}(t)}}}switch(e){case"address":return function(e){return Zn(xi(e),32)};case"bool":return function(e){return e?ko:So};case"bytes":return function(e){return yi(e)};case"string":return function(e){return qa(e)}}return null}function Do(e,t){return`${e}(${t.map((({name:e,type:t})=>t+" "+e)).join(",")})`}class Fo{constructor(e){kr(this,"types",Object.freeze(Fr(e))),kr(this,"_encoderCache",{}),kr(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]&&Eo.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&&Eo.throwArgumentError(`circular type reference to ${JSON.stringify(o)}`,"types",e);Bo(o)||(n[o]||Eo.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?Eo.throwArgumentError("missing primary type","types",e):i.length>1&&Eo.throwArgumentError(`ambiguous primary types or unused types: ${i.map((e=>JSON.stringify(e))).join(", ")}`,"types",e),kr(this,"primaryType",i[0]),function i(a,o){o[a]&&Eo.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]=Do(t,e[t])+n.map((t=>Do(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=Bo(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&&Eo.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",t);let i=t.map(n);return this._types[e]&&(i=i.map(yi)),yi(Yn(i))}}const n=this.types[e];if(n){const t=qa(this._types[e]);return e=>{const r=n.map((({name:t,type:n})=>{const r=this.getEncoder(n)(e[t]);return this._types[n]?yi(r):r}));return r.unshift(t),Yn(r)}}return Eo.throwArgumentError(`unknown type: ${e}`,"type",e)}encodeType(e){const t=this._types[e];return t||Eo.throwArgumentError(`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return yi(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(Bo(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&&Eo.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)),{}):Eo.throwArgumentError(`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new Fo(e)}static getPrimaryType(e){return Fo.from(e).primaryType}static hashStruct(e,t,n){return Fo.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){const r=No[n];r||Eo.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:r})}return t.sort(((e,t)=>xo.indexOf(e.name)-xo.indexOf(t.name))),Fo.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return Yn(["0x1901",Fo.hashDomain(e),Fo.from(t).hash(n)])}static hash(e,t,n){return yi(Fo.encode(e,t,n))}static resolveNames(e,t,n,r){return Ao(this,void 0,void 0,(function*(){e=Pr(e);const i={};e.verifyingContract&&!Wn(e.verifyingContract,20)&&(i[e.verifyingContract]="0x");const a=Fo.from(t);a.visit(n,((e,t)=>("address"!==e||Wn(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){Fo.hashDomain(e);const r={},i=[];xo.forEach((t=>{const n=e[t];null!=n&&(r[t]=Mo[t](n),i.push({name:t,type:No[t]}))}));const a=Fo.from(t),o=Pr(t);return o.EIP712Domain?Eo.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 Kn(jn(t));if(e.match(/^u?int/))return cr.from(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return"string"!=typeof t&&Eo.throwArgumentError("invalid string","value",t),t}return Eo.throwArgumentError("unsupported type","type",e)}))}}}var Lo=Object.freeze({__proto__:null,_TypedDataEncoder:Fo,dnsEncode:vo,ensNormalize:function(e){return yo(e).map((e=>ga(e))).join(".")},hashMessage:wo,id:qa,isValidName:go,messagePrefix:To,namehash:bo});const Uo=new Pn(qr);let qo=class extends Lr{},jo=class extends Lr{},Go=class extends Lr{},Ho=class extends Lr{static isIndexed(e){return!(!e||!e._isIndexed)}};const zo={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function Wo(e,t){const n=new Error(`deferred error during ABI decoding triggered accessing ${e}`);return n.error=t,n}let Vo=class{constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,kr(this,"fragments",t.map((e=>Qr.from(e))).filter((e=>null!=e))),kr(this,"_abiCoder",Sr(new.target,"getAbiCoder")()),kr(this,"functions",{}),kr(this,"errors",{}),kr(this,"events",{}),kr(this,"structs",{}),this.fragments.forEach((e=>{let t=null;switch(e.type){case"constructor":return this.deploy?void Uo.warn("duplicate definition - constructor"):void kr(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]?Uo.warn("duplicate definition - "+n):t[n]=e})),this.deploy||kr(this,"deploy",ni.from({payable:!1,type:"constructor"})),kr(this,"_isInterface",!0)}format(e){e||(e=Kr.full),e===Kr.sighash&&Uo.throwArgumentError("interface does not support formatting sighash","format",e);const t=this.fragments.map((t=>t.format(e)));return e===Kr.json?JSON.stringify(t.map((e=>JSON.parse(e)))):t}static getAbiCoder(){return Ua}static getAddress(e){return xi(e)}static getSighash(e){return Jn(qa(e.format()),0,4)}static getEventTopic(e){return qa(e.format())}getFunction(e){if(Wn(e)){for(const t in this.functions)if(e===this.getSighash(t))return this.functions[t];Uo.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?Uo.throwArgumentError("no matching function","name",t):n.length>1&&Uo.throwArgumentError("multiple matching functions","name",t),this.functions[n[0]]}const t=this.functions[ri.fromString(e).format()];return t||Uo.throwArgumentError("no matching function","signature",e),t}getEvent(e){if(Wn(e)){const t=e.toLowerCase();for(const e in this.events)if(t===this.getEventTopic(e))return this.events[e];Uo.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?Uo.throwArgumentError("no matching event","name",t):n.length>1&&Uo.throwArgumentError("multiple matching events","name",t),this.events[n[0]]}const t=this.events[$r.fromString(e).format()];return t||Uo.throwArgumentError("no matching event","signature",e),t}getError(e){if(Wn(e)){const t=Sr(this.constructor,"getSighash");for(const n in this.errors){if(e===t(this.errors[n]))return this.errors[n]}Uo.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?Uo.throwArgumentError("no matching error","name",t):n.length>1&&Uo.throwArgumentError("multiple matching errors","name",t),this.errors[n[0]]}const t=this.errors[ri.fromString(e).format()];return t||Uo.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 Sr(this.constructor,"getSighash")(e)}getEventTopic(e){return"string"==typeof e&&(e=this.getEvent(e)),Sr(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=jn(t);return Kn(n.slice(0,4))!==this.getSighash(e)&&Uo.throwArgumentError(`data signature does not match error ${e.name}.`,"data",Kn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeErrorResult(e,t){return"string"==typeof e&&(e=this.getError(e)),Kn(Gn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionData(e,t){"string"==typeof e&&(e=this.getFunction(e));const n=jn(t);return Kn(n.slice(0,4))!==this.getSighash(e)&&Uo.throwArgumentError(`data signature does not match function ${e.name}.`,"data",Kn(n)),this._decodeParams(e.inputs,n.slice(4))}encodeFunctionData(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Kn(Gn([this.getSighash(e),this._encodeParams(e.inputs,t||[])]))}decodeFunctionResult(e,t){"string"==typeof e&&(e=this.getFunction(e));let n=jn(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=Kn(n.slice(0,4)),t=zo[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 Uo.throwError("call revert exception"+i,Pn.errors.CALL_EXCEPTION,{method:e.format(),data:Kn(t),errorArgs:a,errorName:o,errorSignature:s,reason:r})}encodeFunctionResult(e,t){return"string"==typeof e&&(e=this.getFunction(e)),Kn(this._abiCoder.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){"string"==typeof e&&(e=this.getEvent(e)),t.length>e.inputs.length&&Uo.throwError("too many arguments for "+e.format(),Pn.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:t});let n=[];e.anonymous||n.push(this.getEventTopic(e));const r=(e,t)=>"string"===e.type?qa(t):"bytes"===e.type?yi(Kn(t)):("bool"===e.type&&"boolean"==typeof t&&(t=t?"0x01":"0x00"),e.type.match(/^u?int/)&&(t=cr.from(t).toHexString()),"address"===e.type&&this._abiCoder.encode(["address"],[t]),Zn(Kn(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?Uo.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&&Uo.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&&Uo.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(qa(o));else if("bytes"===e.type)n.push(yi(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);Wn(n[0],32)&&n[0].toLowerCase()===t||Uo.throwError("fragment/topic mismatch",Pn.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(Jr.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,Gn(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 Ho({_isIndexed:!0,hash:null});else if(a[t])u[t]=new Ho({_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 Wo(`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 Wo(`index ${e}`,t)}})}return Object.freeze(u)}parseTransaction(e){let t=this.getFunction(e.data.substring(0,10).toLowerCase());return t?new jo({args:this._abiCoder.decode(t.inputs,"0x"+e.data.substring(10)),functionFragment:t,name:t.name,signature:t.format(),sighash:this.getSighash(t),value:cr.from(e.value||"0")}):null}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new qo({eventFragment:t,name:t.name,signature:t.format(),topic:this.getEventTopic(t),args:this.decodeEventLog(t,e.data,e.topics)})}parseError(e){const t=Kn(e);let n=this.getError(t.substring(0,10).toLowerCase());return n?new Go({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 Ko=Object.freeze({__proto__:null,AbiCoder:La,ConstructorFragment:ni,ErrorFragment:ai,EventFragment:$r,FormatTypes:Kr,Fragment:Qr,FunctionFragment:ri,Indexed:Ho,Interface:Vo,LogDescription:qo,ParamType:Jr,TransactionDescription:jo,checkResultErrors:di,defaultAbiCoder:Ua});var Xo=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 Jo=new Pn("abstract-provider/5.7.0");class Yo extends Lr{static isForkEvent(e){return!(!e||!e._isForkEvent)}}let Qo=class e{constructor(){Jo.checkAbstract(new.target,e),kr(this,"_isProvider",!0)}getFeeData(){return Xo(this,void 0,void 0,(function*(){const{block:e,gasPrice:t}=yield Nr({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=cr.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 $o=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 Zo=new Pn("abstract-signer/5.7.0"),es=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],ts=[Pn.errors.INSUFFICIENT_FUNDS,Pn.errors.NONCE_EXPIRED,Pn.errors.REPLACEMENT_UNDERPRICED];let ns=class e{constructor(){Zo.checkAbstract(new.target,e),kr(this,"_isSigner",!0)}getBalance(e){return $o(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),e)}))}getTransactionCount(e){return $o(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),e)}))}estimateGas(e){return $o(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const t=yield Nr(this.checkTransaction(e));return yield this.provider.estimateGas(t)}))}call(e,t){return $o(this,void 0,void 0,(function*(){this._checkProvider("call");const n=yield Nr(this.checkTransaction(e));return yield this.provider.call(n,t)}))}sendTransaction(e){return $o(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 $o(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return $o(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return $o(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(e){return $o(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(e)}))}checkTransaction(e){for(const t in e)-1===es.indexOf(t)&&Zo.throwArgumentError("invalid transaction key: "+t,"transaction",e);const t=Pr(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()&&Zo.throwArgumentError("from address mismatch","transaction",e),t[0]))),t}populateTransaction(e){return $o(this,void 0,void 0,(function*(){const t=yield Nr(this.checkTransaction(e));null!=t.to&&(t.to=Promise.resolve(t.to).then((e=>$o(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.resolveName(e);return null==t&&Zo.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||Zo.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",e):Zo.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&&Zo.throwError("network does not support EIP-1559",Pn.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==t.gasPrice&&(t.gasPrice=e.gasPrice),t.type=0):Zo.throwError("failed to get consistent fee data",Pn.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(ts.indexOf(e.code)>=0)throw e;return Zo.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pn.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]&&Zo.throwArgumentError("chainId address mismatch","transaction",e),t[0]))),yield Nr(t)}))}_checkProvider(e){this.provider||Zo.throwError("missing provider",Pn.errors.UNSUPPORTED_OPERATION,{operation:e||"_checkProvider"})}static isSigner(e){return!(!e||!e._isSigner)}},rs=class e extends ns{constructor(e,t){super(),kr(this,"address",e),kr(this,"provider",t||null)}getAddress(){return Promise.resolve(this.address)}_fail(e,t){return Promise.resolve().then((()=>{Zo.throwError(e,Pn.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 is={},as={},os=ss;function ss(e,t){if(!e)throw new Error(t||"Assertion failed")}ss.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var us="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},cs=os,ls=vt(Object.freeze({__proto__:null,default:us}));function ds(e,t){return 55296==(64512&e.charCodeAt(t))&&(!(t<0||t+1>=e.length)&&56320==(64512&e.charCodeAt(t+1)))}function fs(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function ps(e){return 1===e.length?"0"+e:e}function hs(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}as.inherits=ls,as.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):ds(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},as.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=ps(e[n].toString(16));return t},as.htonl=fs,as.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=fs(i)),n+=hs(i.toString(16))}return n},as.zero2=ps,as.zero8=hs,as.join32=function(e,t,n,r){var i=n-t;cs(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},as.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},as.rotr32=function(e,t){return e>>>t|e<<32-t},as.rotl32=function(e,t){return e<<t|e>>>32-t},as.sum32=function(e,t){return e+t>>>0},as.sum32_3=function(e,t,n){return e+t+n>>>0},as.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},as.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},as.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},as.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},as.sum64_lo=function(e,t,n,r){return t+r>>>0},as.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},as.sum64_4_lo=function(e,t,n,r,i,a,o,s){return t+r+a+s>>>0},as.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},as.sum64_5_lo=function(e,t,n,r,i,a,o,s,u,c){return t+r+a+s+c>>>0},as.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},as.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},as.shr64_hi=function(e,t,n){return e>>>n},as.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0};var ms={},ys=as,gs=os;function bs(){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}ms.BlockHash=bs,bs.prototype.update=function(e,t){if(e=ys.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=ys.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},bs.prototype.digest=function(e){return this.update(this._pad()),gs(null===this.pending),this._digest(e)},bs.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 vs={},Ts={},ws=as.rotr32;function As(e,t,n){return e&t^~e&n}function Es(e,t,n){return e&t^e&n^t&n}function _s(e,t,n){return e^t^n}Ts.ft_1=function(e,t,n,r){return 0===e?As(t,n,r):1===e||3===e?_s(t,n,r):2===e?Es(t,n,r):void 0},Ts.ch32=As,Ts.maj32=Es,Ts.p32=_s,Ts.s0_256=function(e){return ws(e,2)^ws(e,13)^ws(e,22)},Ts.s1_256=function(e){return ws(e,6)^ws(e,11)^ws(e,25)},Ts.g0_256=function(e){return ws(e,7)^ws(e,18)^e>>>3},Ts.g1_256=function(e){return ws(e,17)^ws(e,19)^e>>>10};var Is=as,Rs=ms,Cs=Ts,Os=Is.rotl32,ks=Is.sum32,Ss=Is.sum32_5,Ns=Cs.ft_1,xs=Rs.BlockHash,Ps=[1518500249,1859775393,2400959708,3395469782];function Ms(){if(!(this instanceof Ms))return new Ms;xs.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}Is.inherits(Ms,xs);var Bs=Ms;Ms.blockSize=512,Ms.outSize=160,Ms.hmacStrength=80,Ms.padLength=64,Ms.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]=Os(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=Ss(Os(i,5),Ns(c,a,o,s),u,n[r],Ps[c]);u=s,s=o,o=Os(a,30),a=i,i=l}this.h[0]=ks(this.h[0],i),this.h[1]=ks(this.h[1],a),this.h[2]=ks(this.h[2],o),this.h[3]=ks(this.h[3],s),this.h[4]=ks(this.h[4],u)},Ms.prototype._digest=function(e){return"hex"===e?Is.toHex32(this.h,"big"):Is.split32(this.h,"big")};var Ds=as,Fs=ms,Ls=Ts,Us=os,qs=Ds.sum32,js=Ds.sum32_4,Gs=Ds.sum32_5,Hs=Ls.ch32,zs=Ls.maj32,Ws=Ls.s0_256,Vs=Ls.s1_256,Ks=Ls.g0_256,Xs=Ls.g1_256,Js=Fs.BlockHash,Ys=[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 Qs(){if(!(this instanceof Qs))return new Qs;Js.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Ys,this.W=new Array(64)}Ds.inherits(Qs,Js);var $s=Qs;Qs.blockSize=512,Qs.outSize=256,Qs.hmacStrength=192,Qs.padLength=64,Qs.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]=js(Xs(n[r-2]),n[r-7],Ks(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(Us(this.k.length===n.length),r=0;r<n.length;r++){var f=Gs(d,Vs(u),Hs(u,c,l),this.k[r],n[r]),p=qs(Ws(i),zs(i,a,o));d=l,l=c,c=u,u=qs(s,f),s=o,o=a,a=i,i=qs(f,p)}this.h[0]=qs(this.h[0],i),this.h[1]=qs(this.h[1],a),this.h[2]=qs(this.h[2],o),this.h[3]=qs(this.h[3],s),this.h[4]=qs(this.h[4],u),this.h[5]=qs(this.h[5],c),this.h[6]=qs(this.h[6],l),this.h[7]=qs(this.h[7],d)},Qs.prototype._digest=function(e){return"hex"===e?Ds.toHex32(this.h,"big"):Ds.split32(this.h,"big")};var Zs=as,eu=$s;function tu(){if(!(this instanceof tu))return new tu;eu.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Zs.inherits(tu,eu);var nu=tu;tu.blockSize=512,tu.outSize=224,tu.hmacStrength=192,tu.padLength=64,tu.prototype._digest=function(e){return"hex"===e?Zs.toHex32(this.h.slice(0,7),"big"):Zs.split32(this.h.slice(0,7),"big")};var ru=as,iu=ms,au=os,ou=ru.rotr64_hi,su=ru.rotr64_lo,uu=ru.shr64_hi,cu=ru.shr64_lo,lu=ru.sum64,du=ru.sum64_hi,fu=ru.sum64_lo,pu=ru.sum64_4_hi,hu=ru.sum64_4_lo,mu=ru.sum64_5_hi,yu=ru.sum64_5_lo,gu=iu.BlockHash,bu=[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 vu(){if(!(this instanceof vu))return new vu;gu.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=bu,this.W=new Array(160)}ru.inherits(vu,gu);var Tu=vu;function wu(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function Au(e,t,n,r,i,a){var o=t&r^~t&a;return o<0&&(o+=4294967296),o}function Eu(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function _u(e,t,n,r,i,a){var o=t&r^t&a^r&a;return o<0&&(o+=4294967296),o}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=su(e,t,28)^su(t,e,2)^su(t,e,7);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=su(e,t,14)^su(e,t,18)^su(t,e,9);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=su(e,t,1)^su(e,t,8)^cu(e,t,7);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}function xu(e,t){var n=su(e,t,19)^su(t,e,29)^cu(e,t,6);return n<0&&(n+=4294967296),n}vu.blockSize=1024,vu.outSize=512,vu.hmacStrength=192,vu.padLength=128,vu.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=Nu(n[r-4],n[r-3]),a=xu(n[r-4],n[r-3]),o=n[r-14],s=n[r-13],u=ku(n[r-30],n[r-29]),c=Su(n[r-30],n[r-29]),l=n[r-32],d=n[r-31];n[r]=pu(i,a,o,s,u,c,l,d),n[r+1]=hu(i,a,o,s,u,c,l,d)}},vu.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];au(this.k.length===n.length);for(var v=0;v<n.length;v+=2){var T=g,w=b,A=Cu(d,f),E=Ou(d,f),_=wu(d,f,p,h,m),I=Au(d,f,p,h,m,y),R=this.k[v],C=this.k[v+1],O=n[v],k=n[v+1],S=mu(T,w,A,E,_,I,R,C,O,k),N=yu(T,w,A,E,_,I,R,C,O,k);T=Iu(r,i),w=Ru(r,i),A=Eu(r,i,a,o,s),E=_u(r,i,a,o,s,u);var x=du(T,w,A,E),P=fu(T,w,A,E);g=m,b=y,m=p,y=h,p=d,h=f,d=du(c,l,S,N),f=fu(l,l,S,N),c=s,l=u,s=a,u=o,a=r,o=i,r=du(S,N,x,P),i=fu(S,N,x,P)}lu(this.h,0,r,i),lu(this.h,2,a,o),lu(this.h,4,s,u),lu(this.h,6,c,l),lu(this.h,8,d,f),lu(this.h,10,p,h),lu(this.h,12,m,y),lu(this.h,14,g,b)},vu.prototype._digest=function(e){return"hex"===e?ru.toHex32(this.h,"big"):ru.split32(this.h,"big")};var Pu=as,Mu=Tu;function Bu(){if(!(this instanceof Bu))return new Bu;Mu.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Pu.inherits(Bu,Mu);var Du=Bu;Bu.blockSize=1024,Bu.outSize=384,Bu.hmacStrength=192,Bu.padLength=128,Bu.prototype._digest=function(e){return"hex"===e?Pu.toHex32(this.h.slice(0,12),"big"):Pu.split32(this.h.slice(0,12),"big")},vs.sha1=Bs,vs.sha224=nu,vs.sha256=$s,vs.sha384=Du,vs.sha512=Tu;var Fu={},Lu=as,Uu=ms,qu=Lu.rotl32,ju=Lu.sum32,Gu=Lu.sum32_3,Hu=Lu.sum32_4,zu=Uu.BlockHash;function Wu(){if(!(this instanceof Wu))return new Wu;zu.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function Vu(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 Ku(e){return e<=15?0:e<=31?1518500249:e<=47?1859775393:e<=63?2400959708:2840853838}function Xu(e){return e<=15?1352829926:e<=31?1548603684:e<=47?1836072691:e<=63?2053994217:0}Lu.inherits(Wu,zu),Fu.ripemd160=Wu,Wu.blockSize=512,Wu.outSize=160,Wu.hmacStrength=192,Wu.padLength=64,Wu.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=ju(qu(Hu(n,Vu(f,r,i,a),e[Ju[f]+t],Ku(f)),Qu[f]),o);n=o,o=a,a=qu(i,10),i=r,r=p,p=ju(qu(Hu(s,Vu(79-f,u,c,l),e[Yu[f]+t],Xu(f)),$u[f]),d),s=d,d=l,l=qu(c,10),c=u,u=p}p=Gu(this.h[1],i,l),this.h[1]=Gu(this.h[2],a,d),this.h[2]=Gu(this.h[3],o,s),this.h[3]=Gu(this.h[4],n,u),this.h[4]=Gu(this.h[0],r,c),this.h[0]=p},Wu.prototype._digest=function(e){return"hex"===e?Lu.toHex32(this.h,"little"):Lu.split32(this.h,"little")};var Ju=[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],Yu=[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],Qu=[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],$u=[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],Zu=as,ec=os;function tc(e,t,n){if(!(this instanceof tc))return new tc(e,t,n);this.Hash=e,this.blockSize=e.blockSize/8,this.outSize=e.outSize/8,this.inner=null,this.outer=null,this._init(Zu.toArray(t,n))}var nc=tc;tc.prototype._init=function(e){e.length>this.blockSize&&(e=(new this.Hash).update(e).digest()),ec(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)},tc.prototype.update=function(e,t){return this.inner.update(e,t),this},tc.prototype.digest=function(e){return this.outer.update(this.inner.digest()),this.outer.digest(e)},function(e){var t=e;t.utils=as,t.common=ms,t.sha=vs,t.ripemd=Fu,t.hmac=nc,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}(is);var rc=bt(is);function ic(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 ac=oc;function oc(e,t){if(!e)throw new Error(t||"Assertion failed")}oc.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)};var sc=ic((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}})),uc=ic((function(e,t){var n=t;n.assert=ac,n.toArray=sc.toArray,n.zero2=sc.zero2,n.toHex=sc.toHex,n.encode=sc.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 En(e,"hex","le")}})),cc=uc.getNAF,lc=uc.getJSF,dc=uc.assert;function fc(e,t){this.type=e,this.p=new En(t.p,16),this.red=t.prime?En.red(t.prime):En.mont(this.p),this.zero=new En(0).toRed(this.red),this.one=new En(1).toRed(this.red),this.two=new En(2).toRed(this.red),this.n=t.n&&new En(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 pc=fc;function hc(e,t){this.curve=e,this.type=t,this.precomputed=null}fc.prototype.point=function(){throw new Error("Not implemented")},fc.prototype.validate=function(){throw new Error("Not implemented")},fc.prototype._fixedNafMul=function(e,t){dc(e.precomputed);var n=e._getDoubles(),r=cc(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()},fc.prototype._wnafMul=function(e,t){var n=4,r=e._getNAFPoints(n);n=r.wnd;for(var i=r.points,a=cc(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];dc(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},fc.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=lc(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]=cc(n[p],u[p],this._bitLength),l[h]=cc(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()},fc.BasePoint=hc,hc.prototype.eq=function(){throw new Error("Not implemented")},hc.prototype.validate=function(){return this.curve.validate(this)},fc.prototype.decodePoint=function(e,t){e=uc.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]?dc(e[e.length-1]%2==0):7===e[0]&&dc(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")},hc.prototype.encodeCompressed=function(e){return this.encode(e,!0)},hc.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))},hc.prototype.encode=function(e,t){return uc.encode(this._encode(t),e)},hc.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},hc.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)},hc.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}},hc.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}},hc.prototype._getBeta=function(){return null},hc.prototype.dblp=function(e){for(var t=this,n=0;n<e;n++)t=t.dbl();return t};var mc=ic((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}}})),yc=uc.assert;function gc(e){pc.call(this,"short",e),this.a=new En(e.a,16).toRed(this.red),this.b=new En(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)}mc(gc,pc);var bc=gc;function vc(e,t,n,r){pc.BasePoint.call(this,e,"affine"),null===t&&null===n?(this.x=null,this.y=null,this.inf=!0):(this.x=new En(t,16),this.y=new En(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 Tc(e,t,n,r){pc.BasePoint.call(this,e,"jacobian"),null===t&&null===n&&null===r?(this.x=this.curve.one,this.y=this.curve.one,this.z=new En(0)):(this.x=new En(t,16),this.y=new En(n,16),this.z=new En(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}gc.prototype._getEndomorphism=function(e){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var t,n;if(e.beta)t=new En(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 En(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],yc(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 En(e.a,16),b:new En(e.b,16)}})):this._getEndoBasis(n)}}},gc.prototype._getEndoRoots=function(e){var t=e===this.p?this.red:En.mont(e),n=new En(2).toRed(t).redInvm(),r=n.redNeg(),i=new En(3).toRed(t).redNeg().redSqrt().redMul(n);return[r.redAdd(i).fromRed(),r.redSub(i).fromRed()]},gc.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 En(1),h=new En(0),m=new En(0),y=new En(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}]},gc.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()}},gc.prototype.pointFromX=function(e,t){(e=new En(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)},gc.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)},gc.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},mc(vc,pc.BasePoint),gc.prototype.point=function(e,t,n){return new vc(this,e,t,n)},gc.prototype.pointFromJSON=function(e,t){return vc.fromJSON(this,e,t)},vc.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}},vc.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]},vc.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},vc.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)+">"},vc.prototype.isInfinity=function(){return this.inf},vc.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)},vc.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)},vc.prototype.getX=function(){return this.x.fromRed()},vc.prototype.getY=function(){return this.y.fromRed()},vc.prototype.mul=function(e){return e=new En(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)},vc.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)},vc.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)},vc.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))},vc.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},vc.prototype.toJ=function(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},mc(Tc,pc.BasePoint),gc.prototype.jpoint=function(e,t,n){return new Tc(this,e,t,n)},Tc.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)},Tc.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},Tc.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)},Tc.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)},Tc.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)},Tc.prototype.dbl=function(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},Tc.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)},Tc.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)},Tc.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)},Tc.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)},Tc.prototype.mul=function(e,t){return e=new En(e,t),this.curve._wnafMul(this,e)},Tc.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)},Tc.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}},Tc.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)+">"},Tc.prototype.isInfinity=function(){return 0===this.z.cmpn(0)};var wc=ic((function(e,t){var n=t;n.base=pc,n.short=bc,n.mont=null,n.edwards=null})),Ac=ic((function(e,t){var n,r=t,i=uc.assert;function a(e){"short"===e.type?this.curve=new wc.short(e):"edwards"===e.type?this.curve=new wc.edwards(e):this.curve=new wc.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:rc.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:rc.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:rc.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:rc.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:rc.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:rc.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:rc.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:rc.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",n]})}));function Ec(e){if(!(this instanceof Ec))return new Ec(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=sc.toArray(e.entropy,e.entropyEnc||"hex"),n=sc.toArray(e.nonce,e.nonceEnc||"hex"),r=sc.toArray(e.pers,e.persEnc||"hex");ac(t.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(t,n,r)}var _c=Ec;Ec.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},Ec.prototype._hmac=function(){return new rc.hmac(this.hash,this.K)},Ec.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())},Ec.prototype.reseed=function(e,t,n,r){"string"!=typeof t&&(r=n,n=t,t=null),e=sc.toArray(e,t),n=sc.toArray(n,r),ac(e.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(e.concat(n||[])),this._reseed=1},Ec.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=sc.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++,sc.encode(a,t)};var Ic=uc.assert;function Rc(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 Cc=Rc;Rc.fromPublic=function(e,t,n){return t instanceof Rc?t:new Rc(e,{pub:t,pubEnc:n})},Rc.fromPrivate=function(e,t,n){return t instanceof Rc?t:new Rc(e,{priv:t,privEnc:n})},Rc.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"}},Rc.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},Rc.prototype.getPrivate=function(e){return"hex"===e?this.priv.toString(16,2):this.priv},Rc.prototype._importPrivate=function(e,t){this.priv=new En(e,t||16),this.priv=this.priv.umod(this.ec.curve.n)},Rc.prototype._importPublic=function(e,t){if(e.x||e.y)return"mont"===this.ec.curve.type?Ic(e.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||Ic(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)},Rc.prototype.derive=function(e){return e.validate()||Ic(e.validate(),"public point not validated"),e.mul(this.priv).getX()},Rc.prototype.sign=function(e,t,n){return this.ec.sign(e,this,t,n)},Rc.prototype.verify=function(e,t){return this.ec.verify(e,t,this)},Rc.prototype.inspect=function(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var Oc=uc.assert;function kc(e,t){if(e instanceof kc)return e;this._importDER(e,t)||(Oc(e.r&&e.s,"Signature without r or s"),this.r=new En(e.r,16),this.s=new En(e.s,16),void 0===e.recoveryParam?this.recoveryParam=null:this.recoveryParam=e.recoveryParam)}var Sc=kc;function Nc(){this.place=0}function xc(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 Pc(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 Mc(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)}}kc.prototype._importDER=function(e,t){e=uc.toArray(e,t);var n=new Nc;if(48!==e[n.place++])return!1;var r=xc(e,n);if(!1===r)return!1;if(r+n.place!==e.length)return!1;if(2!==e[n.place++])return!1;var i=xc(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=xc(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 En(a),this.s=new En(s),this.recoveryParam=null,!0},kc.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=Pc(t),n=Pc(n);!(n[0]||128&n[1]);)n=n.slice(1);var r=[2];Mc(r,t.length),(r=r.concat(t)).push(2),Mc(r,n.length);var i=r.concat(n),a=[48];return Mc(a,i.length),a=a.concat(i),uc.encode(a,e)};var Bc=function(){throw new Error("unsupported")},Dc=uc.assert;function Fc(e){if(!(this instanceof Fc))return new Fc(e);"string"==typeof e&&(Dc(Object.prototype.hasOwnProperty.call(Ac,e),"Unknown curve "+e),e=Ac[e]),e instanceof Ac.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 Lc=Fc;Fc.prototype.keyPair=function(e){return new Cc(this,e)},Fc.prototype.keyFromPrivate=function(e,t){return Cc.fromPrivate(this,e,t)},Fc.prototype.keyFromPublic=function(e,t){return Cc.fromPublic(this,e,t)},Fc.prototype.genKeyPair=function(e){e||(e={});for(var t=new _c({hash:this.hash,pers:e.pers,persEnc:e.persEnc||"utf8",entropy:e.entropy||Bc(this.hash.hmacStrength),entropyEnc:e.entropy&&e.entropyEnc||"utf8",nonce:this.n.toArray()}),n=this.n.byteLength(),r=this.n.sub(new En(2));;){var i=new En(t.generate(n));if(!(i.cmp(r)>0))return i.iaddn(1),this.keyFromPrivate(i)}},Fc.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},Fc.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 En(e,16));for(var i=this.n.byteLength(),a=t.getPrivate().toArray("be",i),o=e.toArray("be",i),s=new _c({hash:this.hash,entropy:a,nonce:o,pers:r.pers,persEnc:r.persEnc||"utf8"}),u=this.n.sub(new En(1)),c=0;;c++){var l=r.k?r.k(c):new En(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 Sc({r:p,s:h,recoveryParam:m})}}}}}},Fc.prototype.verify=function(e,t,n,r){e=this._truncateToN(new En(e,16)),n=this.keyFromPublic(n,r);var i=(t=new Sc(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)},Fc.prototype.recoverPubKey=function(e,t,n,r){Dc((3&n)===n,"The recovery param is more than two bits"),t=new Sc(t,r);var i=this.n,a=new En(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)},Fc.prototype.getKeyRecoveryParam=function(e,t,n,r){if(null!==(t=new Sc(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 Uc=ic((function(e,t){var n=t;n.version="6.5.4",n.utils=uc,n.rand=function(){throw new Error("unsupported")},n.curve=wc,n.curves=Ac,n.ec=Lc,n.eddsa=null})),qc=Uc.ec;const jc=new Pn("signing-key/5.7.0");let Gc=null;function Hc(){return Gc||(Gc=new qc("secp256k1")),Gc}class zc{constructor(e){kr(this,"curve","secp256k1"),kr(this,"privateKey",Kn(e)),32!==Xn(this.privateKey)&&jc.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const t=Hc().keyFromPrivate(jn(this.privateKey));kr(this,"publicKey","0x"+t.getPublic(!1,"hex")),kr(this,"compressedPublicKey","0x"+t.getPublic(!0,"hex")),kr(this,"_isSigningKey",!0)}_addPoint(e){const t=Hc().keyFromPublic(jn(this.publicKey)),n=Hc().keyFromPublic(jn(e));return"0x"+t.pub.add(n.pub).encodeCompressed("hex")}signDigest(e){const t=Hc().keyFromPrivate(jn(this.privateKey)),n=jn(e);32!==n.length&&jc.throwArgumentError("bad digest length","digest",e);const r=t.sign(n,{canonical:!0});return er({recoveryParam:r.recoveryParam,r:Zn("0x"+r.r.toString(16),32),s:Zn("0x"+r.s.toString(16),32)})}computeSharedSecret(e){const t=Hc().keyFromPrivate(jn(this.privateKey)),n=Hc().keyFromPublic(jn(Vc(e)));return Zn("0x"+t.derive(n.getPublic()).toString(16),32)}static isSigningKey(e){return!(!e||!e._isSigningKey)}}function Wc(e,t){const n=er(t),r={r:jn(n.r),s:jn(n.s)};return"0x"+Hc().recoverPubKey(jn(e),r,n.recoveryParam).encode("hex",!1)}function Vc(e,t){const n=jn(e);if(32===n.length){const e=new zc(n);return t?"0x"+Hc().keyFromPrivate(n).getPublic(!0,"hex"):e.publicKey}return 33===n.length?t?Kn(n):"0x"+Hc().keyFromPublic(n).getPublic(!1,"hex"):65===n.length?t?"0x"+Hc().keyFromPublic(n).getPublic(!0,"hex"):Kn(n):jc.throwArgumentError("invalid public or private key","key","[REDACTED]")}var Kc=Object.freeze({__proto__:null,SigningKey:zc,computePublicKey:Vc,recoverPublicKey:Wc});const Xc=new Pn("transactions/5.7.0");var Jc;function Yc(e){return"0x"===e?null:xi(e)}function Qc(e){return"0x"===e?Qi:cr.from(e)}!function(e){e[e.legacy=0]="legacy",e[e.eip2930=1]="eip2930",e[e.eip1559=2]="eip1559"}(Jc||(Jc={}));const $c=[{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"}],Zc={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function el(e){return xi(Jn(yi(Jn(Vc(e),1)),12))}function tl(e,t){return el(Wc(jn(e),t))}function nl(e,t){const n=Hn(cr.from(e).toHexString());return n.length>32&&Xc.throwArgumentError("invalid length for "+t,"transaction:"+t,e),n}function rl(e,t){return{address:xi(e),storageKeys:(t||[]).map(((t,n)=>(32!==Xn(t)&&Xc.throwArgumentError("invalid access list storageKey",`accessList[${e}:${n}]`,t),t.toLowerCase())))}}function il(e){if(Array.isArray(e))return e.map(((e,t)=>Array.isArray(e)?(e.length>2&&Xc.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${t}]`,e),rl(e[0],e[1])):rl(e.address,e.storageKeys)));const t=Object.keys(e).map((t=>{const n=e[t].reduce(((e,t)=>(e[t]=!0,e)),{});return rl(t,Object.keys(n).sort())}));return t.sort(((e,t)=>e.address.localeCompare(t.address))),t}function al(e){return il(e).map((e=>[e.address,e.storageKeys]))}function ol(e,t){if(null!=e.gasPrice){const t=cr.from(e.gasPrice),n=cr.from(e.maxFeePerGas||0);t.eq(n)||Xc.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:t,maxFeePerGas:n})}const n=[nl(e.chainId||0,"chainId"),nl(e.nonce||0,"nonce"),nl(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),nl(e.maxFeePerGas||0,"maxFeePerGas"),nl(e.gasLimit||0,"gasLimit"),null!=e.to?xi(e.to):"0x",nl(e.value||0,"value"),e.data||"0x",al(e.accessList||[])];if(t){const e=er(t);n.push(nl(e.recoveryParam,"recoveryParam")),n.push(Hn(e.r)),n.push(Hn(e.s))}return Yn(["0x02",Ai(n)])}function sl(e,t){const n=[nl(e.chainId||0,"chainId"),nl(e.nonce||0,"nonce"),nl(e.gasPrice||0,"gasPrice"),nl(e.gasLimit||0,"gasLimit"),null!=e.to?xi(e.to):"0x",nl(e.value||0,"value"),e.data||"0x",al(e.accessList||[])];if(t){const e=er(t);n.push(nl(e.recoveryParam,"recoveryParam")),n.push(Hn(e.r)),n.push(Hn(e.s))}return Yn(["0x01",Ai(n)])}function ul(e,t){if(null==e.type||0===e.type)return null!=e.accessList&&Xc.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",e),function(e,t){xr(e,Zc);const n=[];$c.forEach((function(t){let r=e[t.name]||[];const i={};t.numeric&&(i.hexPad="left"),r=jn(Kn(r,i)),t.length&&r.length!==t.length&&r.length>0&&Xc.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r),t.maxLength&&(r=Hn(r),r.length>t.maxLength&&Xc.throwArgumentError("invalid length for "+t.name,"transaction:"+t.name,r)),n.push(Kn(r))}));let r=0;if(null!=e.chainId?(r=e.chainId,"number"!=typeof r&&Xc.throwArgumentError("invalid transaction.chainId","transaction",e)):t&&!Ln(t)&&t.v>28&&(r=Math.floor((t.v-35)/2)),0!==r&&(n.push(Kn(r)),n.push("0x"),n.push("0x")),!t)return Ai(n);const i=er(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&&Xc.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t)):i.v!==a&&Xc.throwArgumentError("transaction.chainId/signature.v mismatch","signature",t),n.push(Kn(a)),n.push(Hn(jn(i.r))),n.push(Hn(jn(i.s))),Ai(n)}(e,t);switch(e.type){case 1:return sl(e,t);case 2:return ol(e,t)}return Xc.throwError(`unsupported transaction type: ${e.type}`,Pn.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:e.type})}function cl(e,t,n){try{const n=Qc(t[0]).toNumber();if(0!==n&&1!==n)throw new Error("bad recid");e.v=n}catch(e){Xc.throwArgumentError("invalid v for transaction type: 1","v",t[0])}e.r=Zn(t[1],32),e.s=Zn(t[2],32);try{const t=yi(n(e));e.from=tl(t,{r:e.r,s:e.s,recoveryParam:e.v})}catch(e){}}function ll(e){const t=jn(e);if(t[0]>127)return function(e){const t=Ii(e);9!==t.length&&6!==t.length&&Xc.throwArgumentError("invalid raw transaction","rawTransaction",e);const n={nonce:Qc(t[0]).toNumber(),gasPrice:Qc(t[1]),gasLimit:Qc(t[2]),to:Yc(t[3]),value:Qc(t[4]),data:t[5],chainId:0};if(6===t.length)return n;try{n.v=cr.from(t[6]).toNumber()}catch(e){return n}if(n.r=Zn(t[7],32),n.s=Zn(t[8],32),cr.from(n.r).isZero()&&cr.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(Kn(n.chainId)),i.push("0x"),i.push("0x"),r-=2*n.chainId+8);const a=yi(Ai(i));try{n.from=tl(a,{r:Kn(n.r),s:Kn(n.s),recoveryParam:r})}catch(e){}n.hash=yi(e)}return n.type=null,n}(t);switch(t[0]){case 1:return function(e){const t=Ii(e.slice(1));8!==t.length&&11!==t.length&&Xc.throwArgumentError("invalid component count for transaction type: 1","payload",Kn(e));const n={type:1,chainId:Qc(t[0]).toNumber(),nonce:Qc(t[1]).toNumber(),gasPrice:Qc(t[2]),gasLimit:Qc(t[3]),to:Yc(t[4]),value:Qc(t[5]),data:t[6],accessList:il(t[7])};return 8===t.length||(n.hash=yi(e),cl(n,t.slice(8),sl)),n}(t);case 2:return function(e){const t=Ii(e.slice(1));9!==t.length&&12!==t.length&&Xc.throwArgumentError("invalid component count for transaction type: 2","payload",Kn(e));const n=Qc(t[2]),r=Qc(t[3]),i={type:2,chainId:Qc(t[0]).toNumber(),nonce:Qc(t[1]).toNumber(),maxPriorityFeePerGas:n,maxFeePerGas:r,gasPrice:null,gasLimit:Qc(t[4]),to:Yc(t[5]),value:Qc(t[6]),data:t[7],accessList:il(t[8])};return 9===t.length||(i.hash=yi(e),cl(i,t.slice(9),ol)),i}(t)}return Xc.throwError(`unsupported transaction type: ${t[0]}`,Pn.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:t[0]})}var dl=Object.freeze({__proto__:null,get TransactionTypes(){return Jc},accessListify:il,computeAddress:el,parse:ll,recoverAddress:tl,serialize:ul});var fl=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 pl=new Pn("contracts/5.7.0"),hl={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 ml(e,t){return fl(this,void 0,void 0,(function*(){const n=yield t;"string"!=typeof n&&pl.throwArgumentError("invalid address or ENS name","name",n);try{return xi(n)}catch(e){}e||pl.throwError("a provider or signer is needed to resolve ENS names",Pn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const r=yield e.resolveName(n);return null==r&&pl.throwArgumentError("resolver or addr is not configured for ENS name","name",n),r}))}function yl(e,t,n){return fl(this,void 0,void 0,(function*(){return Array.isArray(n)?yield Promise.all(n.map(((n,r)=>yl(e,Array.isArray(t)?t[r]:t[n.name],n)))):"address"===n.type?yield ml(e,t):"tuple"===n.type?yield yl(e,t,n.components):"array"===n.baseType?Array.isArray(t)?yield Promise.all(t.map((t=>yl(e,t,n.arrayChildren)))):Promise.reject(pl.makeError("invalid value for array",Pn.errors.INVALID_ARGUMENT,{argument:"value",value:t})):t}))}function gl(e,t,n){return fl(this,void 0,void 0,(function*(){let r={};n.length===t.inputs.length+1&&"object"==typeof n[n.length-1]&&(r=Pr(n.pop())),pl.checkArgumentCount(n.length,t.inputs.length,"passed to contract"),e.signer?r.from?r.from=Nr({override:ml(e.signer,r.from),signer:e.signer.getAddress()}).then((e=>fl(this,void 0,void 0,(function*(){return xi(e.signer)!==e.override&&pl.throwError("Contract with a Signer cannot override from",Pn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),e.override})))):r.from=e.signer.getAddress():r.from&&(r.from=ml(e.provider,r.from));const i=yield Nr({args:yl(e.signer||e.provider,n,t.inputs),address:e.resolvedAddress,overrides:Nr(r)||{}}),a=e.interface.encodeFunctionData(t,i.args),o={data:a,to:i.address},s=i.overrides;if(null!=s.nonce&&(o.nonce=cr.from(s.nonce).toNumber()),null!=s.gasLimit&&(o.gasLimit=cr.from(s.gasLimit)),null!=s.gasPrice&&(o.gasPrice=cr.from(s.gasPrice)),null!=s.maxFeePerGas&&(o.maxFeePerGas=cr.from(s.maxFeePerGas)),null!=s.maxPriorityFeePerGas&&(o.maxPriorityFeePerGas=cr.from(s.maxPriorityFeePerGas)),null!=s.from&&(o.from=s.from),null!=s.type&&(o.type=s.type),null!=s.accessList&&(o.accessList=il(s.accessList)),null==o.gasLimit&&null!=t.gas){let e=21e3;const n=jn(a);for(let t=0;t<n.length;t++)e+=4,n[t]&&(e+=64);o.gasLimit=cr.from(t.gas).add(e)}if(s.value){const e=cr.from(s.value);e.isZero()||t.payable||pl.throwError("non-payable method cannot override value",Pn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:r.value}),o.value=e}s.customData&&(o.customData=Pr(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&&pl.throwError(`cannot override ${u.map((e=>JSON.stringify(e))).join(",")}`,Pn.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:u}),o}))}function bl(e,t){const n=t.wait.bind(t);t.wait=t=>n(t).then((t=>(t.events=t.logs.map((n=>{let r=Fr(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 vl(e,t,n){const r=e.signer||e.provider;return function(...i){return fl(this,void 0,void 0,(function*(){let a;if(i.length===t.inputs.length+1&&"object"==typeof i[i.length-1]){const e=Pr(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 gl(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===Pn.errors.CALL_EXCEPTION&&(t.address=e.address,t.args=i,t.transaction=o),t}}))}}function Tl(e,t,n){return t.constant?vl(e,t,n):function(e,t){return function(...n){return fl(this,void 0,void 0,(function*(){e.signer||pl.throwError("sending a transaction requires a signer",Pn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=e.deployTransaction&&(yield e._deployed());const r=yield gl(e,t,n),i=yield e.signer.sendTransaction(r);return bl(e,i),i}))}}(e,t)}function wl(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 Al=class{constructor(e,t){kr(this,"tag",e),kr(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]}},El=class extends Al{constructor(){super("error",null)}},_l=class extends Al{constructor(e,t,n,r){const i={address:e};let a=t.getEventTopic(n);r?(a!==r[0]&&pl.throwArgumentError("topic mismatch","topics",r),i.topics=r.slice()):i.topics=[a],super(wl(i),i),kr(this,"address",e),kr(this,"interface",t),kr(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=di(e.args);if(t.length)throw t[0].error;const n=(e.args||[]).slice();return n.push(e),n}},Il=class extends Al{constructor(e,t){super("*",{address:e}),kr(this,"address",e),kr(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){}}},Rl=class{constructor(e,t,n){kr(this,"interface",Sr(new.target,"getInterface")(t)),null==n?(kr(this,"provider",null),kr(this,"signer",null)):ns.isSigner(n)?(kr(this,"provider",n.provider||null),kr(this,"signer",n)):Qo.isProvider(n)?(kr(this,"provider",n),kr(this,"signer",null)):pl.throwArgumentError("invalid signer or provider","signerOrProvider",n),kr(this,"callStatic",{}),kr(this,"estimateGas",{}),kr(this,"functions",{}),kr(this,"populateTransaction",{}),kr(this,"filters",{});{const e={};Object.keys(this.interface.events).forEach((t=>{const n=this.interface.events[t];kr(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?kr(this.filters,t,this.filters[n[0]]):pl.warn(`Duplicate definition of ${t} (${n.join(", ")})`)}))}if(kr(this,"_runningEvents",{}),kr(this,"_wrappedEmits",{}),null==e&&pl.throwArgumentError("invalid contract address or ENS name","addressOrName",e),kr(this,"address",e),this.provider)kr(this,"resolvedAddress",ml(this.provider,e));else try{kr(this,"resolvedAddress",Promise.resolve(xi(e)))}catch(e){pl.throwError("provider is required to use ENS name as contract address",Pn.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])pl.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]&&kr(this,e,Tl(this,t,!0)),null==this.functions[e]&&kr(this.functions,e,Tl(this,t,!1)),null==this.callStatic[e]&&kr(this.callStatic,e,vl(this,t,!0)),null==this.populateTransaction[e]&&kr(this.populateTransaction,e,function(e,t){return function(...n){return gl(e,t,n)}}(this,t)),null==this.estimateGas[e]&&kr(this.estimateGas,e,function(e,t){const n=e.signer||e.provider;return function(...r){return fl(this,void 0,void 0,(function*(){n||pl.throwError("estimate require a provider or signer",Pn.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const i=yield gl(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]&&kr(this,e,this[n])}catch(e){}null==this.functions[e]&&kr(this.functions,e,this.functions[n]),null==this.callStatic[e]&&kr(this.callStatic,e,this.callStatic[n]),null==this.populateTransaction[e]&&kr(this.populateTransaction,e,this.populateTransaction[n]),null==this.estimateGas[e]&&kr(this.estimateGas,e,this.estimateGas[n])}))}static getContractAddress(e){return Bi(e)}static getInterface(e){return Vo.isInterface(e)?e:new Vo(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&&pl.throwError("contract not deployed",Pn.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(e){this.signer||pl.throwError("sending a transactions require a signer",Pn.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const t=Pr(e||{});return["from","to"].forEach((function(e){null!=t[e]&&pl.throwError("cannot override "+e,Pn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(t)))}connect(e){"string"==typeof e&&(e=new rs(e,this.provider));const t=new this.constructor(this.address,this.interface,e);return this.deployTransaction&&kr(t,"deployTransaction",this.deployTransaction),t}attach(e){return new this.constructor(e,this.interface,this.signer||this.provider)}static isIndexed(e){return Ho.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 El);if("event"===e)return this._normalizeRunningEvent(new Al("event",null));if("*"===e)return this._normalizeRunningEvent(new Il(this.address,this.interface));const t=this.interface.getEvent(e);return this._normalizeRunningEvent(new _l(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 _l(this.address,this.interface,n,e.topics))}catch(e){}const t={address:this.address,topics:e.topics};return this._normalizeRunningEvent(new Al(wl(t),t))}return this._normalizeRunningEvent(new Il(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=Fr(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||pl.throwError("events require a provider or a signer with a provider",Pn.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=Pr(r.filter);return"string"==typeof t&&Wn(t,32)?(null!=n&&pl.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)}},Cl=class extends Rl{};class Ol{constructor(e,t,n){let r=null;r="string"==typeof t?t:qn(t)?Kn(t):t&&"string"==typeof t.object?t.object:"!","0x"!==r.substring(0,2)&&(r="0x"+r),(!Wn(r)||r.length%2)&&pl.throwArgumentError("invalid bytecode","bytecode",t),n&&!ns.isSigner(n)&&pl.throwArgumentError("invalid signer","signer",n),kr(this,"bytecode",r),kr(this,"interface",Sr(new.target,"getInterface")(e)),kr(this,"signer",n||null)}getDeployTransaction(...e){let t={};if(e.length===this.interface.deploy.inputs.length+1&&"object"==typeof e[e.length-1]){t=Pr(e.pop());for(const e in t)if(!hl[e])throw new Error("unknown transaction override "+e)}if(["data","from","to"].forEach((e=>{null!=t[e]&&pl.throwError("cannot override "+e,Pn.errors.UNSUPPORTED_OPERATION,{operation:e})})),t.value){cr.from(t.value).isZero()||this.interface.deploy.payable||pl.throwError("non-payable constructor cannot override value",Pn.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:t.value})}return pl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor"),t.data=Kn(Gn([this.bytecode,this.interface.encodeDeploy(e)])),t}deploy(...e){return fl(this,void 0,void 0,(function*(){let t={};e.length===this.interface.deploy.inputs.length+1&&(t=e.pop()),pl.checkArgumentCount(e.length,this.interface.deploy.inputs.length," in Contract constructor");const n=yield yl(this.signer,e,this.interface.deploy.inputs);n.push(t);const r=this.getDeployTransaction(...n),i=yield this.signer.sendTransaction(r),a=Sr(this.constructor,"getContractAddress")(i),o=Sr(this.constructor,"getContract")(a,this.interface,this.signer);return bl(o,i),kr(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&&pl.throwError("missing compiler output",Pn.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 Cl.getInterface(e)}static getContractAddress(e){return Bi(e)}static getContract(e,t,n){return new Cl(e,t,n)}}class kl{constructor(e){kr(this,"alphabet",e),kr(this,"base",e.length),kr(this,"_alphabetMap",{}),kr(this,"_leader",e.charAt(0));for(let t=0;t<e.length;t++)this._alphabetMap[e.charAt(t)]=t}encode(e){let t=jn(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 jn(new Uint8Array(t.reverse()))}}const Sl=new kl("abcdefghijklmnopqrstuvwxyz234567"),Nl=new kl("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");var xl,Pl=Object.freeze({__proto__:null,Base32:Sl,Base58:Nl,BaseX:kl});!function(e){e.sha256="sha256",e.sha512="sha512"}(xl||(xl={}));const Ml=new Pn("sha2/5.7.0");function Bl(e){return"0x"+rc.ripemd160().update(jn(e)).digest("hex")}function Dl(e){return"0x"+rc.sha256().update(jn(e)).digest("hex")}function Fl(e){return"0x"+rc.sha512().update(jn(e)).digest("hex")}function Ll(e,t,n){return xl[e]||Ml.throwError("unsupported algorithm "+e,Pn.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:e}),"0x"+rc.hmac(rc[e],jn(t)).update(jn(n)).digest("hex")}var Ul=Object.freeze({__proto__:null,get SupportedAlgorithm(){return xl},computeHmac:Ll,ripemd160:Bl,sha256:Dl,sha512:Fl});function ql(e,t,n,r,i){let a;e=jn(e),t=jn(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=jn(Ll(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=jn(Ll(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(jn(l).slice(0,h),p)}return Kn(s)}const jl=new Pn("wordlists/5.7.0");class Gl{constructor(e){jl.checkAbstract(new.target,Gl),kr(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 qa(t.join("\n")+"\n")}static register(e,t){t||(t=e.locale)}}let Hl=null;function zl(e){if(null==Hl&&(Hl="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo".replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==Gl.check(e)))throw Hl=null,new Error("BIP39 Wordlist for en (English) FAILED")}const Wl=new class extends Gl{constructor(){super("en")}getWord(e){return zl(this),Hl[e]}getWordIndex(e){return zl(this),Hl.indexOf(e)}};Gl.register(Wl);const Vl={en:Wl},Kl=new Pn("hdnode/5.7.0"),Xl=cr.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Jl=pa("Bitcoin seed"),Yl=2147483648;function Ql(e){return(1<<e)-1<<8-e}function $l(e){return Zn(Kn(e),32)}function Zl(e){return Nl.encode(Gn([e,Jn(Dl(Dl(e)),0,4)]))}function ed(e){if(null==e)return Vl.en;if("string"==typeof e){const t=Vl[e];return null==t&&Kl.throwArgumentError("unknown locale","wordlist",e),t}return e}const td={},nd="m/44'/60'/0'/0/0";class rd{constructor(e,t,n,r,i,a,o,s){if(e!==td)throw new Error("HDNode constructor cannot be called directly");if(t){const e=new zc(t);kr(this,"privateKey",e.privateKey),kr(this,"publicKey",e.compressedPublicKey)}else kr(this,"privateKey",null),kr(this,"publicKey",Kn(n));kr(this,"parentFingerprint",r),kr(this,"fingerprint",Jn(Bl(Dl(this.publicKey)),0,4)),kr(this,"address",el(this.publicKey)),kr(this,"chainCode",i),kr(this,"index",a),kr(this,"depth",o),null==s?(kr(this,"mnemonic",null),kr(this,"path",null)):"string"==typeof s?(kr(this,"mnemonic",null),kr(this,"path",s)):(kr(this,"mnemonic",s),kr(this,"path",s.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return Zl(Gn([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",Kn(this.depth),this.parentFingerprint,Zn(Kn(this.index),4),this.chainCode,null!=this.privateKey?Gn(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new rd(td,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&Yl){if(!this.privateKey)throw new Error("cannot derive child of neutered node");n.set(jn(this.privateKey),1),t&&(t+="'")}else n.set(jn(this.publicKey));for(let t=24;t>=0;t-=8)n[33+(t>>3)]=e>>24-t&255;const r=jn(Ll(xl.sha512,this.chainCode,n)),i=r.slice(0,32),a=r.slice(32);let o=null,s=null;if(this.privateKey)o=$l(cr.from(i).add(this.privateKey).mod(Xl));else{s=new zc(Kn(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 rd(td,o,s,this.fingerprint,$l(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>=Yl)throw new Error("invalid path index - "+r);n=n._derive(Yl+e)}else{if(!r.match(/^[0-9]+$/))throw new Error("invalid path component - "+r);{const e=parseInt(r);if(e>=Yl)throw new Error("invalid path index - "+r);n=n._derive(e)}}}return n}static _fromSeed(e,t){const n=jn(e);if(n.length<16||n.length>64)throw new Error("invalid seed");const r=jn(Ll(xl.sha512,Jl,n));return new rd(td,$l(r.slice(0,32)),null,"0x00000000",$l(r.slice(32)),0,0,t)}static fromMnemonic(e,t,n){return e=od(ad(e,n=ed(n)),n),rd._fromSeed(id(e,t),{phrase:e,path:"m",locale:n.locale})}static fromSeed(e){return rd._fromSeed(e,null)}static fromExtendedKey(e){const t=Nl.decode(e);82===t.length&&Zl(t.slice(0,78))===e||Kl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const n=t[4],r=Kn(t.slice(5,9)),i=parseInt(Kn(t.slice(9,13)).substring(2),16),a=Kn(t.slice(13,45)),o=t.slice(45,78);switch(Kn(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new rd(td,null,Kn(o),r,a,i,n,null);case"0x0488ade4":case"0x04358394 ":if(0!==o[0])break;return new rd(td,Kn(o.slice(1)),null,r,a,i,n,null)}return Kl.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function id(e,t){t||(t="");const n=pa("mnemonic"+t,ua.NFKD);return ql(pa(e,ua.NFKD),n,2048,64,"sha512")}function ad(e,t){t=ed(t),Kl.checkNormalize();const n=t.split(e);if(n.length%3!=0)throw new Error("invalid mnemonic");const r=jn(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=Ql(n.length/3);if((jn(Dl(r.slice(0,a/8)))[0]&o)!==(r[r.length-1]&o))throw new Error("invalid checksum");return Kn(r.slice(0,a/8))}function od(e,t){if(t=ed(t),(e=jn(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=jn(Dl(e))[0]&Ql(i);return n[n.length-1]<<=i,n[n.length-1]|=a>>8-i,t.join(n.map((e=>t.getWord(e))))}function sd(e,t){try{return ad(e,t),!0}catch(e){}return!1}function ud(e){return("number"!=typeof e||e<0||e>=Yl||e%1)&&Kl.throwArgumentError("invalid account index","index",e),`m/44'/60'/${e}'/0/0`}var cd=Object.freeze({__proto__:null,HDNode:rd,defaultPath:nd,entropyToMnemonic:od,getAccountPath:ud,isValidMnemonic:sd,mnemonicToEntropy:ad,mnemonicToSeed:id});const ld=new Pn("random/5.7.0");const dd=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 fd=dd.crypto||dd.msCrypto;function pd(e){(e<=0||e>1024||e%1||e!=e)&&ld.throwArgumentError("invalid length","length",e);const t=new Uint8Array(e);return fd.getRandomValues(t),jn(t)}function hd(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}fd&&fd.getRandomValues||(ld.warn("WARNING: Missing strong random number source"),fd={getRandomValues:function(e){return ld.throwError("no secure random source avaialble",Pn.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});var md=Object.freeze({__proto__:null,randomBytes:pd,shuffled:hd}),yd={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}()}(yd);var gd=bt(yd.exports);const bd="json-wallets/5.7.0";function vd(e){return"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),jn(e)}function Td(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function wd(e){return"string"==typeof e?pa(e,ua.NFKC):jn(e)}function Ad(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 Ed(e){const t=jn(e);t[6]=15&t[6]|64,t[8]=63&t[8]|128;const n=Kn(t);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const _d=new Pn(bd);class Id extends Lr{isCrowdsaleAccount(e){return!(!e||!e._isCrowdsaleAccount)}}function Rd(e,t){const n=JSON.parse(e);t=wd(t);const r=xi(Ad(n,"ethaddr")),i=vd(Ad(n,"encseed"));i&&i.length%16==0||_d.throwArgumentError("invalid encseed","json",e);const a=jn(ql(t,t,2e3,32,"sha256")).slice(0,16),o=i.slice(0,16),s=i.slice(16),u=new gd.ModeOfOperation.cbc(a,o),c=gd.padding.pkcs7.strip(jn(u.decrypt(s)));let l="";for(let e=0;e<c.length;e++)l+=String.fromCharCode(c[e]);const d=yi(pa(l));return new Id({_isCrowdsaleAccount:!0,address:r,privateKey:d})}function Cd(e){let t=null;try{t=JSON.parse(e)}catch(e){return!1}return t.encseed&&t.ethaddr}function Od(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 kd(e){if(Cd(e))try{return xi(JSON.parse(e).ethaddr)}catch(e){return null}if(Od(e))try{return xi(JSON.parse(e).address)}catch(e){return null}return null}var Sd={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}()}(Sd);var Nd=bt(Sd.exports),xd=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 Pd=new Pn(bd);function Md(e){return null!=e&&e.mnemonic&&e.mnemonic.phrase}class Bd extends Lr{isKeystoreAccount(e){return!(!e||!e._isKeystoreAccount)}}function Dd(e,t){const n=vd(Ad(e,"crypto/ciphertext"));if(Kn(yi(Gn([t.slice(16,32),n]))).substring(2)!==Ad(e,"crypto/mac").toLowerCase())throw new Error("invalid password");const r=function(e,t,n){if("aes-128-ctr"===Ad(e,"crypto/cipher")){const r=vd(Ad(e,"crypto/cipherparams/iv")),i=new gd.Counter(r);return jn(new gd.ModeOfOperation.ctr(t,i).decrypt(n))}return null}(e,t.slice(0,16),n);r||Pd.throwError("unsupported cipher",Pn.errors.UNSUPPORTED_OPERATION,{operation:"decrypt"});const i=t.slice(32,64),a=el(r);if(e.address){let t=e.address.toLowerCase();if("0x"!==t.substring(0,2)&&(t="0x"+t),xi(t)!==a)throw new Error("address mismatch")}const o={_isKeystoreAccount:!0,address:a,privateKey:Kn(r)};if("0.1"===Ad(e,"x-ethers/version")){const t=vd(Ad(e,"x-ethers/mnemonicCiphertext")),n=vd(Ad(e,"x-ethers/mnemonicCounter")),r=new gd.Counter(n),a=new gd.ModeOfOperation.ctr(i,r),s=Ad(e,"x-ethers/path")||nd,u=Ad(e,"x-ethers/locale")||"en",c=jn(a.decrypt(t));try{const e=od(c,u),t=rd.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!==Pn.errors.INVALID_ARGUMENT||"wordlist"!==e.argument)throw e}}return new Bd(o)}function Fd(e,t,n,r,i){return jn(ql(e,t,n,r,i))}function Ld(e,t,n,r,i){return Promise.resolve(Fd(e,t,n,r,i))}function Ud(e,t,n,r,i){const a=wd(t),o=Ad(e,"crypto/kdf");if(o&&"string"==typeof o){const t=function(e,t){return Pd.throwArgumentError("invalid key-derivation function parameters",e,t)};if("scrypt"===o.toLowerCase()){const n=vd(Ad(e,"crypto/kdfparams/salt")),s=parseInt(Ad(e,"crypto/kdfparams/n")),u=parseInt(Ad(e,"crypto/kdfparams/r")),c=parseInt(Ad(e,"crypto/kdfparams/p"));s&&u&&c||t("kdf",o),0!=(s&s-1)&&t("N",s);const l=parseInt(Ad(e,"crypto/kdfparams/dklen"));return 32!==l&&t("dklen",l),r(a,n,s,u,c,64,i)}if("pbkdf2"===o.toLowerCase()){const r=vd(Ad(e,"crypto/kdfparams/salt"));let i=null;const o=Ad(e,"crypto/kdfparams/prf");"hmac-sha256"===o?i="sha256":"hmac-sha512"===o?i="sha512":t("prf",o);const s=parseInt(Ad(e,"crypto/kdfparams/c")),u=parseInt(Ad(e,"crypto/kdfparams/dklen"));return 32!==u&&t("dklen",u),n(a,r,s,u,i)}}return Pd.throwArgumentError("unsupported key-derivation function","kdf",o)}function qd(e,t){const n=JSON.parse(e);return Dd(n,Ud(n,t,Fd,Nd.syncScrypt))}function jd(e,t,n){return xd(this,void 0,void 0,(function*(){const r=JSON.parse(e);return Dd(r,yield Ud(r,t,Ld,Nd.scrypt,n))}))}function Gd(e,t,n,r){try{if(xi(e.address)!==el(e.privateKey))throw new Error("address/privateKey mismatch");if(Md(e)){const t=e.mnemonic;if(rd.fromMnemonic(t.phrase,null,t.locale).derivePath(t.path||nd).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=jn(e.privateKey),a=wd(t);let o=null,s=null,u=null;if(Md(e)){const t=e.mnemonic;o=jn(ad(t.phrase,t.locale||"en")),s=t.path||nd,u=t.locale||"en"}let c=n.client;c||(c="ethers.js");let l=null;l=n.salt?jn(n.salt):pd(32);let d=null;if(n.iv){if(d=jn(n.iv),16!==d.length)throw new Error("invalid iv")}else d=pd(16);let f=null;if(n.uuid){if(f=jn(n.uuid),16!==f.length)throw new Error("invalid uuid")}else f=pd(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)),Nd.scrypt(a,l,p,h,m,64,r).then((t=>{const n=(t=jn(t)).slice(0,16),r=t.slice(16,32),a=t.slice(32,64),y=new gd.Counter(d),g=jn(new gd.ModeOfOperation.ctr(n,y).encrypt(i)),b=yi(Gn([r,g])),v={address:e.address.substring(2).toLowerCase(),id:Ed(f),version:3,crypto:{cipher:"aes-128-ctr",cipherparams:{iv:Kn(d).substring(2)},ciphertext:Kn(g).substring(2),kdf:"scrypt",kdfparams:{salt:Kn(l).substring(2),n:p,dklen:32,p:m,r:h},mac:b.substring(2)}};if(o){const e=pd(16),t=new gd.Counter(e),n=jn(new gd.ModeOfOperation.ctr(a,t).encrypt(o)),r=new Date,i=r.getUTCFullYear()+"-"+Td(r.getUTCMonth()+1,2)+"-"+Td(r.getUTCDate(),2)+"T"+Td(r.getUTCHours(),2)+"-"+Td(r.getUTCMinutes(),2)+"-"+Td(r.getUTCSeconds(),2)+".0Z";v["x-ethers"]={client:c,gethFilename:"UTC--"+i+"--"+v.address,mnemonicCounter:Kn(e).substring(2),mnemonicCiphertext:Kn(n).substring(2),path:s,locale:u,version:"0.1"}}return JSON.stringify(v)}))}function Hd(e,t,n){if(Cd(e)){n&&n(0);const r=Rd(e,t);return n&&n(1),Promise.resolve(r)}return Od(e)?jd(e,t,n):Promise.reject(new Error("invalid JSON wallet"))}function zd(e,t){if(Cd(e))return Rd(e,t);if(Od(e))return qd(e,t);throw new Error("invalid JSON wallet")}var Wd=Object.freeze({__proto__:null,decryptCrowdsale:Rd,decryptJsonWallet:Hd,decryptJsonWalletSync:zd,decryptKeystore:jd,decryptKeystoreSync:qd,encryptKeystore:Gd,getJsonWalletAddress:kd,isCrowdsaleWallet:Cd,isKeystoreWallet:Od});var Vd=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 Kd=new Pn("wallet/5.7.0");class Xd extends ns{constructor(e,t){if(super(),null!=(n=e)&&Wn(n.privateKey,32)&&null!=n.address){const t=new zc(e.privateKey);if(kr(this,"_signingKey",(()=>t)),kr(this,"address",el(this.publicKey)),this.address!==xi(e.address)&&Kd.throwArgumentError("privateKey/address mismatch","privateKey","[REDACTED]"),function(e){const t=e.mnemonic;return t&&t.phrase}(e)){const t=e.mnemonic;kr(this,"_mnemonic",(()=>({phrase:t.phrase,path:t.path||nd,locale:t.locale||"en"})));const n=this.mnemonic;el(rd.fromMnemonic(n.phrase,null,n.locale).derivePath(n.path).privateKey)!==this.address&&Kd.throwArgumentError("mnemonic/address mismatch","privateKey","[REDACTED]")}else kr(this,"_mnemonic",(()=>null))}else{if(zc.isSigningKey(e))"secp256k1"!==e.curve&&Kd.throwArgumentError("unsupported curve; must be secp256k1","privateKey","[REDACTED]"),kr(this,"_signingKey",(()=>e));else{"string"==typeof e&&e.match(/^[0-9a-f]*$/i)&&64===e.length&&(e="0x"+e);const t=new zc(e);kr(this,"_signingKey",(()=>t))}kr(this,"_mnemonic",(()=>null)),kr(this,"address",el(this.publicKey))}var n;t&&!Qo.isProvider(t)&&Kd.throwArgumentError("invalid provider","provider",t),kr(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 Xd(this,e)}signTransaction(e){return Nr(e).then((t=>{null!=t.from&&(xi(t.from)!==this.address&&Kd.throwArgumentError("transaction from address mismatch","transaction.from",e.from),delete t.from);const n=this._signingKey().signDigest(yi(ul(t)));return ul(t,n)}))}signMessage(e){return Vd(this,void 0,void 0,(function*(){return tr(this._signingKey().signDigest(wo(e)))}))}_signTypedData(e,t,n){return Vd(this,void 0,void 0,(function*(){const r=yield Fo.resolveNames(e,t,n,(e=>(null==this.provider&&Kd.throwError("cannot resolve ENS names without a provider",Pn.errors.UNSUPPORTED_OPERATION,{operation:"resolveName",value:e}),this.provider.resolveName(e))));return tr(this._signingKey().signDigest(Fo.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={}),Gd(this,e,t,n)}static createRandom(e){let t=pd(16);e||(e={}),e.extraEntropy&&(t=jn(Jn(yi(Gn([t,e.extraEntropy])),0,16)));const n=od(t,e.locale);return Xd.fromMnemonic(n,e.path,e.locale)}static fromEncryptedJson(e,t,n){return Hd(e,t,n).then((e=>new Xd(e)))}static fromEncryptedJsonSync(e,t){return new Xd(zd(e,t))}static fromMnemonic(e,t,n){return t||(t=nd),new Xd(rd.fromMnemonic(e,null,n).derivePath(t))}}function Jd(e,t){return tl(wo(e),t)}function Yd(e,t,n,r){return tl(Fo.hash(e,t,n),r)}var Qd=Object.freeze({__proto__:null,Wallet:Xd,verifyMessage:Jd,verifyTypedData:Yd});const $d=new Pn("networks/5.7.1");function Zd(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 Zd(e)},t}function ef(e,t){const n=function(n,r){return n.JsonRpcProvider?new n.JsonRpcProvider(e,t):null};return n.renetwork=function(t){return ef(e,t)},n}const tf={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:Zd("homestead")},nf={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:Zd("ropsten")},rf={chainId:63,name:"classicMordor",_defaultProvider:ef("https://www.ethercluster.com/mordor","classicMordor")},af={unspecified:{chainId:0,name:"unspecified"},homestead:tf,mainnet:tf,morden:{chainId:2,name:"morden"},ropsten:nf,testnet:nf,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:Zd("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:Zd("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:Zd("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:Zd("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:ef("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:rf,classicTestnet:rf,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:ef("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:Zd("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:Zd("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 of(e){if(null==e)return null;if("number"==typeof e){for(const t in af){const n=af[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=af[e];return null==t?null:{name:t.name,chainId:t.chainId,ensAddress:t.ensAddress,_defaultProvider:t._defaultProvider||null}}const t=af[e.name];if(!t)return"number"!=typeof e.chainId&&$d.throwArgumentError("invalid network chainId","network",e),e;0!==e.chainId&&e.chainId!==t.chainId&&$d.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 sf=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 uf(e,t){return sf(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:jn(new Uint8Array(i))}}))}var cf=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 lf=new Pn("web/5.7.1");function df(e){return new Promise((t=>{setTimeout(t,e)}))}function ff(e,t){if(null==e)return null;if("string"==typeof e)return e;if(Ln(e)){if(t&&("text"===t.split("/")[0]||"application/json"===t.split(";")[0].trim()))try{return ga(e)}catch(e){}return Kn(e)}return e}function pf(e,t,n){const r="object"==typeof e&&null!=e.throttleLimit?e.throttleLimit:12;lf.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;lf.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||lf.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&&lf.throwError("basic authentication requires a secure https url",Pn.errors.INVALID_ARGUMENT,{argument:"url",url:u,user:e.user,password:"[REDACTED]"});const t=e.user+":"+e.password;s.authorization={key:"Authorization",value:"Basic "+Ha(pa(t))}}null!=e.skipFetchSetup&&(c.skipFetchSetup=!!e.skipFetchSetup),null!=e.fetchOptions&&(c.fetchOptions=Pr(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]?Ga(p[3]):(h=p[3],pa(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){lf.throwError("processing response error",Pn.errors.SERVER_ERROR,{body:ff(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(lf.makeError("timeout",Pn.errors.TIMEOUT,{requestBody:ff(c.body,m["content-type"]),requestMethod:c.method,timeout:d,url:u})))}),d))})),cancel:function(){null!=e&&(clearTimeout(e),e=null)}}}(),g=function(){return cf(this,void 0,void 0,(function*(){for(let e=0;e<r;e++){let t=null;try{if(t=yield uf(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 df(n);continue}}}catch(e){t=e.response,null==t&&(y.cancel(),lf.throwError("missing response",Pn.errors.SERVER_ERROR,{requestBody:ff(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(),lf.throwError("bad response",Pn.errors.SERVER_ERROR,{status:t.statusCode,headers:t.headers,body:ff(s,t.headers?t.headers["content-type"]:null),requestBody:ff(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 df(t);continue}}y.cancel(),lf.throwError("processing response error",Pn.errors.SERVER_ERROR,{body:ff(s,t.headers?t.headers["content-type"]:null),error:n,requestBody:ff(c.body,m["content-type"]),requestMethod:c.method,url:u})}return y.cancel(),s}return lf.throwError("failed response",Pn.errors.SERVER_ERROR,{requestBody:ff(c.body,m["content-type"]),requestMethod:c.method,url:u})}))}();return Promise.race([y.promise,g])}function hf(e,t,n){let r=null;if(null!=t){r=pa(t);const n="string"==typeof e?{url:e}:Pr(e);if(n.headers){0!==Object.keys(n.headers).filter((e=>"content-type"===e.toLowerCase())).length||(n.headers=Pr(n.headers),n.headers["content-type"]="application/json")}else n.headers={"content-type":"application/json"};e=n}return pf(e,r,((e,t)=>{let r=null;if(null!=e)try{r=JSON.parse(ga(e))}catch(t){lf.throwError("invalid JSON",Pn.errors.SERVER_ERROR,{body:e,error:t})}return n&&(r=n(r,t)),r}))}function mf(e,t){return t||(t={}),null==(t=Pr(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 yf=Object.freeze({__proto__:null,_fetchData:pf,fetchJson:hf,poll:mf}),gf="qpzry9x8gf2tvdw0s3jn54khce6mua7l",bf={},vf=0;vf<32;vf++){var Tf=gf.charAt(vf);if(void 0!==bf[Tf])throw new TypeError(Tf+" is ambiguous");bf[Tf]=vf}function wf(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 Af(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=wf(t)^r>>5}for(t=wf(t),n=0;n<e.length;++n){var i=e.charCodeAt(n);t=wf(t)^31&i}return t}function Ef(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=Af(a);if("string"==typeof s)return s;for(var u=[],c=0;c<o.length;++c){var l=o.charAt(c),d=bf[l];if(void 0===d)return"Unknown character "+l;s=wf(s)^d,c+6>=o.length||u.push(d)}return 1!==s?"Invalid checksum for "+e:{prefix:a,words:u}}function _f(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 If={decodeUnsafe:function(){var e=Ef.apply(null,arguments);if("object"==typeof e)return e},decode:function(e){var t=Ef.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=Af(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=wf(r)^o,i+=gf.charAt(o)}for(a=0;a<6;++a)r=wf(r);for(r^=1,a=0;a<6;++a){i+=gf.charAt(r>>5*(5-a)&31)}return i},toWordsUnsafe:function(e){var t=_f(e,8,5,!0);if(Array.isArray(t))return t},toWords:function(e){var t=_f(e,8,5,!0);if(Array.isArray(t))return t;throw new Error(t)},fromWordsUnsafe:function(e){var t=_f(e,5,8,!1);if(Array.isArray(t))return t},fromWords:function(e){var t=_f(e,5,8,!1);if(Array.isArray(t))return t;throw new Error(t)}},Rf=bt(If);const Cf="providers/5.7.2",Of=new Pn(Cf);class kf{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:kf.allowNull(this.accessList.bind(this),null),blockHash:kf.allowNull(a,null),blockNumber:kf.allowNull(s,null),transactionIndex:kf.allowNull(s,null),confirmations:kf.allowNull(s,null),from:t,gasPrice:kf.allowNull(n),maxPriorityFeePerGas:kf.allowNull(n),maxFeePerGas:kf.allowNull(n),gasLimit:n,to:kf.allowNull(t,null),value:n,nonce:s,data:i,r:kf.allowNull(this.uint256),s:kf.allowNull(this.uint256),v:kf.allowNull(s),creates:kf.allowNull(t,null),raw:kf.allowNull(i)},e.transactionRequest={from:kf.allowNull(t),nonce:kf.allowNull(s),gasLimit:kf.allowNull(n),gasPrice:kf.allowNull(n),maxPriorityFeePerGas:kf.allowNull(n),maxFeePerGas:kf.allowNull(n),to:kf.allowNull(t),value:kf.allowNull(n),data:kf.allowNull((e=>this.data(e,!0))),type:kf.allowNull(s),accessList:kf.allowNull(this.accessList.bind(this),null)},e.receiptLog={transactionIndex:s,blockNumber:s,transactionHash:a,address:t,topics:kf.arrayOf(a),data:i,logIndex:s,blockHash:a},e.receipt={to:kf.allowNull(this.address,null),from:kf.allowNull(this.address,null),contractAddress:kf.allowNull(t,null),transactionIndex:s,root:kf.allowNull(o),gasUsed:n,logsBloom:kf.allowNull(i),blockHash:a,transactionHash:a,logs:kf.arrayOf(this.receiptLog.bind(this)),blockNumber:s,confirmations:kf.allowNull(s,null),cumulativeGasUsed:n,effectiveGasPrice:kf.allowNull(n),status:kf.allowNull(s),type:u},e.block={hash:kf.allowNull(a),parentHash:a,number:s,timestamp:s,nonce:kf.allowNull(o),difficulty:this.difficulty.bind(this),gasLimit:n,gasUsed:n,miner:kf.allowNull(t),extraData:i,transactions:kf.allowNull(kf.arrayOf(a)),baseFeePerGas:kf.allowNull(n)},e.blockWithTransactions=Pr(e.block),e.blockWithTransactions.transactions=kf.allowNull(kf.arrayOf(this.transactionResponse.bind(this))),e.filter={fromBlock:kf.allowNull(r,void 0),toBlock:kf.allowNull(r,void 0),blockHash:kf.allowNull(a,void 0),address:kf.allowNull(t,void 0),topics:kf.allowNull(this.topics.bind(this),void 0)},e.filterLog={blockNumber:kf.allowNull(s),blockHash:kf.allowNull(a),transactionIndex:s,removed:kf.allowNull(this.boolean.bind(this)),address:t,data:kf.allowFalsish(i,"0x"),topics:kf.arrayOf(a),transactionHash:a,logIndex:s},e}accessList(e){return il(e||[])}number(e){return"0x"===e?0:cr.from(e).toNumber()}type(e){return"0x"===e||null==e?0:cr.from(e).toNumber()}bigNumber(e){return cr.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),Wn(e))?e.toLowerCase():Of.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 xi(e)}callAddress(e){if(!Wn(e,32))return null;const t=xi(Jn(e,12));return t===Ji?null:t}contractAddress(e){return Bi(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||Wn(e))return Qn(e);throw new Error("invalid blockTag")}hash(e,t){const n=this.hex(e,t);return 32!==Xn(n)?Of.throwArgumentError("invalid hash","value",e):n}difficulty(e){if(null==e)return null;const t=cr.from(e);try{return t.toNumber()}catch(e){}return null}uint256(e){if(!Wn(e))throw new Error("invalid uint256");return Zn(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=kf.check(t,e);return r._difficulty=null==n?null:cr.from(n),r}block(e){return this._block(e,this.formats.block)}blockWithTransactions(e){return this._block(e,this.formats.blockWithTransactions)}transactionRequest(e){return kf.check(this.formats.transactionRequest,e)}transactionResponse(e){null!=e.gas&&null==e.gasLimit&&(e.gasLimit=e.gas),e.to&&cr.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=kf.check(this.formats.transaction,e);if(null!=e.chainId){let n=e.chainId;Wn(n)&&(n=cr.from(n).toNumber()),t.chainId=n}else{let n=e.networkId;null==n&&null==t.v&&(n=e.chainId),Wn(n)&&(n=cr.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 ll(e)}receiptLog(e){return kf.check(this.formats.receiptLog,e)}receipt(e){const t=kf.check(this.formats.receipt,e);if(null!=t.root)if(t.root.length<=4){const e=cr.from(t.root).toNumber();0===e||1===e?(null!=t.status&&t.status!==e&&Of.throwArgumentError("alt-root-status/status mismatch","value",{root:t.root,status:t.status}),t.status=e,delete t.root):Of.throwArgumentError("invalid alt-root-status","value.root",t.root)}else 66!==t.root.length&&Of.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 kf.check(this.formats.filter,e)}filterLog(e){return kf.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 Sf(e){return e&&"function"==typeof e.isCommunityResource}function Nf(e){return Sf(e)&&e.isCommunityResource()}let xf=!1;function Pf(){xf||(xf=!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 Mf=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 Bf=new Pn(Cf);function Df(e){return null==e?"null":(32!==Xn(e)&&Bf.throwArgumentError("invalid topic","topic",e),e.toLowerCase())}function Ff(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[Df(e)]=!0}));const n=Object.keys(t);return n.sort(),n.join("|")}return Df(e)})).join("&")}function Lf(e){if("string"==typeof e){if(32===Xn(e=e.toLowerCase()))return"tx:"+e;if(-1===e.indexOf(":"))return e}else{if(Array.isArray(e))return"filter:*:"+Ff(e);if(Yo.isForkEvent(e))throw Bf.warn("not implemented"),new Error("not implemented");if(e&&"object"==typeof e)return"filter:"+(e.address||"*")+":"+Ff(e.topics||[])}throw new Error("invalid event - "+e)}function Uf(){return(new Date).getTime()}function qf(e){return new Promise((t=>{setTimeout(t,e)}))}const jf=["block","network","pending","poll"];class Gf{constructor(e,t,n){kr(this,"tag",e),kr(this,"listener",t),kr(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||jf.indexOf(this.tag)>=0}}const Hf={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 zf(e){return Zn(cr.from(e).toHexString(),32)}function Wf(e){return Nl.encode(Gn([e,Jn(Dl(Dl(e)),0,4)]))}const Vf=new RegExp("^(ipfs)://(.*)$","i"),Kf=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Vf,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function Xf(e,t){try{return ga(Jf(e,t))}catch(e){}return null}function Jf(e,t){if("0x"===e)return null;const n=cr.from(Jn(e,t,t+32)).toNumber(),r=cr.from(Jn(e,n,n+32)).toNumber();return Jn(e,n+32,n+32+r)}function Yf(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):Bf.throwArgumentError("unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}function Qf(e){const t=jn(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 $f(e){if(e.length%32==0)return e;const t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}function Zf(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=jn(e[r]);t[r]=Qf(n),t.push(Qf(i.length)),t.push($f(i)),n+=32+32*Math.ceil(i.length/32)}return Yn(t)}class ep{constructor(e,t,n,r){kr(this,"provider",e),kr(this,"name",n),kr(this,"address",e.formatter.address(t)),kr(this,"_resolvedAddress",r)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then((e=>cr.from(e).eq(1))).catch((e=>{if(e.code===Pn.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,e}))),this._supportsEip2544}_fetch(e,t){return Mf(this,void 0,void 0,(function*(){const n={to:this.address,ccipReadEnabled:!0,data:Yn([e,bo(this.name),t||"0x"])};let r=!1;(yield this.supportsWildcard())&&(r=!0,n.data=Yn(["0x9061b923",Zf([vo(this.name),n.data])]));try{let e=yield this.provider.call(n);return jn(e).length%32==4&&Bf.throwError("resolver threw error",Pn.errors.CALL_EXCEPTION,{transaction:n,data:e}),r&&(e=Jf(e,0)),e}catch(e){if(e.code===Pn.errors.CALL_EXCEPTION)return null;throw e}}))}_fetchBytes(e,t){return Mf(this,void 0,void 0,(function*(){const n=yield this._fetch(e,t);return null!=n?Jf(n,0):null}))}_getAddress(e,t){const n=Hf[String(e)];if(null==n&&Bf.throwError(`unsupported coin type: ${e}`,Pn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`}),"eth"===n.ilk)return this.provider.formatter.address(t);const r=jn(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 Wf(Gn([[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 Wf(Gn([[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=Rf.toWords(r.slice(2));return e.unshift(t),Rf.encode(n.prefix,e)}}return null}getAddress(e){return Mf(this,void 0,void 0,(function*(){if(null==e&&(e=60),60===e)try{const e=yield this._fetch("0x3b3b57de");return"0x"===e||e===ia?null:this.provider.formatter.callAddress(e)}catch(e){if(e.code===Pn.errors.CALL_EXCEPTION)return null;throw e}const t=yield this._fetchBytes("0xf1cb7e06",zf(e));if(null==t||"0x"===t)return null;const n=this._getAddress(e,t);return null==n&&Bf.throwError("invalid or unsupported coin data",Pn.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${e})`,coinType:e,data:t}),n}))}getAvatar(){return Mf(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<Kf.length;n++){const r=t.match(Kf[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:Yf(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=Zn(cr.from(o[1]).toHexString(),32);if("erc721"===i){const t=this.provider.formatter.callAddress(yield this.provider.call({to:s,data:Yn(["0x6352211e",u])}));if(a!==t)return null;e.push({type:"owner",content:t})}else if("erc1155"===i){const t=cr.from(yield this.provider.call({to:s,data:Yn(["0x00fdd58e",Zn(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:Yn([n,u])};let l=Xf(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=Yf(l)),e.push({type:"metadata-url",content:l});const d=yield hf(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(Vf))return null;e.push({type:"url-ipfs",content:f}),f=Yf(f)}return e.push({type:"url",content:f}),{linkage:e,url:f}}}}}catch(e){}return null}))}getContentHash(){return Mf(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://"+Nl.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://"+Nl.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://"+Ha("0x"+i[1]).replace(/[=+\/]/g,(t=>e[t]))}return Bf.throwError("invalid or unsupported content hash data",Pn.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:e})}))}getText(e){return Mf(this,void 0,void 0,(function*(){let t=pa(e);t=Gn([zf(64),zf(t.length),t]),t.length%32!=0&&(t=Gn([t,Zn("0x",32-e.length%32)]));const n=yield this._fetchBytes("0x59d1d43c",Kn(t));return null==n||"0x"===n?null:ga(n)}))}}let tp=null,np=1;class rp extends Qo{constructor(e){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),kr(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=Sr(new.target,"getNetwork")(e);t?(kr(this,"_network",t),this.emit("network",t,null)):Bf.throwArgumentError("invalid network","network",e)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return Mf(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||Bf.throwError("no network detected",Pn.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=e:kr(this,"_network",e),this.emit("network",e,null))}return this._network}))}get ready(){return mf((()=>this._ready().then((e=>e),(e=>{if(e.code!==Pn.errors.NETWORK_ERROR||"noNetwork"!==e.event)throw e}))))}static getFormatter(){return null==tp&&(tp=new kf),tp}static getNetwork(e){return of(null==e?"homestead":e)}ccipReadFetch(e,t,n){return Mf(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 hf({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 Bf.throwError(`response not found during CCIP fetch: ${c}`,Pn.errors.SERVER_ERROR,{url:t,errorMessage:c});a.push(c)}return Bf.throwError(`error encountered during CCIP fetch: ${a.map((e=>JSON.stringify(e))).join(", ")}`,Pn.errors.SERVER_ERROR,{urls:n,errorMessages:a})}))}_getInternalBlockNumber(e){return Mf(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(Uf()-n.respTime<=e)return n.blockNumber;break}catch(e){if(this._internalBlockNumber===t)break}}const t=Uf(),n=Nr({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=Uf();return(e=cr.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 Mf(this,void 0,void 0,(function*(){const e=np++,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)Bf.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${n})`),this.emit("error",Bf.makeError("network block skew detected",Pn.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 Mf(this,void 0,void 0,(function*(){return Bf.throwError("provider does not support network detection",Pn.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})}))}getNetwork(){return Mf(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 qf(0),this._network;const n=Bf.makeError("underlying network changed",Pn.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=Uf();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=Uf(),(null==this._fastBlockNumber||e>this._fastBlockNumber)&&(this._fastBlockNumber=e,this._fastBlockNumberPromise=Promise.resolve(e)))}waitForTransaction(e,t,n){return Mf(this,void 0,void 0,(function*(){return this._waitForTransaction(e,null==t?1:t,n||0,null)}))}_waitForTransaction(e,t,n,r){return Mf(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=>Mf(this,void 0,void 0,(function*(){s||(yield qf(1e3),this.getTransactionCount(r.from).then((l=>Mf(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(Bf.makeError("transaction was replaced",Pn.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(Bf.makeError("timeout exceeded",Pn.errors.TIMEOUT,{timeout:n}))}),n);e.unref&&e.unref(),o.push((()=>{clearTimeout(e)}))}}))}))}getBlockNumber(){return Mf(this,void 0,void 0,(function*(){return this._getInternalBlockNumber(0)}))}getGasPrice(){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const e=yield this.perform("getGasPrice",{});try{return cr.from(e)}catch(t){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"getGasPrice",result:e,error:t})}}))}getBalance(e,t){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Nr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getBalance",n);try{return cr.from(r)}catch(e){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"getBalance",params:n,result:r,error:e})}}))}getTransactionCount(e,t){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Nr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getTransactionCount",n);try{return cr.from(r).toNumber()}catch(e){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"getTransactionCount",params:n,result:r,error:e})}}))}getCode(e,t){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Nr({address:this._getAddress(e),blockTag:this._getBlockTag(t)}),r=yield this.perform("getCode",n);try{return Kn(r)}catch(e){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"getCode",params:n,result:r,error:e})}}))}getStorageAt(e,t,n){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const r=yield Nr({address:this._getAddress(e),blockTag:this._getBlockTag(n),position:Promise.resolve(t).then((e=>Qn(e)))}),i=yield this.perform("getStorageAt",r);try{return Kn(i)}catch(e){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"getStorageAt",params:r,result:i,error:e})}}))}_wrapTransaction(e,t,n){if(null!=t&&32!==Xn(t))throw new Error("invalid response - sendTransaction");const r=e;return null!=t&&e.hash!==t&&Bf.throwError("Transaction hash mismatch from Provider.sendTransaction.",Pn.errors.UNKNOWN_ERROR,{expectedHash:e.hash,returnedHash:t}),r.wait=(t,r)=>Mf(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&&Bf.throwError("transaction failed",Pn.errors.CALL_EXCEPTION,{transactionHash:e.hash,transaction:e,receipt:a}),a)})),r}sendTransaction(e){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Promise.resolve(e).then((e=>Kn(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 Mf(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?cr.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?Kn(e):null)))})),this.formatter.transactionRequest(yield Nr(n))}))}_getFilter(e){return Mf(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 Nr(t))}))}_call(e,t,n){return Mf(this,void 0,void 0,(function*(){n>=10&&Bf.throwError("CCIP read exceeded maximum redirections",Pn.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)&&Xn(i)%32==4)try{const a=Jn(i,4),o=Jn(a,0,32);cr.from(o).eq(r)||Bf.throwError("CCIP Read sender did not match",Pn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const s=[],u=cr.from(Jn(a,32,64)).toNumber(),c=cr.from(Jn(a,u,u+32)).toNumber(),l=Jn(a,u+32);for(let t=0;t<c;t++){const n=Xf(l,32*t);null==n&&Bf.throwError("CCIP Read contained corrupt URL string",Pn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i}),s.push(n)}const d=Jf(a,64);cr.from(Jn(a,100,128)).isZero()||Bf.throwError("CCIP Read callback selector included junk",Pn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const f=Jn(a,96,100),p=Jf(a,128),h=yield this.ccipReadFetch(e,d,s);null==h&&Bf.throwError("CCIP Read disabled or provided no URLs",Pn.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:e,data:i});const m={to:r,data:Yn([f,Zf([h,p])])};return this._call(m,t,n+1)}catch(e){if(e.code===Pn.errors.SERVER_ERROR)throw e}try{return Kn(i)}catch(n){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"call",params:{transaction:e,blockTag:t},result:i,error:n})}}))}call(e,t){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const n=yield Nr({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 Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Nr({transaction:this._getTransactionRequest(e)}),n=yield this.perform("estimateGas",t);try{return cr.from(n)}catch(e){return Bf.throwError("bad result from backend",Pn.errors.SERVER_ERROR,{method:"estimateGas",params:t,result:n,error:e})}}))}_getAddress(e){return Mf(this,void 0,void 0,(function*(){"string"!=typeof(e=yield e)&&Bf.throwArgumentError("invalid address or ENS name","name",e);const t=yield this.resolveName(e);return null==t&&Bf.throwError("ENS name not configured",Pn.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(e)})`}),t}))}_getBlock(e,t){return Mf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;let n=-128;const r={includeTransactions:!!t};if(Wn(e,32))r.blockHash=e;else try{r.blockTag=yield this._getBlockTag(e),Wn(r.blockTag)&&(n=parseInt(r.blockTag.substring(2),16))}catch(t){Bf.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",e)}return mf((()=>Mf(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 Mf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return mf((()=>Mf(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 Mf(this,void 0,void 0,(function*(){yield this.getNetwork(),e=yield e;const t={transactionHash:this.formatter.hash(e,!0)};return mf((()=>Mf(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 Mf(this,void 0,void 0,(function*(){yield this.getNetwork();const t=yield Nr({filter:this._getFilter(e)}),n=yield this.perform("getLogs",t);return n.forEach((e=>{null==e.removed&&(e.removed=!1)})),kf.arrayOf(this.formatter.filterLog.bind(this.formatter))(n)}))}getEtherPrice(){return Mf(this,void 0,void 0,(function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})}))}_getBlockTag(e){return Mf(this,void 0,void 0,(function*(){if("number"==typeof(e=yield e)&&e<0){e%1&&Bf.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 Mf(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 ep(this,n,e);return t===e||(yield r.supportsWildcard())?r:null}t=t.split(".").slice(1).join(".")}}))}_getResolver(e,t){return Mf(this,void 0,void 0,(function*(){null==t&&(t="ENS");const n=yield this.getNetwork();n.ensAddress||Bf.throwError("network does not support ENS",Pn.errors.UNSUPPORTED_OPERATION,{operation:t,network:n.name});try{const t=yield this.call({to:n.ensAddress,data:"0x0178b8bf"+bo(e).substring(2)});return this.formatter.callAddress(t)}catch(e){}return null}))}resolveName(e){return Mf(this,void 0,void 0,(function*(){e=yield e;try{return Promise.resolve(this.formatter.address(e))}catch(t){if(Wn(e))throw t}"string"!=typeof e&&Bf.throwArgumentError("invalid ENS name","name",e);const t=yield this.getResolver(e);return t?yield t.getAddress():null}))}lookupAddress(e){return Mf(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=Xf(yield this.call({to:n,data:"0x691f3431"+bo(t).substring(2)}),0);return(yield this.resolveName(r))!=e?null:r}))}getAvatar(e){return Mf(this,void 0,void 0,(function*(){let t=null;if(Wn(e)){const n=this.formatter.address(e).substring(2).toLowerCase()+".addr.reverse",r=yield this._getResolver(n,"getAvatar");if(!r)return null;t=new ep(this,r,n);try{const e=yield t.getAvatar();if(e)return e.url}catch(e){if(e.code!==Pn.errors.CALL_EXCEPTION)throw e}try{const e=Xf(yield this.call({to:r,data:"0x691f3431"+bo(n).substring(2)}),0);t=yield this.getResolver(e)}catch(e){if(e.code!==Pn.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 Bf.throwError(e+" not implemented",Pn.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 Gf(Lf(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=Lf(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=Lf(e);return this._events.filter((e=>e.tag===t)).length}listeners(e){if(null==e)return this._events.map((e=>e.listener));let t=Lf(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=Lf(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=Lf(e);this._events=this._events.filter((e=>e.tag!==n||(t.push(e),!1)))}return t.forEach((e=>{this._stopEvent(e)})),this}}var ip=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 Pn(Cf),op=["call","estimateGas"];function sp(e,t){if(null==e)return null;if("string"==typeof e.message&&e.message.match("reverted")){const n=Wn(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=sp(e[n],t);if(r)return r}return null}if("string"==typeof e)try{return sp(JSON.parse(e),t)}catch(e){}return null}function up(e,t,n){const r=n.transaction||n.signedTransaction;if("call"===e){const e=sp(t,!0);if(e)return e.data;ap.throwError("missing revert data in call exception; Transaction reverted without a reason string",Pn.errors.CALL_EXCEPTION,{data:"0x",transaction:r,error:t})}if("estimateGas"===e){let n=sp(t.body,!1);null==n&&(n=sp(t,!1)),n&&ap.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pn.errors.UNPREDICTABLE_GAS_LIMIT,{reason:n.message,method:e,transaction:r,error:t})}let i=t.message;throw t.code===Pn.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)&&ap.throwError("insufficient funds for intrinsic transaction cost",Pn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:r}),i.match(/nonce (is )?too low/i)&&ap.throwError("nonce has already been used",Pn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:r}),i.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&ap.throwError("replacement fee too low",Pn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:r}),i.match(/only replay-protected/i)&&ap.throwError("legacy pre-eip-155 transactions not supported",Pn.errors.UNSUPPORTED_OPERATION,{error:t,method:e,transaction:r}),op.indexOf(e)>=0&&i.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&ap.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:r}),t}function cp(e){return new Promise((function(t){setTimeout(t,e)}))}function lp(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 dp(e){return e?e.toLowerCase():e}const fp={};class pp extends ns{constructor(e,t,n){if(super(),e!==fp)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");kr(this,"provider",t),null==n&&(n=0),"string"==typeof n?(kr(this,"_address",this.provider.formatter.address(n)),kr(this,"_index",null)):"number"==typeof n?(kr(this,"_index",n),kr(this,"_address",null)):ap.throwArgumentError("invalid address or index","addressOrIndex",n)}connect(e){return ap.throwError("cannot alter JSON-RPC Signer connection",Pn.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new hp(fp,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&&ap.throwError("unknown account #"+this._index,Pn.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(e[this._index]))))}sendUncheckedTransaction(e){e=Pr(e);const t=this.getAddress().then((e=>(e&&(e=e.toLowerCase()),e)));if(null==e.gasLimit){const n=Pr(e);n.from=t,e.gasLimit=this.provider.estimateGas(n)}return null!=e.to&&(e.to=Promise.resolve(e.to).then((e=>ip(this,void 0,void 0,(function*(){if(null==e)return null;const t=yield this.provider.resolveName(e);return null==t&&ap.throwArgumentError("provided ENS name resolves to null","tx.to",e),t}))))),Nr({tx:Nr(e),sender:t}).then((({tx:t,sender:n})=>{null!=t.from?t.from.toLowerCase()!==n&&ap.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)&&ap.throwError("user rejected transaction",Pn.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:t}),up("sendTransaction",e,r))))}))}signTransaction(e){return ap.throwError("signing transactions is unsupported",Pn.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(e){return ip(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 mf((()=>ip(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 ip(this,void 0,void 0,(function*(){const t="string"==typeof e?pa(e):e,n=yield this.getAddress();try{return yield this.provider.send("personal_sign",[Kn(t),n.toLowerCase()])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&ap.throwError("user rejected signing",Pn.errors.ACTION_REJECTED,{action:"signMessage",from:n,messageData:e}),t}}))}_legacySignMessage(e){return ip(this,void 0,void 0,(function*(){const t="string"==typeof e?pa(e):e,n=yield this.getAddress();try{return yield this.provider.send("eth_sign",[n.toLowerCase(),Kn(t)])}catch(t){throw"string"==typeof t.message&&t.message.match(/user denied/i)&&ap.throwError("user rejected signing",Pn.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:n,messageData:e}),t}}))}_signTypedData(e,t,n){return ip(this,void 0,void 0,(function*(){const r=yield Fo.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(Fo.getPayload(r.domain,t,r.value))])}catch(e){throw"string"==typeof e.message&&e.message.match(/user denied/i)&&ap.throwError("user rejected signing",Pn.errors.ACTION_REJECTED,{action:"_signTypedData",from:i,messageData:{domain:r.domain,types:t,value:r.value}}),e}}))}unlock(e){return ip(this,void 0,void 0,(function*(){const t=this.provider,n=yield this.getAddress();return t.send("personal_unlockAccount",[n.toLowerCase(),e,null])}))}}class hp extends pp{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 mp={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};let yp=class extends rp{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=Sr(this.constructor,"defaultUrl")()),kr(this,"connection","string"==typeof e?Object.freeze({url:e}):Object.freeze(Pr(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 ip(this,void 0,void 0,(function*(){yield cp(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=Sr(this.constructor,"getNetwork");try{return t(cr.from(e).toNumber())}catch(t){return ap.throwError("could not detect network",Pn.errors.NETWORK_ERROR,{chainId:e,event:"invalidNetwork",serverError:t})}}return ap.throwError("could not detect network",Pn.errors.NETWORK_ERROR,{event:"noNetwork"})}))}getSigner(e){return new pp(fp,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:Fr(n),provider:this});const r=["eth_chainId","eth_blockNumber"].indexOf(e)>=0;if(r&&this._cache[e])return this._cache[e];const i=hf(this.connection,JSON.stringify(n),lp).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",[dp(t.address),t.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[dp(t.address),t.blockTag]];case"getCode":return["eth_getCode",[dp(t.address),t.blockTag]];case"getStorageAt":return["eth_getStorageAt",[dp(t.address),Zn(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",[Sr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0}),t.blockTag]];case"estimateGas":return["eth_estimateGas",[Sr(this.constructor,"hexlifyTransaction")(t.transaction,{from:!0})]];case"getLogs":return t.filter&&null!=t.filter.address&&(t.filter.address=dp(t.filter.address)),["eth_getLogs",[t.filter]]}return null}perform(e,t){return ip(this,void 0,void 0,(function*(){if("call"===e||"estimateGas"===e){const e=t.transaction;if(e&&null!=e.type&&cr.from(e.type).isZero()&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=yield this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&((t=Pr(t)).transaction=Pr(e),delete t.transaction.type)}}const n=this.prepareRequest(e,t);null==n&&ap.throwError(e+" not implemented",Pn.errors.NOT_IMPLEMENTED,{operation:e});try{return yield this.send(n[0],n[1])}catch(n){return up(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 cp(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=Pr(mp);if(t)for(const e in t)t[e]&&(n[e]=!0);xr(e,n);const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((function(t){if(null==e[t])return;const n=Qn(cr.from(e[t]));"gasLimit"===t&&(t="gas"),r[t]=n})),["from","to","data"].forEach((function(t){null!=e[t]&&(r[t]=Kn(e[t]))})),e.accessList&&(r.accessList=il(e.accessList)),r}},gp=null;try{if(gp=WebSocket,null==gp)throw new Error("inject please")}catch(e){const t=new Pn(Cf);gp=function(){t.throwError("WebSockets not supported in this environment",Pn.errors.UNSUPPORTED_OPERATION,{operation:"new WebSocket()"})}}var bp=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 vp=new Pn(Cf);let Tp=1;class wp extends yp{constructor(e,t){"any"===t&&vp.throwError("WebSocketProvider does not support 'any' network yet",Pn.errors.UNSUPPORTED_OPERATION,{operation:"network:any"}),super("string"==typeof e?e:"_websocket",t),this._pollingInterval=-1,this._wsReady=!1,kr(this,"_websocket","string"==typeof e?new gp(this.connection.url):e),kr(this,"_requests",{}),kr(this,"_subs",{}),kr(this,"_subIds",{}),kr(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"),kr(e,"code",n.error.code||null),kr(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){vp.throwError("cannot reset events block on WebSocketProvider",Pn.errors.UNSUPPORTED_OPERATION,{operation:"resetEventBlock"})}set pollingInterval(e){vp.throwError("cannot set polling interval on WebSocketProvider",Pn.errors.UNSUPPORTED_OPERATION,{operation:"setPollingInterval"})}poll(){return bp(this,void 0,void 0,(function*(){return null}))}set polling(e){e&&vp.throwError("cannot set polling on WebSocketProvider",Pn.errors.UNSUPPORTED_OPERATION,{operation:"setPolling"})}send(e,t){const n=Tp++;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 bp(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=cr.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 bp(this,void 0,void 0,(function*(){this.websocket.readyState===gp.CONNECTING&&(yield new Promise((e=>{this.websocket.onopen=function(){e(!0)},this.websocket.onerror=function(){e(!1)}}))),this.websocket.close(1e3)}))}}var Ap=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 Ep=new Pn(Cf);class _p extends yp{detectNetwork(){const e=Object.create(null,{detectNetwork:{get:()=>super.detectNetwork}});return Ap(this,void 0,void 0,(function*(){let t=this.network;return null==t&&(t=yield e.detectNetwork.call(this),t||Ep.throwError("no network detected",Pn.errors.UNKNOWN_ERROR,{}),null==this._network&&(kr(this,"_network",t),this.emit("network",t,null))),t}))}}class Ip extends _p{constructor(e,t){Ep.checkAbstract(new.target,Ip),e=Sr(new.target,"getNetwork")(e),t=Sr(new.target,"getApiKey")(t);super(Sr(new.target,"getUrl")(e,t),e),"string"==typeof t?kr(this,"apiKey",t):null!=t&&Object.keys(t).forEach((e=>{kr(this,e,t[e])}))}_startPending(){Ep.warn("WARNING: API provider does not support pending filters")}isCommunityResource(){return!1}getSigner(e){return Ep.throwError("API provider does not support signing",Pn.errors.UNSUPPORTED_OPERATION,{operation:"getSigner"})}listAccounts(){return Promise.resolve([])}static getApiKey(e){return e}static getUrl(e,t){return Ep.throwError("not implemented; sub-classes must override getUrl",Pn.errors.NOT_IMPLEMENTED,{operation:"getUrl"})}}const Rp=new Pn(Cf),Cp="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";class Op extends wp{constructor(e,t){const n=new kp(e,t);super(n.connection.url.replace(/^http/i,"ws").replace(".alchemyapi.",".ws.alchemyapi."),n.network),kr(this,"apiKey",n.apiKey)}isCommunityResource(){return this.apiKey===Cp}}class kp extends Ip{static getWebSocketProvider(e,t){return new Op(e,t)}static getApiKey(e){return null==e?Cp:(e&&"string"!=typeof e&&Rp.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:Rp.throwArgumentError("unsupported network","network",arguments[0])}return{allowGzip:!0,url:"https://"+n+t,throttleCallback:(e,n)=>(t===Cp&&Pf(),Promise.resolve(!0))}}isCommunityResource(){return this.apiKey===Cp}}const Sp=new Pn(Cf),Np="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";function xp(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 Sp.throwArgumentError("unsupported network","name",e)}class Pp extends Ip{isCommunityResource(){return this.apiKey===Np}static getApiKey(e){return null==e?Np:e}static getUrl(e,t){null==t&&(t=Np);const n={allowGzip:!0,url:"https://"+xp(e.name)+t,throttleCallback:(e,n)=>(t.apiKey===Np&&Pf(),Promise.resolve(!0))};return null!=t.projectSecret&&(n.user="",n.password=t.projectSecret),n}}var Mp=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 Pn(Cf);class Dp extends Ip{static getApiKey(e){return null!=e&&Bp.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 Bp.throwArgumentError("unsupported network","network",arguments[0]);return n}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return Mp(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 Fp=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 Lp=new Pn(Cf);function Up(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]?Qn(Kn(r)):"accessList"===n?"["+il(r).map((e=>`{address:"${e.address}",storageKeys:["${e.storageKeys.join('","')}"]}`)).join(",")+"]":Kn(r),t[n]=r)}return t}function qp(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 jp(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 Gp(e){if("pending"===e)throw new Error("pending not supported");return"latest"===e?e:parseInt(e.substring(2),16)}function Hp(e,t,n){if("call"===e&&t.code===Pn.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,"")),Wn(n))return n;Lp.throwError("missing revert data in call exception",Pn.errors.CALL_EXCEPTION,{error:t,data:"0x"})}}let r=t.message;throw t.code===Pn.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/)&&Lp.throwError("insufficient funds for intrinsic transaction cost",Pn.errors.INSUFFICIENT_FUNDS,{error:t,method:e,transaction:n}),r.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&Lp.throwError("nonce has already been used",Pn.errors.NONCE_EXPIRED,{error:t,method:e,transaction:n}),r.match(/another transaction with same nonce/)&&Lp.throwError("replacement fee too low",Pn.errors.REPLACEMENT_UNDERPRICED,{error:t,method:e,transaction:n}),r.match(/execution failed due to an exception|execution reverted/)&&Lp.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Pn.errors.UNPREDICTABLE_GAS_LIMIT,{error:t,method:e,transaction:n}),t}class zp extends rp{constructor(e,t){super(e),kr(this,"baseUrl",this.getBaseUrl()),kr(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 Lp.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 Fp(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?jp:qp;this.emit("debug",{action:"request",request:r,provider:this});const o={url:r,throttleSlotInterval:1e3,throttleCallback:(e,t)=>(this.isCommunityResource()&&Pf(),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 hf(o,s,a||jp);return this.emit("debug",{action:"response",request:r,response:Fr(u),provider:this}),u}))}detectNetwork(){return Fp(this,void 0,void 0,(function*(){return this.network}))}perform(e,t){const n=Object.create(null,{perform:{get:()=>super.perform}});return Fp(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=>Hp("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=Up(t.transaction);e.module="proxy",e.action="eth_call";try{return yield this.fetch("proxy",e,!0)}catch(e){return Hp("call",e,t.transaction)}}case"estimateGas":{const e=Up(t.transaction);e.module="proxy",e.action="eth_estimateGas";try{return yield this.fetch("proxy",e,!0)}catch(e){return Hp("estimateGas",e,t.transaction)}}case"getLogs":{const e={action:"getLogs"};if(t.filter.fromBlock&&(e.fromBlock=Gp(t.filter.fromBlock)),t.filter.toBlock&&(e.toBlock=Gp(t.filter.toBlock)),t.filter.address&&(e.address=t.filter.address),t.filter.topics&&t.filter.topics.length>0&&(t.filter.topics.length>1&&Lp.throwError("unsupported topic count",Pn.errors.UNSUPPORTED_OPERATION,{topics:t.filter.topics}),1===t.filter.topics.length)){const n=t.filter.topics[0];"string"==typeof n&&66===n.length||Lp.throwError("unsupported topic format",Pn.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 Fp(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 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 Vp=new Pn(Cf);function Kp(){return(new Date).getTime()}function Xp(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)||Vp.throwArgumentError("provider mismatch","networks",e):t=r}return t}function Jp(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 Yp(e){if(null===e)return"null";if("number"==typeof e||"boolean"==typeof e)return JSON.stringify(e);if("string"==typeof e)return e;if(cr.isBigNumber(e))return e.toString();if(Array.isArray(e))return JSON.stringify(e.map((e=>Yp(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]":Yp(n),JSON.stringify(t)+":"+n})).join(",")+"}"}throw new Error("unknown value type: "+typeof e)}let Qp=1;function $p(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 Zp=[Pn.errors.CALL_EXCEPTION,Pn.errors.INSUFFICIENT_FUNDS,Pn.errors.NONCE_EXPIRED,Pn.errors.REPLACEMENT_UNDERPRICED,Pn.errors.UNPREDICTABLE_GAS_LIMIT],eh=["address","args","errorArgs","errorSignature","method","transaction"];function th(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 nh(e,t,n){let r=Yp;switch(t){case"getBlockNumber":return function(t){const n=t.map((e=>e.result));let r=Jp(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 Jp(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=Pr(e)).confirmations=-1,Yp(e))};break;case"getBlock":r=n.includeTransactions?function(e){return null==e?null:((e=Pr(e)).transactions=e.transactions.map((e=>((e=Pr(e)).confirmations=-1,e))),Yp(e))}:function(e){return null==e?null:Yp(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 rh(e,t){return Wp(this,void 0,void 0,(function*(){const n=e.provider;return null!=n.blockNumber&&n.blockNumber>=t||-1===t?n:mf((()=>new Promise(((r,i)=>{setTimeout((function(){return n.blockNumber>=t?r(n):e.cancelled?r(null):r(void 0)}),0)}))),{oncePoll:n})}))}function ih(e,t,n,r){return Wp(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&&Wn(r.blockTag)&&(i=yield rh(e,t)),i[n](r.address,r.blockTag||"latest");case"getStorageAt":return r.blockTag&&Wn(r.blockTag)&&(i=yield rh(e,t)),i.getStorageAt(r.address,r.position,r.blockTag||"latest");case"getBlock":return r.blockTag&&Wn(r.blockTag)&&(i=yield rh(e,t)),i[r.includeTransactions?"getBlockWithTransactions":"getBlock"](r.blockTag||r.blockHash);case"call":case"estimateGas":return r.blockTag&&Wn(r.blockTag)&&(i=yield rh(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&&Wn(n.fromBlock)||n.toBlock&&Wn(n.toBlock))&&(i=yield rh(e,t)),i.getLogs(n)}}return Vp.throwError("unknown method error",Pn.errors.UNKNOWN_ERROR,{method:n,params:r})}))}class ah extends rp{constructor(e,t){0===e.length&&Vp.throwArgumentError("missing providers","providers",e);const n=e.map(((e,t)=>{if(Qo.isProvider(e)){const t=Nf(e)?2e3:750,n=1;return Object.freeze({provider:e,weight:1,stallTimeout:t,priority:n})}const n=Pr(e);null==n.priority&&(n.priority=1),null==n.stallTimeout&&(n.stallTimeout=Nf(e)?2e3:750),null==n.weight&&(n.weight=1);const r=n.weight;return(r%1||r>512||r<1)&&Vp.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&&Vp.throwArgumentError("quorum will always fail; larger than total weight","quorum",t);let i=Xp(n.map((e=>e.provider.network)));null==i&&(i=new Promise(((e,t)=>{setTimeout((()=>{this.detectNetwork().then(e,t)}),0)}))),super(i),kr(this,"providerConfigs",Object.freeze(n)),kr(this,"quorum",t),this._highestBlockNumber=-1}detectNetwork(){return Wp(this,void 0,void 0,(function*(){return Xp(yield Promise.all(this.providerConfigs.map((e=>e.provider.getNetwork()))))}))}perform(e,t){return Wp(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=nh(this,e,t),r=hd(this.providerConfigs.map(Pr));r.sort(((e,t)=>e.priority-t.priority));const i=this._highestBlockNumber;let a=0,o=!0;for(;;){const s=Kp();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=Qp++;n.start=Kp(),n.staller=$p(n.stallTimeout),n.staller.wait((()=>{n.staller=null})),n.runner=ih(n,i,e,t).then((r=>{n.done=!0,n.result=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:th(n,Kp()),request:{method:e,params:Fr(t)},provider:this})}),(r=>{n.done=!0,n.error=r,this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:th(n,Kp()),request:{method:e,params:Fr(t)},provider:this})})),this.listenerCount("debug")&&this.emit("debug",{action:"request",rid:o,backend:th(n,null),request:{method:e,params:Fr(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 $p(100).getPromise()),o=!1}const d=r.reduce(((e,t)=>{if(!t.done||null==t.error)return e;const n=t.error.code;return Zp.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={};eh.forEach((e=>{null!=n[e]&&(i[e]=n[e])})),Vp.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})),Vp.throwError("failed to meet quorum",Pn.errors.SERVER_ERROR,{method:e,params:t,results:r.map((e=>th(e))),provider:this})}))}}const oh=new Pn(Cf),sh="84842078b09946638c03157f83405213";class uh extends wp{constructor(e,t){const n=new ch(e,t),r=n.connection;r.password&&oh.throwError("INFURA WebSocket project secrets unsupported",Pn.errors.UNSUPPORTED_OPERATION,{operation:"InfuraProvider.getWebSocketProvider()"});super(r.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/"),e),kr(this,"apiKey",n.projectId),kr(this,"projectId",n.projectId),kr(this,"projectSecret",n.projectSecret)}isCommunityResource(){return this.projectId===sh}}class ch extends Ip{static getWebSocketProvider(e,t){return new uh(e,t)}static getApiKey(e){const t={apiKey:sh,projectId:sh,projectSecret:null};return null==e||("string"==typeof e?t.projectId=e:null!=e.projectSecret?(oh.assertArgument("string"==typeof e.projectId,"projectSecret requires a projectId","projectId",e.projectId),oh.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:oh.throwError("unsupported network",Pn.errors.INVALID_ARGUMENT,{argument:"network",value:e})}const r={allowGzip:!0,url:"https://"+n+"/v3/"+t.projectId,throttleCallback:(e,n)=>(t.projectId===sh&&Pf(),Promise.resolve(!0))};return null!=t.projectSecret&&(r.user="",r.password=t.projectSecret),r}isCommunityResource(){return this.projectId===sh}}class lh extends yp{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:Fr(t),provider:this}),hf(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 dh=new Pn(Cf);class fh extends Ip{static getApiKey(e){return e&&"string"!=typeof e&&dh.throwArgumentError("invalid apiKey","apiKey",e),e||"ETHERS_JS_SHARED"}static getUrl(e,t){dh.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:dh.throwArgumentError("unsupported network","network",arguments[0])}return n+"?apiKey="+t}}const ph=new Pn(Cf),hh="62e1ad51b37b8e00394bda3b";class mh extends Ip{static getApiKey(e){const t={applicationId:null,loadBalancer:!0,applicationSecretKey:null};return null==e?t.applicationId=hh:"string"==typeof e?t.applicationId=e:null!=e.applicationSecretKey?(t.applicationId=e.applicationId,t.applicationSecretKey=e.applicationSecretKey):e.applicationId?t.applicationId=e.applicationId:ph.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:ph.throwError("unsupported network",Pn.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===hh}}const yh=new Pn(Cf);let gh=1;function bh(e,t){const n="Web3LegacyFetcher";return function(e,r){const i={method:e,params:r,id:gh++,jsonrpc:"2.0"};return new Promise(((e,r)=>{this.emit("debug",{action:"request",fetcher:n,request:Fr(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 vh extends yp{constructor(e,t){null==e&&yh.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:Fr(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=bh(0,e.sendAsync.bind(e)):e.send?r=bh(0,e.send.bind(e)):yh.throwArgumentError("unsupported provider","provider",e),n||(n="unknown:")),super(n,t),kr(this,"jsonRpcFetchFunc",r),kr(this,"provider",i)}send(e,t){return this.jsonRpcFetchFunc(e,t)}}const Th=new Pn(Cf);function wh(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 yp(e);case"ws":case"wss":return new wp(e);default:Th.throwArgumentError("unsupported URL scheme","network",e)}}const n=of(e);return n&&n._defaultProvider||Th.throwError("unsupported getDefaultProvider network",Pn.errors.NETWORK_ERROR,{operation:"getDefaultProvider",network:e}),n._defaultProvider({FallbackProvider:ah,AlchemyProvider:kp,AnkrProvider:Pp,CloudflareProvider:Dp,EtherscanProvider:zp,InfuraProvider:ch,JsonRpcProvider:yp,NodesmithProvider:fh,PocketProvider:mh,Web3Provider:vh,IpcProvider:null},t)}var Ah=Object.freeze({__proto__:null,AlchemyProvider:kp,AlchemyWebSocketProvider:Op,AnkrProvider:Pp,BaseProvider:rp,CloudflareProvider:Dp,EtherscanProvider:zp,FallbackProvider:ah,Formatter:kf,InfuraProvider:ch,InfuraWebSocketProvider:uh,IpcProvider:null,JsonRpcBatchProvider:lh,JsonRpcProvider:yp,JsonRpcSigner:pp,NodesmithProvider:fh,PocketProvider:mh,Provider:Qo,Resolver:ep,StaticJsonRpcProvider:_p,UrlJsonRpcProvider:Ip,Web3Provider:vh,WebSocketProvider:wp,getDefaultProvider:wh,getNetwork:of,isCommunityResourcable:Sf,isCommunityResource:Nf,showThrottleMessage:Pf});const Eh=new RegExp("^bytes([0-9]+)$"),_h=new RegExp("^(u?int)([0-9]*)$"),Ih=new RegExp("^(.*)\\[([0-9]*)\\]$"),Rh="0000000000000000000000000000000000000000000000000000000000000000",Ch=new Pn("solidity/5.7.0");function Oh(e,t,n){switch(e){case"address":return n?zn(t,32):jn(t);case"string":return pa(t);case"bytes":return jn(t);case"bool":return t=t?"0x01":"0x00",n?zn(t,32):jn(t)}let r=e.match(_h);if(r){let i=parseInt(r[2]||"256");return(r[2]&&String(i)!==r[2]||i%8!=0||0===i||i>256)&&Ch.throwArgumentError("invalid number type","type",e),n&&(i=256),zn(t=cr.from(t).toTwos(i),i/8)}if(r=e.match(Eh),r){const i=parseInt(r[1]);return(String(i)!==r[1]||0===i||i>32)&&Ch.throwArgumentError("invalid bytes type","type",e),jn(t).byteLength!==i&&Ch.throwArgumentError(`invalid value for ${e}`,"value",t),n?jn((t+Rh).substring(0,66)):t}if(r=e.match(Ih),r&&Array.isArray(t)){const n=r[1];parseInt(r[2]||String(t.length))!=t.length&&Ch.throwArgumentError(`invalid array length for ${e}`,"value",t);const i=[];return t.forEach((function(e){i.push(Oh(n,e,!0))})),Gn(i)}return Ch.throwArgumentError("invalid type","type",e)}function kh(e,t){e.length!=t.length&&Ch.throwArgumentError("wrong number of values; expected ${ types.length }","values",t);const n=[];return e.forEach((function(e,r){n.push(Oh(e,t[r]))})),Kn(Gn(n))}function Sh(e,t){return yi(kh(e,t))}function Nh(e,t){return Dl(kh(e,t))}var xh=Object.freeze({__proto__:null,keccak256:Sh,pack:kh,sha256:Nh});const Ph=new Pn("units/5.7.0"),Mh=["wei","kwei","mwei","gwei","szabo","finney","ether"];function Bh(e){const t=String(e).split(".");(t.length>2||!t[0].match(/^-?[0-9]*$/)||t[1]&&!t[1].match(/^[0-9]*$/)||"."===e||"-."===e)&&Ph.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 Dh(e,t){if("string"==typeof t){const e=Mh.indexOf(t);-1!==e&&(t=3*e)}return wr(e,null!=t?t:18)}function Fh(e,t){if("string"!=typeof e&&Ph.throwArgumentError("value must be a string","value",e),"string"==typeof t){const e=Mh.indexOf(t);-1!==e&&(t=3*e)}return Ar(e,null!=t?t:18)}function Lh(e){return Dh(e,18)}function Uh(e){return Fh(e,18)}var qh=Object.freeze({__proto__:null,commify:Bh,formatEther:Lh,formatUnits:Dh,parseEther:Uh,parseUnits:Fh}),jh=Object.freeze({__proto__:null,AbiCoder:La,ConstructorFragment:ni,ErrorFragment:ai,EventFragment:$r,FormatTypes:Kr,Fragment:Qr,FunctionFragment:ri,HDNode:rd,Indexed:Ho,Interface:Vo,LogDescription:qo,Logger:Pn,ParamType:Jr,RLP:Ri,SigningKey:zc,get SupportedAlgorithm(){return xl},TransactionDescription:jo,get TransactionTypes(){return Jc},get UnicodeNormalizationForm(){return ua},Utf8ErrorFuncs:da,get Utf8ErrorReason(){return ca},_TypedDataEncoder:Fo,_fetchData:pf,_toEscapedUtf8String:ma,accessListify:il,arrayify:jn,base58:Nl,base64:za,checkProperties:xr,checkResultErrors:di,commify:Bh,computeAddress:el,computeHmac:Ll,computePublicKey:Vc,concat:Gn,deepCopy:Fr,defaultAbiCoder:Ua,defaultPath:nd,defineReadOnly:kr,dnsEncode:vo,entropyToMnemonic:od,fetchJson:hf,formatBytes32String:va,formatEther:Lh,formatUnits:Dh,getAccountPath:ud,getAddress:xi,getContractAddress:Bi,getCreate2Address:Di,getIcapAddress:Mi,getJsonWalletAddress:kd,getStatic:Sr,hashMessage:wo,hexConcat:Yn,hexDataLength:Xn,hexDataSlice:Jn,hexStripZeros:$n,hexValue:Qn,hexZeroPad:Zn,hexlify:Kn,id:qa,isAddress:Pi,isBytes:qn,isBytesLike:Ln,isHexString:Wn,isValidMnemonic:sd,isValidName:go,joinSignature:tr,keccak256:yi,mnemonicToEntropy:ad,mnemonicToSeed:id,namehash:bo,nameprep:Na,parseBytes32String:Ta,parseEther:Uh,parseTransaction:ll,parseUnits:Fh,poll:mf,randomBytes:pd,recoverAddress:tl,recoverPublicKey:Wc,resolveProperties:Nr,ripemd160:Bl,serializeTransaction:ul,sha256:Dl,sha512:Fl,shallowCopy:Pr,shuffled:hd,solidityKeccak256:Sh,solidityPack:kh,soliditySha256:Nh,splitSignature:er,stripZeros:Hn,toUtf8Bytes:pa,toUtf8CodePoints:ba,toUtf8String:ga,verifyMessage:Jd,verifyTypedData:Yd,zeroPad:zn});const Gh="ethers/5.7.2",Hh=new Pn(Gh);var zh=Object.freeze({__proto__:null,BaseContract:Rl,BigNumber:cr,Contract:Cl,ContractFactory:Ol,FixedNumber:_r,Signer:ns,VoidSigner:rs,Wallet:Xd,Wordlist:Gl,constants:aa,get errors(){return Nn},getDefaultProvider:wh,logger:Hh,providers:Ah,utils:jh,version:Gh,wordlists:Vl});try{const e=window;null==e._ethers&&(e._ethers=zh)}catch(e){}var Wh,Vh,Kh,Xh,Jh,Yh,Qh,$h=Object.freeze({__proto__:null,BaseContract:Rl,BigNumber:cr,Contract:Cl,ContractFactory:Ol,FixedNumber:_r,Signer:ns,VoidSigner:rs,Wallet:Xd,Wordlist:Gl,constants:aa,get errors(){return Nn},ethers:zh,getDefaultProvider:wh,logger:Hh,providers:Ah,utils:jh,version:Gh,wordlists:Vl});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,(Wh=e.ChainName||(e.ChainName={})).ETHEREUM="Ethereum",Wh.SEPOLIA="Sepolia",Wh.IMTBL_ZKEVM_TESTNET="Immutable zkEVM Test",Wh.IMTBL_ZKEVM_DEVNET="Immutable zkEVM Dev",Wh.IMTBL_ZKEVM_MAINNET="Immutable zkEVM",e.ChainSlug=void 0,(Vh=e.ChainSlug||(e.ChainSlug={})).ETHEREUM="ethereum",Vh.SEPOLIA="sepolia",Vh.IMTBL_ZKEVM_MAINNET="imtbl-zkevm-mainnet",Vh.IMTBL_ZKEVM_TESTNET="imtbl-zkevm-testnet",Vh.IMTBL_ZKEVM_DEVNET="imtbl-zkevm-devnet",function(e){e.TRANSAK="201811419111"}(Kh||(Kh={})),e.GasEstimateType=void 0,(Xh=e.GasEstimateType||(e.GasEstimateType={})).BRIDGE_TO_L2="BRIDGE_TO_L2",Xh.SWAP="SWAP",e.NetworkFilterTypes=void 0,(e.NetworkFilterTypes||(e.NetworkFilterTypes={})).ALL="all",e.TokenFilterTypes=void 0,(Jh=e.TokenFilterTypes||(e.TokenFilterTypes={})).ALL="all",Jh.SWAP="swap",Jh.BRIDGE="bridge",Jh.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"}(Yh||(Yh={})),e.WalletFilterTypes=void 0,(e.WalletFilterTypes||(e.WalletFilterTypes={})).ALL="all",e.WalletProviderName=void 0,(Qh=e.WalletProviderName||(e.WalletProviderName={})).PASSPORT="passport",Qh.METAMASK="metamask";const Zh={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1};var em,tm,nm,rm,im,am,om;e.CheckoutStatus=void 0,(em=e.CheckoutStatus||(e.CheckoutStatus={})).SUCCESS="SUCCESS",em.FAILED="FAILED",em.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",em.FULFILLMENTS_UNSETTLED="FULFILLMENTS_UNSETTLED",e.ItemType=void 0,function(e){e.NATIVE="NATIVE",e.ERC20="ERC20",e.ERC721="ERC721"}(e.ItemType||(e.ItemType={})),e.TransactionOrGasType=void 0,(tm=e.TransactionOrGasType||(e.TransactionOrGasType={})).TRANSACTION="TRANSACTION",tm.GAS="GAS",e.GasTokenType=void 0,(nm=e.GasTokenType||(e.GasTokenType={})).NATIVE="NATIVE",nm.ERC20="ERC20",e.RoutingOutcomeType=void 0,(rm=e.RoutingOutcomeType||(e.RoutingOutcomeType={})).ROUTES_FOUND="ROUTES_FOUND",rm.NO_ROUTES_FOUND="NO_ROUTES_FOUND",rm.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,(im=e.FundingStepType||(e.FundingStepType={})).BRIDGE="BRIDGE",im.SWAP="SWAP",im.ONRAMP="ONRAMP",e.ExchangeType=void 0,(e.ExchangeType||(e.ExchangeType={})).ONRAMP="onramp",e.CheckoutErrorType=void 0,(am=e.CheckoutErrorType||(e.CheckoutErrorType={})).MISSING_PARAMS="MISSING_PARAMS",am.WEB3_PROVIDER_ERROR="WEB3_PROVIDER_ERROR",am.PROVIDER_ERROR="PROVIDER_ERROR",am.DEFAULT_PROVIDER_ERROR="DEFAULT_PROVIDER_ERROR",am.CONNECT_PROVIDER_ERROR="CONNECT_PROVIDER_ERROR",am.GET_BALANCE_ERROR="GET_BALANCE_ERROR",am.GET_INDEXER_BALANCE_ERROR="GET_INDEXER_BALANCE_ERROR",am.GET_ERC20_INFO_ERROR="GET_ERC20_INFO_ERROR",am.GET_ERC20_BALANCE_ERROR="GET_ERC20_BALANCE_ERROR",am.GET_ERC721_BALANCE_ERROR="GET_ERC721_BALANCE_ERROR",am.GET_NETWORK_INFO_ERROR="GET_NETWORK_INFO_ERROR",am.METAMASK_PROVIDER_ERROR="METAMASK_PROVIDER_ERROR",am.CHAIN_NOT_SUPPORTED_ERROR="CHAIN_NOT_SUPPORTED_ERROR",am.PROVIDER_REQUEST_MISSING_ERROR="PROVIDER_REQUEST_MISSING_ERROR",am.PROVIDER_REQUEST_FAILED_ERROR="PROVIDER_REQUEST_FAILED_ERROR",am.USER_REJECTED_REQUEST_ERROR="USER_REJECTED_REQUEST_ERROR",am.TRANSACTION_FAILED="TRANSACTION_FAILED",am.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",am.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",am.INVALID_GAS_ESTIMATE_TYPE="INVALID_GAS_ESTIMATE_TYPE",am.UNSUPPORTED_TOKEN_TYPE_ERROR="UNSUPPORTED_TOKEN_TYPE_ERROR",am.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR="UNSUPPORTED_BALANCE_REQUIREMENT_ERROR",am.GET_ORDER_LISTING_ERROR="GET_ORDER_LISTING_ERROR",am.CANCEL_ORDER_LISTING_ERROR="CANCEL_ORDER_LISTING_ERROR",am.PREPARE_ORDER_LISTING_ERROR="PREPARE_ORDER_LISTING_ERROR",am.CREATE_ORDER_LISTING_ERROR="CREATE_ORDER_LISTING_ERROR",am.FULFILL_ORDER_LISTING_ERROR="FULFILL_ORDER_LISTING_ERROR",am.SWITCH_NETWORK_UNSUPPORTED="SWITCH_NETWORK_UNSUPPORTED",am.GET_ERC20_ALLOWANCE_ERROR="GET_ERC20_ALLOWANCE_ERROR",am.GET_ERC721_ALLOWANCE_ERROR="GET_ERC721_ALLOWANCE_ERROR",am.EXECUTE_APPROVAL_TRANSACTION_ERROR="EXECUTE_APPROVAL_TRANSACTION_ERROR",am.EXECUTE_FULFILLMENT_TRANSACTION_ERROR="EXECUTE_FULFILLMENT_TRANSACTION_ERROR",am.SIGN_MESSAGE_ERROR="SIGN_MESSAGE_ERROR",am.BRIDGE_GAS_ESTIMATE_ERROR="BRIDGE_GAS_ESTIMATE_ERROR",am.ORDER_FEE_ERROR="ORDER_FEE_ERROR",am.ITEM_REQUIREMENTS_ERROR="ITEM_REQUIREMENTS_ERROR",am.API_ERROR="API_ERROR",am.ORDER_EXPIRED_ERROR="ORDER_EXPIRED_ERROR",am.WIDGETS_SCRIPT_LOAD_ERROR="WIDGETS_SCRIPT_LOAD_ERROR";class sm 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"}(om||(om={}));const um=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 sm)throw new sm(r,t.type,{...t.data,innerErrorType:e.type,...e.data});throw new sm(r,t.type,{...t.data})}};async function cm(t){if(!t.provider?.request)throw new sm("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const n=await t.provider.request({method:Yh.GET_CHAINID,params:[]});return parseInt(n,16)}async function lm(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 dm(t,n){const{networkMap:r}=t;return um((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 cm(n);return{chainId:t,isSupported:Array.from(r.keys()).includes(t)}}}),{type:e.CheckoutErrorType.GET_NETWORK_INFO_ERROR})}async function fm(t,n,r){const{networkMap:i}=t;if(!(await lm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===r)))throw new sm(`Chain:${r} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(n.provider?.isPassport)throw new sm("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:Yh.SWITCH_NETWORK,params:[{chainId:e.get(n)?.chainIdHex}]})}(i,n,r)}catch(t){if(4902!==t.code)throw new sm("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:Yh.ADD_NETWORK,params:[i]})}}(i,n,r)}catch(t){throw new sm("User cancelled add network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR,{error:t})}}const a=new vh(n.provider);if((await a.getNetwork()).chainId!==r)throw new sm("User cancelled switch network request",e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR);return{network:await dm(t,a),provider:a}}const pm="development",hm=18,mm="native",ym={name:"IMX",symbol:"IMX",decimals:hm,address:mm},gm={[pm]:"https://api.dev.immutable.com",[mt.SANDBOX]:"https://api.sandbox.immutable.com",[mt.PRODUCTION]:"https://api.immutable.com"},bm={[pm]:"https://checkout-api.dev.immutable.com",[mt.SANDBOX]:"https://checkout-api.sandbox.immutable.com",[mt.PRODUCTION]:"https://checkout-api.immutable.com"},vm={[mt.SANDBOX]:"https://global-stg.transak.com",[mt.PRODUCTION]:"https://global.transak.com/"},Tm=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:ym}]]),wm=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:ym}]]),Am=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:ym}]]),Em={[e.ChainId.IMTBL_ZKEVM_TESTNET]:{url:"https://explorer.testnet.immutable.com",nativeToken:wm.get(e.ChainId.IMTBL_ZKEVM_TESTNET).nativeCurrency},[e.ChainId.IMTBL_ZKEVM_MAINNET]:{url:"https://explorer.immutable.com",nativeToken:Tm.get(e.ChainId.IMTBL_ZKEVM_MAINNET).nativeCurrency},[e.ChainId.SEPOLIA]:{url:"https://eth-sepolia.blockscout.com",nativeToken:wm.get(e.ChainId.SEPOLIA).nativeCurrency},[e.ChainId.ETHEREUM]:{url:"https://eth.blockscout.com/",nativeToken:Tm.get(e.ChainId.ETHEREUM).nativeCurrency}},_m=[{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"}],Im=[{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"}],Rm={maxFeePerGas:cr.from(102e9),maxPriorityFeePerGas:cr.from(101e9)},Cm=()=>"0.44.4";class Om{httpClient;isDevelopment;isProduction;configCache;tokensCache;version="v1";constructor(e,t){this.isDevelopment=t.isDevelopment,this.isProduction=t.isProduction,this.httpClient=e}getEndpoint=()=>this.isDevelopment?bm[pm]:this.isProduction?bm[mt.PRODUCTION]:bm[mt.SANDBOX];parseResponse(t){let n=t.data;if(t.data&&"object"!=typeof t.data)try{n=JSON.parse(t.data)}catch(t){throw new sm("Invalid configuration",e.CheckoutErrorType.API_ERROR,{error:t})}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 sm(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR,{error:t})}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 sm(`Error: ${t.message}`,e.CheckoutErrorType.API_ERROR,{error:t})}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 km extends Error{message;constructor(e){super(e),this.message=e}}const Sm=t=>t.isProduction?e.ChainId.ETHEREUM:e.ChainId.SEPOLIA,Nm=t=>t.isDevelopment?e.ChainId.IMTBL_ZKEVM_DEVNET:t.isProduction?e.ChainId.IMTBL_ZKEVM_MAINNET:e.ChainId.IMTBL_ZKEVM_TESTNET;class xm{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;environment;networkMap;constructor(e,t){if(!Object.values(mt).includes(e.baseConfig.environment))throw new km("Invalid checkout configuration of environment");var n;this.environment=e.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===mt.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?Am:n?Tm:wm),this.remote=new Om(t,{isDevelopment:this.isDevelopment,isProduction:this.isProduction})}}const Pm=(e="",t="")=>e.toLowerCase()===t.toLowerCase(),Mm=async(t,{type:n=e.TokenFilterTypes.ALL,chainId:r,exclude:i})=>{let a,o,s=[];const u=r??Sm(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[Kh.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}},Bm=e=>!e||Pm(e,mm);async function Dm(t,n){return await um((async()=>{const e=new Cl(n,JSON.stringify(_m),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 Fm{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=Em[this.chainId].url;const r=Em[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(Em[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=dt.InternalServerError,n="InternalServerError";return $e.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=dt.InternalServerError,n="InternalServerError";return $e.isAxiosError(e)&&(t=e.response?.status||t,n=e.message),Promise.reject({code:t,message:n})}}}var Lm;!function(e){e.ERC20="ERC-20"}(Lm||(Lm={}));const Um=(e,t,n)=>{e.isProduction||console.info(t,n)},qm=async(e,t,n)=>{const r=performance.now(),i=await n,a=performance.now();return Um(e,t,(a-r)/1e3),i},jm=async(t,n,r)=>await um((async()=>{const i=await dm(t,n);if(!i.isSupported)throw new sm(`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:Dh(a,i.nativeCurrency.decimals),token:i.nativeCurrency}}),{type:e.CheckoutErrorType.GET_BALANCE_ERROR});async function Gm(t,n,r){return await um((async()=>{const e=new Cl(r,JSON.stringify(_m),t);return Promise.all([Dm(t,r),e.balanceOf(n)]).then((([e,t])=>({balance:t,formattedBalance:Dh(t,e.decimals),token:{name:e.name,symbol:e.symbol,decimals:e.decimals,address:r}})))}),{type:e.CheckoutErrorType.GET_ERC20_BALANCE_ERROR})}const Hm=new Map,zm=async(t,n,r,i)=>{if(!r&&!n)throw new sm("both walletAddress and provider are missing. At least one must be provided.",e.CheckoutErrorType.MISSING_PARAMS);if(!t.networkMap.get(i))throw new sm(`chain ID ${i} not supported by the environment`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);const{tokens:a}=await Mm(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&&Fm.isChainSupported(i)){const r=Sm(t)===i;return s||(s=await(n?.getSigner().getAddress())),await qm(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||mm]:e}))));let s=Hm.get(r);if(!s){const e=t.remote.getHttpClient();s=new Fm(e,r),Hm.set(r,s)}const u=[],c=Lm.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!==dt.NotFound)throw new sm(t.message||"InternalServerError | getTokensByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,{error:t})}})(s),(async t=>{try{const e=await t.getNativeTokenByWalletAddress({walletAddress:n});e.token.address||=mm,u.push(e)}catch(t){if(t?.code!==dt.NotFound)throw new sm(t.message||"InternalServerError | getNativeTokenByWalletAddress",e.CheckoutErrorType.GET_INDEXER_BALANCE_ERROR,{error:t})}})(s)]);const l=[];return u.forEach((e=>{if(a&&!o[e.token.address])return;const t=e.token||{},n=cr.from(e.value);let r=parseInt(t.decimals,10);Number.isNaN(r)&&(r=hm);const i={...t,decimals:r},s=Dh(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 sm("indexer is disabled for this chain, you must provide a provider.",e.CheckoutErrorType.MISSING_PARAMS);return s||=await n.getSigner().getAddress(),await qm(t,`Time to fetch balances using RPC for ${i}`,(async(e,t,n,r)=>{const i=[];return r.forEach((r=>{!r.address||Pm(r.address,mm)?i.push(jm(e,t,n)):i.push(Gm(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&&!Pm(n.address,mm)||(t.value.token.address=mm),t.value}))}})(t,n,s,a))};var Wm=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))}))},Vm=bt(Wm);async function Km(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 sm("Passport not provided",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR);r=new vh(n.connectEvm());break;case e.WalletProviderName.METAMASK:r=await async function(){const t=await um((async()=>await Vm()),{type:e.CheckoutErrorType.METAMASK_PROVIDER_ERROR});if(!t||!t.request)throw new sm("No MetaMask provider installed.",e.CheckoutErrorType.METAMASK_PROVIDER_ERROR);return new vh(t)}();break;default:throw console.error("The WalletProviderName that was provided is not supported"),new sm("Provider not supported",e.CheckoutErrorType.DEFAULT_PROVIDER_ERROR)}return{provider:r,walletProviderName:t}}function Xm(e){return!(!e||!e.provider?.request||"function"!=typeof e.provider.request)}async function Jm(t,n,r){return um((async()=>{if(n.provider?.isPassport)return n;if(!Xm(n))throw new sm("Parsed provider is not a valid Web3Provider",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);const i={...Zh,...r},a=await cm(n);let o=n.network?.chainId;try{o=n.network?.chainId,o||(o=(await n.getNetwork()).chainId)}catch(t){throw new sm("Unable to detect the web3Provider network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR,{error:t})}if(o!==a&&!i.allowMistmatchedChainId)throw new sm("Your wallet has changed network, please switch to a supported network",e.CheckoutErrorType.WEB3_PROVIDER_ERROR);if(!(await lm(t,{type:e.NetworkFilterTypes.ALL})).networks.some((e=>e.chainId===a))&&!i.allowUnsupportedProvider)throw new sm("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 Ym=async(t,n)=>{try{const e=t.getSigner(),r=(e=>{const t=e;return t.maxFeePerGas=Rm.maxFeePerGas,t.maxPriorityFeePerGas=Rm.maxPriorityFeePerGas,t})(n);return{transactionResponse:await e.sendTransaction(r)}}catch(t){if(t.code===Nn.INSUFFICIENT_FUNDS)throw new sm(t.message,e.CheckoutErrorType.INSUFFICIENT_FUNDS,{error:t});if(t.code===Nn.ACTION_REJECTED)throw new sm(t.message,e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR,{error:t});if(t.code===Nn.UNPREDICTABLE_GAS_LIMIT)throw new sm(t.message,e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT,{error:t});throw new sm(t.message,e.CheckoutErrorType.TRANSACTION_FAILED,{error:t})}};function Qm(e,t){return function(){return e.apply(t,arguments)}}const{toString:$m}=Object.prototype,{getPrototypeOf:Zm}=Object,ey=(e=>t=>{const n=$m.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),ty=e=>(e=e.toLowerCase(),t=>ey(t)===e),ny=e=>t=>typeof t===e,{isArray:ry}=Array,iy=ny("undefined");const ay=ty("ArrayBuffer");const oy=ny("string"),sy=ny("function"),uy=ny("number"),cy=e=>null!==e&&"object"==typeof e,ly=e=>{if("object"!==ey(e))return!1;const t=Zm(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},dy=ty("Date"),fy=ty("File"),py=ty("Blob"),hy=ty("FileList"),my=ty("URLSearchParams");function yy(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,i;if("object"!=typeof e&&(e=[e]),ry(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 gy(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 by="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,vy=e=>!iy(e)&&e!==by;const Ty=(e=>t=>e&&t instanceof e)("undefined"!=typeof Uint8Array&&Zm(Uint8Array)),wy=ty("HTMLFormElement"),Ay=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),Ey=ty("RegExp"),_y=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};yy(n,((n,i)=>{let a;!1!==(a=t(n,i,e))&&(r[i]=a||n)})),Object.defineProperties(e,r)},Iy="abcdefghijklmnopqrstuvwxyz",Ry="0123456789",Cy={DIGIT:Ry,ALPHA:Iy,ALPHA_DIGIT:Iy+Iy.toUpperCase()+Ry};const Oy=ty("AsyncFunction");var ky={isArray:ry,isArrayBuffer:ay,isBuffer:function(e){return null!==e&&!iy(e)&&null!==e.constructor&&!iy(e.constructor)&&sy(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||sy(e.append)&&("formdata"===(t=ey(e))||"object"===t&&sy(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&ay(e.buffer),t},isString:oy,isNumber:uy,isBoolean:e=>!0===e||!1===e,isObject:cy,isPlainObject:ly,isUndefined:iy,isDate:dy,isFile:fy,isBlob:py,isRegExp:Ey,isFunction:sy,isStream:e=>cy(e)&&sy(e.pipe),isURLSearchParams:my,isTypedArray:Ty,isFileList:hy,forEach:yy,merge:function e(){const{caseless:t}=vy(this)&&this||{},n={},r=(r,i)=>{const a=t&&gy(n,i)||i;ly(n[a])&&ly(r)?n[a]=e(n[a],r):ly(r)?n[a]=e({},r):ry(r)?n[a]=r.slice():n[a]=r};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&yy(arguments[e],r);return n},extend:(e,t,n,{allOwnKeys:r}={})=>(yy(t,((t,r)=>{n&&sy(t)?e[r]=Qm(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&&Zm(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:ey,kindOfTest:ty,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(ry(e))return e;let t=e.length;if(!uy(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:wy,hasOwnProperty:Ay,hasOwnProp:Ay,reduceDescriptors:_y,freezeMethods:e=>{_y(e,((t,n)=>{if(sy(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];sy(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 ry(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:gy,global:by,isContextDefined:vy,ALPHABET:Cy,generateString:(e=16,t=Cy.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&sy(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(cy(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const i=ry(e)?[]:{};return yy(e,((e,t)=>{const a=n(e,r+1);!iy(a)&&(i[t]=a)})),t[r]=void 0,i}}return e};return n(e,0)},isAsyncFn:Oy,isThenable:e=>e&&(cy(e)||sy(e))&&sy(e.then)&&sy(e.catch)};function Sy(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)}ky.inherits(Sy,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:ky.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const Ny=Sy.prototype,xy={};["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=>{xy[e]={value:e}})),Object.defineProperties(Sy,xy),Object.defineProperty(Ny,"isAxiosError",{value:!0}),Sy.from=(e,t,n,r,i,a)=>{const o=Object.create(Ny);return ky.toFlatObject(e,o,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),Sy.call(o,e.message,t,n,r,i),o.cause=e,o.name=e.name,a&&Object.assign(o,a),o};function Py(e){return ky.isPlainObject(e)||ky.isArray(e)}function My(e){return ky.endsWith(e,"[]")?e.slice(0,-2):e}function By(e,t,n){return e?e.concat(t).map((function(e,t){return e=My(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const Dy=ky.toFlatObject(ky,{},null,(function(e){return/^is[A-Z]/.test(e)}));function Fy(e,t,n){if(!ky.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=ky.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ky.isUndefined(t[e])}))).metaTokens,i=n.visitor||c,a=n.dots,o=n.indexes,s=(n.Blob||"undefined"!=typeof Blob&&Blob)&&ky.isSpecCompliantForm(t);if(!ky.isFunction(i))throw new TypeError("visitor must be a function");function u(e){if(null===e)return"";if(ky.isDate(e))return e.toISOString();if(!s&&ky.isBlob(e))throw new Sy("Blob is not supported. Use a Buffer instead.");return ky.isArrayBuffer(e)||ky.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(ky.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(ky.isArray(e)&&function(e){return ky.isArray(e)&&!e.some(Py)}(e)||(ky.isFileList(e)||ky.endsWith(n,"[]"))&&(s=ky.toArray(e)))return n=My(n),s.forEach((function(e,r){!ky.isUndefined(e)&&null!==e&&t.append(!0===o?By([n],r,a):null===o?n:n+"[]",u(e))})),!1;return!!Py(e)||(t.append(By(i,n,a),u(e)),!1)}const l=[],d=Object.assign(Dy,{defaultVisitor:c,convertValue:u,isVisitable:Py});if(!ky.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!ky.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),ky.forEach(n,(function(n,a){!0===(!(ky.isUndefined(n)||null===n)&&i.call(t,n,ky.isString(a)?a.trim():a,r,d))&&e(n,r?r.concat(a):[a])})),l.pop()}}(e),t}function Ly(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Uy(e,t){this._pairs=[],e&&Fy(e,this,t)}const qy=Uy.prototype;function jy(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Gy(e,t,n){if(!t)return e;const r=n&&n.encode||jy,i=n&&n.serialize;let a;if(a=i?i(t,n):ky.isURLSearchParams(t)?t.toString():new Uy(t,n).toString(r),a){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+a}return e}qy.append=function(e,t){this._pairs.push([e,t])},qy.toString=function(e){const t=e?function(t){return e.call(this,t,Ly)}:Ly;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Hy=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){ky.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},zy={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Wy={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Uy,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Vy="undefined"!=typeof window&&"undefined"!=typeof document,Ky=(e=>Vy&&["ReactNative","NativeScript","NS"].indexOf(e)<0)("undefined"!=typeof navigator&&navigator.product),Xy="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts;var Jy={...Object.freeze({__proto__:null,hasBrowserEnv:Vy,hasStandardBrowserEnv:Ky,hasStandardBrowserWebWorkerEnv:Xy}),...Wy};function Yy(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&&ky.isArray(r)?r.length:a,s)return ky.hasOwnProp(r,a)?r[a]=[r[a],n]:r[a]=n,!o;r[a]&&ky.isObject(r[a])||(r[a]=[]);return t(e,n,r[a],i)&&ky.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(ky.isFormData(e)&&ky.isFunction(e.entries)){const n={};return ky.forEachEntry(e,((e,r)=>{t(function(e){return ky.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const Qy={transitional:zy,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,i=ky.isObject(e);i&&ky.isHTMLForm(e)&&(e=new FormData(e));if(ky.isFormData(e))return r&&r?JSON.stringify(Yy(e)):e;if(ky.isArrayBuffer(e)||ky.isBuffer(e)||ky.isStream(e)||ky.isFile(e)||ky.isBlob(e))return e;if(ky.isArrayBufferView(e))return e.buffer;if(ky.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 Fy(e,new Jy.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return Jy.isNode&&ky.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((a=ky.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return Fy(a?{"files[]":e}:e,t&&new t,this.formSerializer)}}return i||r?(t.setContentType("application/json",!1),function(e,t,n){if(ky.isString(e))try{return(t||JSON.parse)(e),ky.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Qy.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&ky.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 Sy.from(e,Sy.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:Jy.classes.FormData,Blob:Jy.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ky.forEach(["delete","get","head","post","put","patch"],(e=>{Qy.headers[e]={}}));var $y=Qy;const Zy=ky.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 eg=Symbol("internals");function tg(e){return e&&String(e).trim().toLowerCase()}function ng(e){return!1===e||null==e?e:ky.isArray(e)?e.map(ng):String(e)}function rg(e,t,n,r,i){return ky.isFunction(r)?r.call(this,t,n):(i&&(t=n),ky.isString(t)?ky.isString(r)?-1!==t.indexOf(r):ky.isRegExp(r)?r.test(t):void 0:void 0)}class ig{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function i(e,t,n){const i=tg(t);if(!i)throw new Error("header name must be a non-empty string");const a=ky.findKey(r,i);(!a||void 0===r[a]||!0===n||void 0===n&&!1!==r[a])&&(r[a||t]=ng(e))}const a=(e,t)=>ky.forEach(e,((e,n)=>i(e,n,t)));return ky.isPlainObject(e)||e instanceof this.constructor?a(e,t):ky.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]&&Zy[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=tg(e)){const n=ky.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(ky.isFunction(t))return t.call(this,e,n);if(ky.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=tg(e)){const n=ky.findKey(this,e);return!(!n||void 0===this[n]||t&&!rg(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function i(e){if(e=tg(e)){const i=ky.findKey(n,e);!i||t&&!rg(0,n[i],i,t)||(delete n[i],r=!0)}}return ky.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&&!rg(0,this[i],i,e,!0)||(delete this[i],r=!0)}return r}normalize(e){const t=this,n={};return ky.forEach(this,((r,i)=>{const a=ky.findKey(n,i);if(a)return t[a]=ng(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]=ng(r),n[o]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return ky.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&ky.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[eg]=this[eg]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=tg(e);t[r]||(!function(e,t){const n=ky.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 ky.isArray(e)?e.forEach(r):r(e),this}}ig.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),ky.reduceDescriptors(ig.prototype,(({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}})),ky.freezeMethods(ig);var ag=ig;function og(e,t){const n=this||$y,r=t||n,i=ag.from(r.headers);let a=r.data;return ky.forEach(e,(function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)})),i.normalize(),a}function sg(e){return!(!e||!e.__CANCEL__)}function ug(e,t,n){Sy.call(this,null==e?"canceled":e,Sy.ERR_CANCELED,t,n),this.name="CanceledError"}ky.inherits(ug,Sy,{__CANCEL__:!0});var cg=Jy.hasStandardBrowserEnv?{write(e,t,n,r,i,a){const o=[e+"="+encodeURIComponent(t)];ky.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),ky.isString(r)&&o.push("path="+r),ky.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 lg(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 dg=Jy.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=ky.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};function fg(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 pg="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let r=e.data;const i=ag.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(ky.isFormData(r))if(Jy.hasStandardBrowserEnv||Jy.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=lg(e.baseURL,e.url);function f(){if(!l)return;const r=ag.from("getAllResponseHeaders"in l&&l.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new Sy("Request failed with status code "+n.status,[Sy.ERR_BAD_REQUEST,Sy.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(),Gy(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 Sy("Request aborted",Sy.ECONNABORTED,e,l)),l=null)},l.onerror=function(){n(new Sy("Network Error",Sy.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||zy;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new Sy(t,r.clarifyTimeoutError?Sy.ETIMEDOUT:Sy.ECONNABORTED,e,l)),l=null},Jy.hasStandardBrowserEnv&&(u&&ky.isFunction(u)&&(u=u(e)),u||!1!==u&&dg(d))){const t=e.xsrfHeaderName&&e.xsrfCookieName&&cg.read(e.xsrfCookieName);t&&i.set(e.xsrfHeaderName,t)}void 0===r&&i.setContentType(null),"setRequestHeader"in l&&ky.forEach(i.toJSON(),(function(e,t){l.setRequestHeader(t,e)})),ky.isUndefined(e.withCredentials)||(l.withCredentials=!!e.withCredentials),s&&"json"!==s&&(l.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&l.addEventListener("progress",fg(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&l.upload&&l.upload.addEventListener("progress",fg(e.onUploadProgress)),(e.cancelToken||e.signal)&&(a=t=>{l&&(n(!t||t.type?new ug(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===Jy.protocols.indexOf(p)?n(new Sy("Unsupported protocol "+p+":",Sy.ERR_BAD_REQUEST,e)):l.send(r||null)}))};const hg={http:null,xhr:pg};ky.forEach(hg,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const mg=e=>`- ${e}`,yg=e=>ky.isFunction(e)||null===e||!1===e;var gg=e=>{e=ky.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,!yg(n)&&(r=hg[(t=String(n)).toLowerCase()],void 0===r))throw new Sy(`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 Sy("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(mg).join("\n"):" "+mg(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function bg(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new ug(null,e)}function vg(e){bg(e),e.headers=ag.from(e.headers),e.data=og.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return gg(e.adapter||$y.adapter)(e).then((function(t){return bg(e),t.data=og.call(e,e.transformResponse,t),t.headers=ag.from(t.headers),t}),(function(t){return sg(t)||(bg(e),t&&t.response&&(t.response.data=og.call(e,e.transformResponse,t.response),t.response.headers=ag.from(t.response.headers))),Promise.reject(t)}))}const Tg=e=>e instanceof ag?e.toJSON():e;function wg(e,t){t=t||{};const n={};function r(e,t,n){return ky.isPlainObject(e)&&ky.isPlainObject(t)?ky.merge.call({caseless:n},e,t):ky.isPlainObject(t)?ky.merge({},t):ky.isArray(t)?t.slice():t}function i(e,t,n){return ky.isUndefined(t)?ky.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function a(e,t){if(!ky.isUndefined(t))return r(void 0,t)}function o(e,t){return ky.isUndefined(t)?ky.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(Tg(e),Tg(t),!0)};return ky.forEach(Object.keys(Object.assign({},e,t)),(function(r){const a=u[r]||i,o=a(e[r],t[r],r);ky.isUndefined(o)&&a!==s||(n[r]=o)})),n}const Ag="1.6.5",Eg={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Eg[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const _g={};Eg.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 Sy(r(i," has been removed"+(t?" in "+t:"")),Sy.ERR_DEPRECATED);return t&&!_g[i]&&(_g[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 Ig={assertOptions:function(e,t,n){if("object"!=typeof e)throw new Sy("options must be an object",Sy.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 Sy("option "+a+" must be "+n,Sy.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new Sy("Unknown option "+a,Sy.ERR_BAD_OPTION)}},validators:Eg};const Rg=Ig.validators;class Cg{constructor(e){this.defaults=e,this.interceptors={request:new Hy,response:new Hy}}request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=wg(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:i}=t;void 0!==n&&Ig.assertOptions(n,{silentJSONParsing:Rg.transitional(Rg.boolean),forcedJSONParsing:Rg.transitional(Rg.boolean),clarifyTimeoutError:Rg.transitional(Rg.boolean)},!1),null!=r&&(ky.isFunction(r)?t.paramsSerializer={serialize:r}:Ig.assertOptions(r,{encode:Rg.function,serialize:Rg.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let a=i&&ky.merge(i.common,i[t.method]);i&&ky.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete i[e]})),t.headers=ag.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=[vg.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=vg.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 Gy(lg((e=wg(this.defaults,e)).baseURL,e.url),e.params,e.paramsSerializer)}}ky.forEach(["delete","get","head","options"],(function(e){Cg.prototype[e]=function(t,n){return this.request(wg(n||{},{method:e,url:t,data:(n||{}).data}))}})),ky.forEach(["post","put","patch"],(function(e){function t(t){return function(n,r,i){return this.request(wg(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}Cg.prototype[e]=t(),Cg.prototype[e+"Form"]=t(!0)}));var Og=Cg;class kg{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 ug(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 kg((function(t){e=t})),cancel:e}}}var Sg=kg;const Ng={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(Ng).forEach((([e,t])=>{Ng[t]=e}));var xg=Ng;const Pg=function e(t){const n=new Og(t),r=Qm(Og.prototype.request,n);return ky.extend(r,Og.prototype,n,{allOwnKeys:!0}),ky.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(wg(t,n))},r}($y);Pg.Axios=Og,Pg.CanceledError=ug,Pg.CancelToken=Sg,Pg.isCancel=sg,Pg.VERSION=Ag,Pg.toFormData=Fy,Pg.AxiosError=Sy,Pg.Cancel=Pg.CanceledError,Pg.all=function(e){return Promise.all(e)},Pg.spread=function(e){return function(t){return e.apply(null,t)}},Pg.isAxiosError=function(e){return ky.isObject(e)&&!0===e.isAxiosError},Pg.mergeConfig=wg,Pg.AxiosHeaders=ag,Pg.formToJSON=e=>Yy(ky.isHTMLForm(e)?new FormData(e):e),Pg.getAdapter=gg,Pg.HttpStatusCode=xg,Pg.default=Pg;var Mg=Pg,Bg="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function Dg(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Fg(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 Lg={exports:{}},Ug=Fg(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:Ug.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,Bg)}(Lg);var qg=Dg(Lg.exports);let jg=!1,Gg=!1;const Hg={debug:1,default:2,info:2,warning:3,error:4,off:5};let zg=Hg.default,Wg=null;const Vg=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 Kg,Xg;!function(e){e.DEBUG="DEBUG",e.INFO="INFO",e.WARNING="WARNING",e.ERROR="ERROR",e.OFF="OFF"}(Kg||(Kg={})),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"}(Xg||(Xg={}));const Jg="0123456789abcdef";let Yg=class e{constructor(e){Object.defineProperty(this,"version",{enumerable:!0,value:e,writable:!1})}_log(e,t){const n=e.toLowerCase();null==Hg[n]&&this.throwArgumentError("invalid log level name","logLevel",e),zg>Hg[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(Gg)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+=Jg[t[e]>>4],n+=Jg[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 Xg.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 Xg.CALL_EXCEPTION:case Xg.INSUFFICIENT_FUNDS:case Xg.MISSING_NEW:case Xg.NONCE_EXPIRED:case Xg.REPLACEMENT_UNDERPRICED:case Xg.TRANSACTION_REPLACED:case Xg.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){Vg&&this.throwError("platform missing String.prototype.normalize",e.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Vg})}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 Wg||(Wg=new e("logger/5.7.0")),Wg}static setCensorship(t,n){if(!t&&n&&this.globalLogger().throwError("cannot permanently disable censorship",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),jg){if(!t)return;this.globalLogger().throwError("error censorship permanent",e.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}Gg=!!t,jg=!!n}static setLogLevel(t){const n=Hg[t.toLowerCase()];null!=n?zg=n:e.globalLogger().warn("invalid log level - "+t)}static from(t){return new e(t)}};Yg.errors=Xg,Yg.levels=Kg;const Qg=new Yg("bytes/5.7.0");function $g(e){return!!e.toHexString}function Zg(e){return e.slice||(e.slice=function(){const t=Array.prototype.slice.call(arguments);return Zg(new Uint8Array(Array.prototype.slice.apply(e,t)))}),e}function eb(e){return"number"==typeof e&&e==e&&e%1==0}function tb(e){if(null==e)return!1;if(e.constructor===Uint8Array)return!0;if("string"==typeof e)return!1;if(!eb(e.length)||e.length<0)return!1;for(let t=0;t<e.length;t++){const n=e[t];if(!eb(n)||n<0||n>=256)return!1}return!0}function nb(e,t){if(t||(t={}),"number"==typeof e){Qg.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),Zg(new Uint8Array(t))}if(t.allowMissingPrefix&&"string"==typeof e&&"0x"!==e.substring(0,2)&&(e="0x"+e),$g(e)&&(e=e.toHexString()),ib(e)){let n=e.substring(2);n.length%2&&("left"===t.hexPad?n="0"+n:"right"===t.hexPad?n+="0":Qg.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 Zg(new Uint8Array(r))}return tb(e)?Zg(new Uint8Array(e)):Qg.throwArgumentError("invalid arrayify value","value",e)}function rb(e){const t=e.map((e=>nb(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),Zg(r)}function ib(e,t){return!("string"!=typeof e||!e.match(/^0x[0-9A-Fa-f]*$/))&&(!t||e.length===2+2*t)}const ab="0123456789abcdef";function ob(e,t){if(t||(t={}),"number"==typeof e){Qg.checkSafeUint53(e,"invalid hexlify value");let t="";for(;e;)t=ab[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),$g(e))return e.toHexString();if(ib(e))return e.length%2&&("left"===t.hexPad?e="0x0"+e.substring(2):"right"===t.hexPad?e+="0":Qg.throwArgumentError("hex data is odd-length","value",e)),e.toLowerCase();if(tb(e)){let t="0x";for(let n=0;n<e.length;n++){let r=e[n];t+=ab[(240&r)>>4]+ab[15&r]}return t}return Qg.throwArgumentError("invalid hexlify value","value",e)}function sb(e,t,n){return"string"!=typeof e?e=ob(e):(!ib(e)||e.length%2)&&Qg.throwArgumentError("invalid hexData","value",e),t=2+2*t,null!=n?"0x"+e.substring(t,2+2*n):"0x"+e.substring(t)}function ub(e,t){for("string"!=typeof e?e=ob(e):ib(e)||Qg.throwArgumentError("invalid hex string","value",e),e.length>2*t+2&&Qg.throwArgumentError("value out of range","value",arguments[1]);e.length<2*t+2;)e="0x0"+e.substring(2);return e}var cb=qg.BN;const lb=new Yg("bignumber/5.7.0"),db={},fb=9007199254740991;let pb=!1;class hb{constructor(e,t){e!==db&&lb.throwError("cannot call constructor directly; use BigNumber.from",Yg.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=t,this._isBigNumber=!0,Object.freeze(this)}fromTwos(e){return yb(gb(this).fromTwos(e))}toTwos(e){return yb(gb(this).toTwos(e))}abs(){return"-"===this._hex[0]?hb.from(this._hex.substring(1)):this}add(e){return yb(gb(this).add(gb(e)))}sub(e){return yb(gb(this).sub(gb(e)))}div(e){return hb.from(e).isZero()&&bb("division-by-zero","div"),yb(gb(this).div(gb(e)))}mul(e){return yb(gb(this).mul(gb(e)))}mod(e){const t=gb(e);return t.isNeg()&&bb("division-by-zero","mod"),yb(gb(this).umod(t))}pow(e){const t=gb(e);return t.isNeg()&&bb("negative-power","pow"),yb(gb(this).pow(t))}and(e){const t=gb(e);return(this.isNegative()||t.isNeg())&&bb("unbound-bitwise-result","and"),yb(gb(this).and(t))}or(e){const t=gb(e);return(this.isNegative()||t.isNeg())&&bb("unbound-bitwise-result","or"),yb(gb(this).or(t))}xor(e){const t=gb(e);return(this.isNegative()||t.isNeg())&&bb("unbound-bitwise-result","xor"),yb(gb(this).xor(t))}mask(e){return(this.isNegative()||e<0)&&bb("negative-width","mask"),yb(gb(this).maskn(e))}shl(e){return(this.isNegative()||e<0)&&bb("negative-width","shl"),yb(gb(this).shln(e))}shr(e){return(this.isNegative()||e<0)&&bb("negative-width","shr"),yb(gb(this).shrn(e))}eq(e){return gb(this).eq(gb(e))}lt(e){return gb(this).lt(gb(e))}lte(e){return gb(this).lte(gb(e))}gt(e){return gb(this).gt(gb(e))}gte(e){return gb(this).gte(gb(e))}isNegative(){return"-"===this._hex[0]}isZero(){return gb(this).isZero()}toNumber(){try{return gb(this).toNumber()}catch(e){bb("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(e){}return lb.throwError("this platform does not support BigInt",Yg.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?pb||(pb=!0,lb.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?lb.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",Yg.errors.UNEXPECTED_ARGUMENT,{}):lb.throwError("BigNumber.toString does not accept parameters",Yg.errors.UNEXPECTED_ARGUMENT,{})),gb(this).toString(10)}toHexString(){return this._hex}toJSON(e){return{type:"BigNumber",hex:this.toHexString()}}static from(e){if(e instanceof hb)return e;if("string"==typeof e)return e.match(/^-?0x[0-9a-f]+$/i)?new hb(db,mb(e)):e.match(/^-?[0-9]+$/)?new hb(db,mb(new cb(e))):lb.throwArgumentError("invalid BigNumber string","value",e);if("number"==typeof e)return e%1&&bb("underflow","BigNumber.from",e),(e>=fb||e<=-fb)&&bb("overflow","BigNumber.from",e),hb.from(String(e));const t=e;if("bigint"==typeof t)return hb.from(t.toString());if(tb(t))return hb.from(ob(t));if(t)if(t.toHexString){const e=t.toHexString();if("string"==typeof e)return hb.from(e)}else{let e=t._hex;if(null==e&&"BigNumber"===t.type&&(e=t.hex),"string"==typeof e&&(ib(e)||"-"===e[0]&&ib(e.substring(1))))return hb.from(e)}return lb.throwArgumentError("invalid BigNumber value","value",e)}static isBigNumber(e){return!(!e||!e._isBigNumber)}}function mb(e){if("string"!=typeof e)return mb(e.toString(16));if("-"===e[0])return"-"===(e=e.substring(1))[0]&&lb.throwArgumentError("invalid hex","value",e),"0x00"===(e=mb(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 yb(e){return hb.from(mb(e))}function gb(e){const t=hb.from(e).toHexString();return"-"===t[0]?new cb("-"+t.substring(3),16):new cb(t.substring(2),16)}function bb(e,t,n){const r={fault:e,operation:t};return null!=n&&(r.value=n),lb.throwError(e,Yg.errors.NUMERIC_FAULT,r)}var vb=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 Tb=new Yg("properties/5.7.0");function wb(e,t,n){Object.defineProperty(e,t,{enumerable:!0,value:n,writable:!1})}function Ab(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 Eb(e){return vb(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 _b(e){const t={};for(const n in e)t[n]=e[n];return t}const Ib={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function Rb(e){if(null==e||Ib[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(!Rb(r))return!1}return!0}return Tb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Cb(e){if(Rb(e))return e;if(Array.isArray(e))return Object.freeze(e.map((e=>Ob(e))));if("object"==typeof e){const t={};for(const n in e){const r=e[n];void 0!==r&&wb(t,n,Ob(r))}return t}return Tb.throwArgumentError("Cannot deepCopy "+typeof e,"object",e)}function Ob(e){return Cb(e)}class kb{constructor(e){for(const t in e)this[t]=Ob(e[t])}}const Sb="abi/5.7.0",Nb=new Yg(Sb),xb={};let Pb={calldata:!0,memory:!0,storage:!0},Mb={calldata:!0,memory:!0};function Bb(e,t){if("bytes"===e||"string"===e){if(Pb[t])return!0}else if("address"===e){if("payable"===t)return!0}else if((e.indexOf("[")>=0||"tuple"===e)&&Mb[t])return!0;return(Pb[t]||"payable"===t)&&Nb.throwArgumentError("invalid modifier","name",t),!1}function Db(e,t){for(let n in t)wb(e,n,t[n])}const Fb=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),Lb=new RegExp(/^(.*)\[([0-9]*)\]$/);class Ub{constructor(e,t){e!==xb&&Nb.throwError("use fromString",Yg.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),Db(this,t);let n=this.type.match(Lb);Db(this,n?{arrayLength:parseInt(n[2]||"-1"),arrayChildren:Ub.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=Fb.sighash),Fb[e]||Nb.throwArgumentError("invalid format type","format",e),e===Fb.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!==Fb.sighash&&(t+=this.type),t+="("+this.components.map((t=>t.format(e))).join(e===Fb.full?", ":",")+")"):t+=this.type,e!==Fb.sighash&&(!0===this.indexed&&(t+=" indexed"),e===Fb.full&&this.name&&(t+=" "+this.name)),t}static from(e,t){return"string"==typeof e?Ub.fromString(e,t):Ub.fromObject(e)}static fromObject(e){return Ub.isParamType(e)?e:new Ub(xb,{name:e.name||null,type:Yb(e.type),indexed:null==e.indexed?null:!!e.indexed,components:e.components?e.components.map(Ub.fromObject):null})}static fromString(e,t){return n=function(e,t){let n=e;function r(t){Nb.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=Yb(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=""),Bb(o.type,o.name)&&(o.name=""),o.type=Yb(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=""),Bb(o.type,o.name)&&(o.name=""),o.type=Yb(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=Yb(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=""):Bb(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&&Nb.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=""):Bb(o.type,o.name)&&(o.name=""),a.type=Yb(a.type),a}(e,!!t),Ub.fromObject({name:n.name,type:n.type,indexed:n.indexed,components:n.components});var n}static isParamType(e){return!(null==e||!e._isParamType)}}function qb(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&&Nb.throwArgumentError("unbalanced parenthesis","value",e)))}n&&t.push(n);return t}(e).map((e=>Ub.fromString(e,t)))}class jb{constructor(e,t){e!==xb&&Nb.throwError("use a static from method",Yg.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),Db(this,t),this._isFragment=!0,Object.freeze(this)}static from(e){return jb.isFragment(e)?e:"string"==typeof e?jb.fromString(e):jb.fromObject(e)}static fromObject(e){if(jb.isFragment(e))return e;switch(e.type){case"function":return Kb.fromObject(e);case"event":return Gb.fromObject(e);case"constructor":return Vb.fromObject(e);case"error":return Jb.fromObject(e);case"fallback":case"receive":return null}return Nb.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]?Gb.fromString(e.substring(5).trim()):"function"===e.split(" ")[0]?Kb.fromString(e.substring(8).trim()):"constructor"===e.split("(")[0].trim()?Vb.fromString(e.trim()):"error"===e.split(" ")[0]?Jb.fromString(e.substring(5).trim()):Nb.throwArgumentError("unsupported fragment","value",e)}static isFragment(e){return!(!e||!e._isFragment)}}class Gb extends jb{format(e){if(e||(e=Fb.sighash),Fb[e]||Nb.throwArgumentError("invalid format type","format",e),e===Fb.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!==Fb.sighash&&(t+="event "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Fb.full?", ":",")+") ",e!==Fb.sighash&&this.anonymous&&(t+="anonymous "),t.trim()}static from(e){return"string"==typeof e?Gb.fromString(e):Gb.fromObject(e)}static fromObject(e){if(Gb.isEventFragment(e))return e;"event"!==e.type&&Nb.throwArgumentError("invalid event object","value",e);const t={name:$b(e.name),anonymous:e.anonymous,inputs:e.inputs?e.inputs.map(Ub.fromObject):[],type:"event"};return new Gb(xb,t)}static fromString(e){let t=e.match(Zb);t||Nb.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:Nb.warn("unknown modifier: "+e)}})),Gb.fromObject({name:t[1].trim(),anonymous:n,inputs:qb(t[2],!0),type:"event"})}static isEventFragment(e){return e&&e._isFragment&&"event"===e.type}}function Hb(e,t){t.gas=null;let n=e.split("@");return 1!==n.length?(n.length>2&&Nb.throwArgumentError("invalid human-readable ABI signature","value",e),n[1].match(/^[0-9]+$/)||Nb.throwArgumentError("invalid human-readable ABI signature gas","value",e),t.gas=hb.from(n[1]),n[0]):e}function zb(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 Wb(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&&Nb.throwArgumentError("cannot have constant function with mutability "+t.stateMutability,"value",e),t.payable="payable"===t.stateMutability,null!=e.payable&&!!e.payable!==t.payable&&Nb.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||Nb.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&&Nb.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&&Nb.throwArgumentError("unable to determine stateMutability","value",e),t}class Vb extends jb{format(e){if(e||(e=Fb.sighash),Fb[e]||Nb.throwArgumentError("invalid format type","format",e),e===Fb.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===Fb.sighash&&Nb.throwError("cannot format a constructor for sighash",Yg.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let t="constructor("+this.inputs.map((t=>t.format(e))).join(e===Fb.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(t+=this.stateMutability+" "),t.trim()}static from(e){return"string"==typeof e?Vb.fromString(e):Vb.fromObject(e)}static fromObject(e){if(Vb.isConstructorFragment(e))return e;"constructor"!==e.type&&Nb.throwArgumentError("invalid constructor object","value",e);let t=Wb(e);t.constant&&Nb.throwArgumentError("constructor cannot be constant","value",e);const n={name:null,type:e.type,inputs:e.inputs?e.inputs.map(Ub.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?hb.from(e.gas):null};return new Vb(xb,n)}static fromString(e){let t={type:"constructor"},n=(e=Hb(e,t)).match(Zb);return n&&"constructor"===n[1].trim()||Nb.throwArgumentError("invalid constructor string","value",e),t.inputs=qb(n[2].trim(),!1),zb(n[3].trim(),t),Vb.fromObject(t)}static isConstructorFragment(e){return e&&e._isFragment&&"constructor"===e.type}}class Kb extends Vb{format(e){if(e||(e=Fb.sighash),Fb[e]||Nb.throwArgumentError("invalid format type","format",e),e===Fb.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!==Fb.sighash&&(t+="function "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Fb.full?", ":",")+") ",e!==Fb.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?Kb.fromString(e):Kb.fromObject(e)}static fromObject(e){if(Kb.isFunctionFragment(e))return e;"function"!==e.type&&Nb.throwArgumentError("invalid function object","value",e);let t=Wb(e);const n={type:e.type,name:$b(e.name),constant:t.constant,inputs:e.inputs?e.inputs.map(Ub.fromObject):[],outputs:e.outputs?e.outputs.map(Ub.fromObject):[],payable:t.payable,stateMutability:t.stateMutability,gas:e.gas?hb.from(e.gas):null};return new Kb(xb,n)}static fromString(e){let t={type:"function"},n=(e=Hb(e,t)).split(" returns ");n.length>2&&Nb.throwArgumentError("invalid function string","value",e);let r=n[0].match(Zb);if(r||Nb.throwArgumentError("invalid function signature","value",e),t.name=r[1].trim(),t.name&&$b(t.name),t.inputs=qb(r[2],!1),zb(r[3].trim(),t),n.length>1){let r=n[1].match(Zb);""==r[1].trim()&&""==r[3].trim()||Nb.throwArgumentError("unexpected tokens","value",e),t.outputs=qb(r[2],!1)}else t.outputs=[];return Kb.fromObject(t)}static isFunctionFragment(e){return e&&e._isFragment&&"function"===e.type}}function Xb(e){const t=e.format();return"Error(string)"!==t&&"Panic(uint256)"!==t||Nb.throwArgumentError(`cannot specify user defined ${t} error`,"fragment",e),e}class Jb extends jb{format(e){if(e||(e=Fb.sighash),Fb[e]||Nb.throwArgumentError("invalid format type","format",e),e===Fb.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((t=>JSON.parse(t.format(e))))});let t="";return e!==Fb.sighash&&(t+="error "),t+=this.name+"("+this.inputs.map((t=>t.format(e))).join(e===Fb.full?", ":",")+") ",t.trim()}static from(e){return"string"==typeof e?Jb.fromString(e):Jb.fromObject(e)}static fromObject(e){if(Jb.isErrorFragment(e))return e;"error"!==e.type&&Nb.throwArgumentError("invalid error object","value",e);const t={type:e.type,name:$b(e.name),inputs:e.inputs?e.inputs.map(Ub.fromObject):[]};return Xb(new Jb(xb,t))}static fromString(e){let t={type:"error"},n=e.match(Zb);return n||Nb.throwArgumentError("invalid error signature","value",e),t.name=n[1].trim(),t.name&&$b(t.name),t.inputs=qb(n[2],!1),Xb(Jb.fromObject(t))}static isErrorFragment(e){return e&&e._isFragment&&"error"===e.type}}function Yb(e){return e.match(/^uint($|[^1-9])/)?e="uint256"+e.substring(4):e.match(/^int($|[^1-9])/)&&(e="int256"+e.substring(3)),e}const Qb=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function $b(e){return e&&e.match(Qb)||Nb.throwArgumentError(`invalid identifier "${e}"`,"value",e),e}const Zb=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");const ev=new Yg(Sb);class tv{constructor(e,t,n,r){this.name=e,this.type=t,this.localName=n,this.dynamic=r}_throwError(e,t){ev.throwArgumentError(e,this.localName,t)}}class nv{constructor(e){wb(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+=ob(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(rb(e._data))}writeBytes(e){let t=nb(e);const n=t.length%this.wordSize;return n&&(t=rb([t,this._padding.slice(n)])),this._writeData(t)}_getValue(e){let t=nb(hb.from(e));return t.length>this.wordSize&&ev.throwError("value out-of-bounds",Yg.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:t.length}),t.length%this.wordSize&&(t=rb([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 rv{constructor(e,t,n,r){wb(this,"_data",nb(e)),wb(this,"wordSize",t||32),wb(this,"_coerceFunc",n),wb(this,"allowLoose",r),this._offset=0}get data(){return ob(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):rv.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:ev.throwError("data out-of-bounds",Yg.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+r})),this._data.slice(this._offset,this._offset+r)}subReader(e){return new rv(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 hb.from(this.readBytes(this.wordSize))}}var iv={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)}(fN)),mN(),yN||(yN=1,function(e,t){var n;e.exports=(n=OS(),mN(),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)}(gN)),TN(),EN(),RN(),kN(),xN(),BN(),DN||(DN=1,function(e,t){var n,r;e.exports=(r=OS(),EN(),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)}(FN)),LN||(LN=1,function(e,t){var n;e.exports=(n=OS(),EN(),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)}(UN)),qN||(qN=1,function(e,t){var n;e.exports=(n=OS(),EN(),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)}(jN)),GN||(GN=1,function(e,t){var n;e.exports=(n=OS(),EN(),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)}(HN)),zN||(zN=1,function(e,t){var n;e.exports=(n=OS(),EN(),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)}(WN)),VN||(VN=1,function(e,t){var n;e.exports=(n=OS(),EN(),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)}(KN)),XN||(XN=1,function(e,t){var n,r,i,a;e.exports=(a=OS(),EN(),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)}(JN)),YN||(YN=1,function(e,t){var n;e.exports=(n=OS(),WS(),QS(),TN(),EN(),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)}(QN)),ex(),tx||(tx=1,function(e,t){var n;e.exports=(n=OS(),WS(),QS(),TN(),EN(),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)}(nx)),rx||(rx=1,function(e,t){var n;e.exports=(n=OS(),WS(),QS(),TN(),EN(),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)}(ix)),ax||(ax=1,function(e,t){var n;e.exports=(n=OS(),WS(),QS(),TN(),EN(),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)}(ox)),cx(),n)}(MS);var lx=MS.exports,dx=gt&>.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(PS,"__esModule",{value:!0}),PS.Base=void 0;const fx=An,px=dx(lx);class hx{print(){hx.print(this)}bufferIndexOf(e,t,n=!1){if(n)return this.binarySearch(e,t,fx.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 hx.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 hx.linearSearch(e,t,n)}static bufferify(e){if(!fx.Buffer.isBuffer(e)){if("object"==typeof e&&e.words)return fx.Buffer.from(e.toString(px.default.enc.Hex),"hex");if(hx.isHexString(e))return fx.Buffer.from(e.replace(/^0x/,""),"hex");if("string"==typeof e)return fx.Buffer.from(e);if("bigint"==typeof e)return fx.Buffer.from(e.toString(16),"hex");if(e instanceof Uint8Array)return fx.Buffer.from(e.buffer);if("number"==typeof e){let t=e.toString();return t.length%2&&(t=`0${t}`),fx.Buffer.from(t,"hex")}if(ArrayBuffer.isView(e))return fx.Buffer.from(e.buffer,e.byteOffset,e.byteLength)}return e}bigNumberify(e){return hx.bigNumberify(e)}static bigNumberify(e){if("bigint"==typeof e)return e;if("string"==typeof e)return e.startsWith("0x")&&hx.isHexString(e)?BigInt("0x"+e.replace("0x","").toString()):BigInt(e);if(fx.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 hx.bufferToHex(e,t)}static bufferToHex(e,t=!0){return`${t?"0x":""}${(e||fx.Buffer.alloc(0)).toString("hex")}`}bufferify(e){return hx.bufferify(e)}bufferifyFn(e){return t=>{const n=e(t);return fx.Buffer.isBuffer(n)?n:this.isHexString(n)?fx.Buffer.from(n.replace("0x",""),"hex"):"string"==typeof n?fx.Buffer.from(n):"bigint"==typeof n?fx.Buffer.from(t.toString(16),"hex"):ArrayBuffer.isView(n)?fx.Buffer.from(n.buffer,n.byteOffset,n.byteLength):fx.Buffer.from(e(px.default.enc.Hex.parse(t.toString("hex"))).toString(px.default.enc.Hex),"hex")}}isHexString(e){return hx.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")}}PS.Base=hx,PS.default=hx;var mx=gt&>.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ES,"__esModule",{value:!0}),ES.MerkleTree=void 0;const yx=An,gx=mx((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})),bx=mx(kS),vx=mx(xS),Tx=mx(PS);let wx=class e extends Tx.default{constructor(e,t=bx.default,n={}){if(super(),this.duplicateOdd=!1,this.concatenator=yx.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(!yx.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(yx.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([gx.default(n),gx.default(n)])),i=gx.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?[gx.default(i),gx.default(a)]:[i,a],this.sortPairs&&o.sort(yx.Buffer.compare);let s=this.hashFn(this.concatenator(o));this.isBitcoinTree&&(s=gx.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(yx.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?yx.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(yx.Buffer.from([0])),e}getHexLayersFlat(){return this.getLayersFlat().map((e=>this.bufferToHex(e)))}getLayerCount(){return this.getLayers().length}getRoot(){return 0===this.layers.length?yx.Buffer.from([]):this.layers[this.layers.length-1][0]||yx.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===yx.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:yx.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=bx.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(yx.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(yx.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(gx.default(r)),o[a?"unshift":"push"](gx.default(i)),r=this.hashFn(this.concatenator(o)),r=gx.default(this.hashFn(r))):this.sortPairs?-1===yx.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===yx.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(yx.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(yx.Buffer.compare);o[e]=this.hashFn(this.concatenator(a))}return 0===yx.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=bx.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 vx.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]}};ES.MerkleTree=wx,"undefined"!=typeof window&&(window.MerkleTree=wx),ES.default=wx;var Ax={},Ex=gt&>.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ax,"__esModule",{value:!0}),Ax.MerkleMountainRange=void 0;const _x=An,Ix=Ex(kS),Rx=Ex(PS);class Cx extends Rx.default{constructor(e=Ix.default,t=[],n,r,i){super(),this.root=_x.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(_x.Buffer.concat([this.bufferify(e),t]))}hashBranch(e,t,n){return this.hashBranchFn?this.bufferify(this.hashBranchFn(e,t,n)):this.hashFn(_x.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(_x.Buffer.concat([this.bufferify(n),...t.map(this.bufferify)])):_x.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]}}Ax.MerkleMountainRange=Cx,"undefined"!=typeof window&&(window.MerkleMountainRange=Cx),Ax.default=Cx;var Ox={},kx=gt&>.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ox,"__esModule",{value:!0}),Ox.IncrementalMerkleTree=void 0;const Sx=kx(PS),Nx=kx(xS);class xx extends Sx.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 Nx.default.asTree(e,!0)}}Ox.IncrementalMerkleTree=xx,"undefined"!=typeof window&&(window.IncrementalMerkleTree=xx),Ox.default=xx;var Px={};Object.defineProperty(Px,"__esModule",{value:!0}),Px.MerkleSumTree=Px.ProofStep=Px.Leaf=Px.Bucket=void 0;const Mx=PS;class Bx{constructor(e,t){this.size=BigInt(e),this.hashed=t,this.parent=null,this.left=null,this.right=null}}Px.Bucket=Bx;Px.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 Bx(BigInt(this.rng[1])-BigInt(this.rng[0]),e)}};class Dx{constructor(e,t){this.bucket=e,this.right=t}}Px.ProofStep=Dx;class Fx extends Mx.Base{constructor(e,t){super(),this.leaves=e,this.hashFn=t,Fx.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 Bx(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 Dx(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 Bx(BigInt(a.size)+BigInt(e.bucket.size),i);return a.size===e.size&&a.hashed.toString("hex")===e.hashed.toString("hex")}}Px.MerkleSumTree=Fx,"undefined"!=typeof window&&(window.MerkleSumTree=Fx),Px.default=Fx,function(e){var t=gt&>.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.MerkleTree=void 0;const n=t(ES);e.MerkleTree=n.default;var r=Ax;Object.defineProperty(e,"MerkleMountainRange",{enumerable:!0,get:function(){return r.MerkleMountainRange}});var i=Ox;Object.defineProperty(e,"IncrementalMerkleTree",{enumerable:!0,get:function(){return i.IncrementalMerkleTree}});var a=Px;Object.defineProperty(e,"MerkleSumTree",{enumerable:!0,get:function(){return a.MerkleSumTree}}),e.default=n.default}(AS);var Lx={};Object.defineProperty(Lx,"__esModule",{value:!0}),Lx.DefaultGetter=void 0;const Ux=Ek,qx=new xk.Logger("defaults"),jx={integer:0,address:(0,Ux.hexZeroPad)("0x",20),bool:!1,bytes:"0x",string:""},Gx=e=>void 0!==e&&(null!=e&&(["string","number"].includes(typeof e)&&BigInt(e)===BigInt(0)||Array.isArray(e)&&e.every(Gx)||"object"==typeof e&&Object.values(e).every(Gx)||"boolean"==typeof e&&!1===e));class Hx{constructor(e){this.types=e,this.defaultValues={};for(const t in e){const e=this.getDefaultValue(t);this.defaultValues[t]=e,Gx(e)||qx.throwError(`Got non-empty value for type ${t} in default generator: ${e}`)}}static from(e,t){const{defaultValues:n}=new Hx(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,Ux.hexZeroPad)("0x",parseInt(n)):(e.match(/^(u?)int(\d*)$/)&&(e="integer"),jx[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)})),{}):qx.throwArgumentError(`unknown type: ${e}`,"type",e)}}Lx.DefaultGetter=Hx;var zx={};!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=Ek;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)}(zx),Object.defineProperty(wS,"__esModule",{value:!0}),wS.Eip712MerkleTree=void 0;const Wx=Ok,Vx=Ek,Kx=AS,Xx=Lx,Jx=zx;wS.Eip712MerkleTree=class{get completedSize(){return Math.pow(2,this.depth)}getCompleteElements(){const e=this.elements;return(0,Jx.fillArray)([...e],this.completedSize,this.defaultNode)}getCompleteLeaves(){const e=this.elements.map(this.leafHasher);return(0,Jx.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,Vx.hexConcat)([n,`0x${e.toString(16).padStart(6,"0")}`,Vx.defaultAbiCoder.encode([`uint256[${t.length}]`],[t])]))(e,n,t)}getDataToSign(){let e=this.getCompleteElements();for(;e.length>2;)e=(0,Jx.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(Jx.hexToBuffer),n=(0,Jx.bufferToHex)((0,Jx.getRoot)(t,!1)),r=(0,Vx.keccak256)((0,Vx.toUtf8Bytes)(this.encoder._types.BulkOrder));if((0,Vx.keccak256)((0,Vx.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=Wx._TypedDataEncoder.from(e);var o,s;this.encoder=a,this.leafHasher=e=>a.hashStruct(n,e),this.defaultNode=Xx.DefaultGetter.from(e,n),this.defaultLeaf=this.leafHasher(this.defaultNode),this.tree=(o=this.getCompleteLeaves(),s=this.defaultLeaf,new Kx.MerkleTree(o.map(Jx.hexToBuffer),Jx.bufferKeccak,{complete:!0,sort:!1,hashLeaves:!1,fillDefaultHash:(0,Jx.hexToBuffer)(s)}))}},Object.defineProperty(TS,"__esModule",{value:!0}),TS.getBulkOrderTypeHashes=TS.getBulkOrderTypeHash=TS.getBulkOrderTree=TS.getBulkOrderTreeHeight=void 0;const Yx=Ek,Qx=wS,$x=Lx,Zx=zx,eP=Wk;function tP(e){const t=Object.assign({},eP.EIP_712_BULK_ORDER_TYPE);return t.BulkOrder=[{name:"tree",type:`OrderComponents${"[2]".repeat(e)}`}],t}function nP(e){return Math.max(Math.ceil(Math.log2(e)),1)}function rP(e){const t=tP(e),n=Yx._TypedDataEncoder.from(t),r=(0,Yx.toUtf8Bytes)(n._types.BulkOrder);return(0,Yx.keccak256)(r)}TS.getBulkOrderTreeHeight=nP,TS.getBulkOrderTree=function(e,t=0,n=nP(e.length+t)){const r=tP(n),i=$x.DefaultGetter.from(r,"OrderComponents");let a=[...e];return t>0&&(a=[...(0,Zx.fillArray)([],t,i),...e]),new Qx.Eip712MerkleTree(r,"BulkOrder","OrderComponents",a,n)},TS.getBulkOrderTypeHash=rP,TS.getBulkOrderTypeHashes=function(e){const t=[];for(let n=0;n<e;n++)t.push(rP(n+1));return t};var iP={},aP={},oP={};Object.defineProperty(oP,"__esModule",{value:!0}),oP.MerkleTree=void 0;const sP=Ak,uP=Ek,cP=AS,lP=e=>(0,uP.keccak256)(Buffer.from(sP.BigNumber.from(e).toHexString().slice(2).padStart(64,"0"),"hex"));oP.MerkleTree=class{constructor(e){this.tree=new cP.default(e.map(lP),uP.keccak256,{sort:!0})}getProof(e){return this.tree.getHexProof(lP(e))}getRoot(){return this.tree.getRoot().toString("hex")?this.tree.getHexRoot():"0"}},Object.defineProperty(aP,"__esModule",{value:!0}),aP.shouldUseMatchForFulfill=aP.generateRandomSalt=aP.mapOrderAmountsFromUnitsToFill=aP.mapOrderAmountsFromFilledStatus=aP.totalItemsAmount=aP.areAllCurrenciesSame=aP.mapInputItemToOfferItem=aP.deductFees=aP.feeToConsiderationItem=void 0;const dP=Ak,fP=Ek,pP=Wk,hP=tS(),mP=oP,yP=(e,t)=>dP.BigNumber.from(e).mul(dP.BigNumber.from(t)).div(pP.ONE_HUNDRED_PERCENT_BP);aP.feeToConsiderationItem=({fee:e,token:t,baseAmount:n,baseEndAmount:r=n})=>({itemType:t===dP.ethers.constants.AddressZero?pP.ItemType.NATIVE:pP.ItemType.ERC20,token:t,identifierOrCriteria:"0",startAmount:yP(n,e.basisPoints).toString(),endAmount:yP(r,e.basisPoints).toString(),recipient:e.recipient});aP.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,hP.isCurrencyItem)(e)?dP.BigNumber.from(e.startAmount).sub(yP(e.startAmount,n)).toString():e.startAmount,endAmount:(0,hP.isCurrencyItem)(e)?dP.BigNumber.from(e.endAmount).sub(yP(e.endAmount,n)).toString():e.endAmount})))};aP.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 mP.MerkleTree(e.identifiers).getRoot();return{itemType:e.itemType===pP.ItemType.ERC721?pP.ItemType.ERC721_WITH_CRITERIA:pP.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!==dP.ethers.constants.AddressZero?pP.ItemType.ERC20:pP.ItemType.NATIVE,token:null!==(s=e.token)&&void 0!==s?s:dP.ethers.constants.AddressZero,identifierOrCriteria:"0",startAmount:e.amount,endAmount:null!==(u=e.endAmount)&&void 0!==u?u:e.amount}};aP.areAllCurrenciesSame=({offer:e,consideration:t})=>{const n=[...e,...t].filter(hP.isCurrencyItem);return n.every((({itemType:e,token:t})=>e===n[0].itemType&&t.toLowerCase()===n[0].token.toLowerCase()))};aP.totalItemsAmount=e=>(dP.BigNumber.from(0),dP.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:dP.BigNumber.from(0),endAmount:dP.BigNumber.from(0)}));aP.mapOrderAmountsFromFilledStatus=(e,{totalFilled:t,totalSize:n})=>{if(t.eq(0)||n.eq(0))return e;const r=n.sub(t).mul(pP.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:yP(e.startAmount,r).toString(),endAmount:yP(e.endAmount,r).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:yP(e.startAmount,r).toString(),endAmount:yP(e.endAmount,r).toString()})))}),signature:e.signature}};const gP=(e,t,n)=>dP.BigNumber.from(e).mul(dP.BigNumber.from(t)).div(n);aP.mapOrderAmountsFromUnitsToFill=(e,{unitsToFill:t,totalSize:n})=>{const r=dP.BigNumber.from(t);if(r.lte(0))throw new Error("Units to fill must be greater than 1");const i=(0,hP.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:gP(e.startAmount,r,n).toString(),endAmount:gP(e.endAmount,r,n).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:gP(e.startAmount,r,n).toString(),endAmount:gP(e.endAmount,r,n).toString()})))}),signature:e.signature}};aP.generateRandomSalt=e=>e?`0x${Buffer.from((0,fP.concat)([(0,fP.keccak256)((0,fP.toUtf8Bytes)(e)).slice(0,10),Uint8Array.from(Array(20).fill(0)),(0,fP.randomBytes)(8)])).toString("hex")}`:`0x${Buffer.from((0,fP.randomBytes)(8)).toString("hex").padStart(64,"0")}`;aP.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=Ak,n=Wk,r=Vk,i=lS,a=$k(),o=eS,s=tS(),u=aP,c=nS;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)}}}(iP);var bP=gt&>.__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(QO,"__esModule",{value:!0}),QO.Seaport=void 0;const vP=wk,TP=Ak,wP=Ek,AP=Hk,EP=zk,_P=Wk,IP=Vk,RP=lS,CP=TS,OP=iP,kP=tS(),SP=aP,NP=nS;QO.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=_P.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=TP.ethers.utils.keccak256(TP.ethers.utils.toUtf8Bytes(t)),a=TP.ethers.utils.keccak256(TP.ethers.utils.toUtf8Bytes(n)),o=TP.ethers.utils.keccak256(TP.ethers.utils.toUtf8Bytes(r)),s=TP.ethers.utils.keccak256("0x"+e.offer.map((e=>TP.ethers.utils.keccak256("0x"+[i.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0")].join("")).slice(2))).join("")),u=TP.ethers.utils.keccak256("0x"+e.consideration.map((e=>TP.ethers.utils.keccak256("0x"+[a.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0"),e.recipient.slice(2).padStart(64,"0")].join("")).slice(2))).join(""));return TP.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"),TP.ethers.BigNumber.from(e.startTime).toHexString().slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.endTime).toHexString().slice(2).padStart(64,"0"),e.zoneHash.slice(2),TP.BigNumber.from(e.salt).toHexString().slice(2).padStart(64,"0"),e.conduitKey.slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.counter).toHexString().slice(2).padStart(64,"0")].join(""))};const c=e instanceof TP.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 vP.providers.MulticallProvider(this.provider),this.contract=new TP.Contract(null!==(o=null==t?void 0:t.contractAddress)&&void 0!==o?o:"1.5"===a?_P.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS:_P.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS,EP.SeaportABIv14,this.multicallProvider),this.domainRegistry=new TP.Contract(null!==(s=null==t?void 0:t.domainRegistryAddress)&&void 0!==s?s:_P.DOMAIN_REGISTRY_ADDRESS,AP.DomainRegistryABI,this.multicallProvider),this.config={ascendingAmountFulfillmentBuffer:n,balanceAndApprovalChecksOnOrderCreation:r,conduitKeyToConduit:Object.assign(Object.assign(Object.assign({},_P.KNOWN_CONDUIT_KEYS_TO_CONDUIT),{[_P.NO_CONDUIT]:this.contract.address}),i),seaportVersion:a},this.defaultConduitKey=null!==(u=null==t?void 0:t.defaultConduitKey)&&void 0!==u?u:_P.NO_CONDUIT}createOrder(e,t,n){return bP(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:()=>bP(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,NP.executeAllActions)(u)}}))}createBulkOrders(e,t,n){var r;return bP(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:()=>bP(this,void 0,void 0,(function*(){return yield this.signBulkOrder(u,a)}))},l=[...s,c];return{actions:l,executeAllActions:()=>(0,NP.executeAllActions)(l)}}))}_formatOrder(e,t,n,{conduitKey:r=this.defaultConduitKey,zone:i=TP.ethers.constants.AddressZero,zoneHash:a=TP.ethers.constants.HashZero,startTime:o=Math.floor(Date.now()/1e3).toString(),endTime:s=_P.MAX_INT.toString(),offer:u,consideration:c,counter:l,allowPartialFills:d,restrictedByZone:f,fees:p,domain:h,salt:m}){var y;return bP(this,void 0,void 0,(function*(){const g=u.map(SP.mapInputItemToOfferItem),b=[...c.map((e=>{var n;return Object.assign(Object.assign({},(0,SP.mapInputItemToOfferItem)(e)),{recipient:null!==(n=e.recipient)&&void 0!==n?n:t})}))];if((null==p?void 0:p.length)&&!(0,SP.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(kP.isCurrencyItem),T=(0,SP.totalItemsAmount)(v),w=this.config.conduitKeyToConduit[r],A=this._getOrderTypeFromOrderOptions({allowPartialFills:d,restrictedByZone:f}),E=[...(0,SP.deductFees)(b,p),...v.length&&null!==(y=null==p?void 0:p.map((e=>(0,SP.feeToConsiderationItem)({fee:e,token:v[0].token,baseAmount:T.startAmount,baseEndAmount:T.endAmount}))))&&void 0!==y?y:[]],_=void 0!==m?`0x${TP.BigNumber.from(m).toHexString().slice(2).padStart(64,"0")}`:(0,SP.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,RP.getBalancesAndApprovals)({owner:t,items:g,criterias:[],multicallProvider:this.multicallProvider,operator:w}),i=(0,RP.validateOfferBalancesAndApprovals)({offer:g,criterias:[],balancesAndApprovals:r,throwOnInsufficientBalances:!0,operator:w}),a=(0,IP.getApprovalActions)(i,n,e);R.push(...a)}return{orderComponents:I,approvalActions:R}}))}_getSigner(e){if(this.signer)return this.signer;if(!(this.provider instanceof TP.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?_P.OrderType.PARTIAL_RESTRICTED:_P.OrderType.PARTIAL_OPEN:t?_P.OrderType.FULL_RESTRICTED:_P.OrderType.FULL_OPEN}_getDomainData(){return bP(this,void 0,void 0,(function*(){const{chainId:e}=yield this.provider.getNetwork();return{name:_P.SEAPORT_CONTRACT_NAME,version:"1.5"===this.config.seaportVersion?_P.SEAPORT_CONTRACT_VERSION_V1_5:_P.SEAPORT_CONTRACT_VERSION_V1_4,chainId:e,verifyingContract:this.contract.address}}))}_getMessageToSign(e){return bP(this,void 0,void 0,(function*(){const t=yield this._getDomainData();return JSON.stringify(wP._TypedDataEncoder.getPayload(t,_P.EIP_712_ORDER_TYPE,e))}))}_getBulkMessageToSign(e){return bP(this,void 0,void 0,(function*(){const t=yield this._getDomainData(),n=(0,CP.getBulkOrderTree)(e),r=n.types,i=n.getDataToSign();return JSON.stringify(wP._TypedDataEncoder.getPayload(t,r,{tree:i}))}))}signOrder(e,t){return bP(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData();let i=yield n._signTypedData(r,_P.EIP_712_ORDER_TYPE,e);return 132===i.length&&(i=TP.ethers.utils.splitSignature(i).compact),i}))}signBulkOrder(e,t){return bP(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData(),i=(0,CP.getBulkOrderTree)(e),a=i.types,o={tree:i.getDataToSign()};let s=yield n._signTypedData(r,a,o);132===s.length&&(s=TP.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,NP.getTransactionMethods)(this.contract.connect(r),"cancel",[e],n)}bulkCancelOrders(e,t){const n=this._getSigner(e);return(0,NP.getTransactionMethods)(this.contract.connect(n),"incrementCounter",[],t)}validate(e,t,n){const r=this._getSigner(t);return(0,NP.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=TP.ethers.constants.AddressZero,domain:c,exactApproval:l=!1}){return bP(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,RP.getBalancesAndApprovals)({owner:f,items:p,criterias:n,multicallProvider:this.multicallProvider,operator:g}),(0,RP.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,OP.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,SP.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))),k=u===TP.ethers.constants.AddressZero;return!t&&k&&(0,OP.shouldUseBasicFulfill)(R.parameters,_)?(0,OP.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,OP.fulfillStandardOrder)({order:R,unitsToFill:t,totalFilled:_,totalSize:I.eq(0)?(0,kP.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=TP.ethers.constants.AddressZero,domain:i,exactApproval:a=!1}){return bP(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,RP.getBalancesAndApprovals)({owner:e.parameters.offerer,items:e.parameters.offer,criterias:t,operator:u[n],multicallProvider:this.multicallProvider})))),(0,RP.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,SP.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,OP.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,NP.getTransactionMethods)(this.contract.connect(a),"matchOrders",[e,t,n],i)}setDomain(e,t){const n=this._getSigner(t);return(0,NP.getTransactionMethods)(this.domainRegistry.connect(n),"setDomain",[e])}getNumberOfDomains(e){return bP(this,void 0,void 0,(function*(){return this.domainRegistry.getNumberOfDomains(e)}))}getDomain(e,t){return this.domainRegistry.getDomain(e,t)}getDomains(e,t){return bP(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=QO;Object.defineProperty(e,"Seaport",{enumerable:!0,get:function(){return t.Seaport}})}(YO);class xP{config;constructor(e){this.config=e}}class PP 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 MP extends Error{constructor(e){super(e),this.name="CancelError"}get isCancelled(){return!0}}class BP{[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 MP("Request aborted"))}}get isCancelled(){return this._isCancelled}}const DP=e=>null!=e,FP=e=>"string"==typeof e,LP=e=>FP(e)&&""!==e,UP=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]),qP=e=>{const t=[],n=(e,r)=>{DP(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("&")}`:""},jP=async(e,t)=>"function"==typeof t?t(e):t,GP=async(e,t,n)=>{const r=await jP(t,e.TOKEN),i=await jP(t,e.USERNAME),a=await jP(t,e.PASSWORD),o=await jP(t,e.HEADERS),s="function"==typeof n?.getHeaders&&n?.getHeaders()||{},u=Object.entries({Accept:"application/json",...o,...t.headers,...s}).filter((([e,t])=>DP(t))).reduce(((e,[t,n])=>({...e,[t]:String(n)})),{});if(LP(r)&&(u.Authorization=`Bearer ${r}`),LP(i)&&LP(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:UP(t.body)?u["Content-Type"]=t.body.type||"application/octet-stream":FP(t.body)?u["Content-Type"]="text/plain":t.body instanceof JO||(u["Content-Type"]="application/json")),u},HP=(e,t)=>new BP((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}${qP(t.query)}`:i})(e,t),o=(e=>{if(e.formData){const t=new JO,n=(e,n)=>{FP(n)||UP(n)?t.append(e,n):t.append(e,JSON.stringify(n))};return Object.entries(e.formData).filter((([e,t])=>DP(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 GP(e,t,o);if(!i.isCancelled){const c=await(async(e,t,n,r,i,a,o)=>{const s=$e.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 $e.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(FP(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 PP(e,t,n);if(!t.ok)throw new PP(e,t,"Generic Error")})(t,f),n(f.body)}}catch(e){r(e)}var a}));class zP extends xP{constructor(e){super(e)}request(e){return HP(this.config,e)}}class WP{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 VP{orders;request;constructor(e,t=zP){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 WP(this.request)}}var KP,XP,JP,YP,QP,$P,ZP,eM,tM,nM;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,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 iM(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 aM(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"}(KP||(KP={})),function(e){(e.reason_code||(e.reason_code={})).FILLED="FILLED"}(XP||(XP={})),function(e){var t;(t=e.type||(e.type={})).ROYALTY="ROYALTY",t.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",t.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",t.PROTOCOL="PROTOCOL"}(JP||(JP={})),function(e){(e.type||(e.type={})).LISTING="LISTING"}(YP||(YP={})),function(e){e.PENDING="PENDING",e.ACTIVE="ACTIVE",e.INACTIVE="INACTIVE",e.FILLED="FILLED",e.EXPIRED="EXPIRED",e.CANCELLED="CANCELLED"}(QP||(QP={})),function(e){(e.order_type||(e.order_type={})).FULL_RESTRICTED="FULL_RESTRICTED"}($P||($P={})),function(e){e.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",e.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",e.PROTOCOL="PROTOCOL",e.ROYALTY="ROYALTY"}(ZP||(ZP={})),function(e){e.APPROVAL="APPROVAL",e.FULFILL_ORDER="FULFILL_ORDER",e.CANCEL="CANCEL"}(eM||(eM={})),function(e){e.CREATE_LISTING="CREATE_LISTING",e.OFF_CHAIN_CANCELLATION="OFF_CHAIN_CANCELLATION"}(tM||(tM={})),function(e){e.TRANSACTION="TRANSACTION",e.SIGNABLE="SIGNABLE"}(nM||(nM={}));const oM="1.5",sM={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 uM,cM,lM,dM;function fM(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"}(uM||(uM={})),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"}(cM||(cM={})),function(e){e[e.OFFER=0]="OFFER",e[e.CONSIDERATION=1]="CONSIDERATION"}(lM||(lM={})),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"}(dM||(dM={}));class pM{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:nM.TRANSACTION,purpose:eM.APPROVAL,buildTransaction:fM(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=cr.from(t.salt).toHexString(),t}(await u.getMessageToSign());return o.push({type:nM.SIGNABLE,purpose:tM.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:nM.TRANSACTION,buildTransaction:fM(u.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:eM.APPROVAL});const c=o.find((e=>"exchange"===e.type));if(!c)throw new Error("No exchange action found");return s.push({type:nM.TRANSACTION,buildTransaction:fM(c.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:eM.FULFILL_ORDER}),{actions:s,expiration:pM.getExpirationISOTimeFromExtraData(n),order:rM(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:nM.TRANSACTION,buildTransaction:fM(a.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:eM.APPROVAL});const o=r.find((e=>"exchange"===e.type));if(!o)throw new Error("No exchange action found");return i.push({type:nM.TRANSACTION,buildTransaction:fM(o.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:eM.FULFILL_ORDER}),{actions:i,expiration:n.map((e=>pM.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:nM.TRANSACTION,buildTransaction:fM(i,(await this.provider.getNetwork()).chainId),purpose:eM.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:cM.NATIVE,recipient:e.account_address,token:Ji,identifierOrCriteria:"0"};case"ERC20":return{startAmount:t.amount,endAmount:t.amount,itemType:cM.ERC20,recipient:e.account_address,token:t.contract_address||Ji,identifierOrCriteria:"0"};default:return{startAmount:"1",endAmount:"1",itemType:cM.ERC721,recipient:e.account_address,token:t.contract_address||Ji,identifierOrCriteria:"0"}}})),i=e.fees.map((t=>({amount:t.amount,itemType:"ERC20"===e.buy[0].type?cM.ERC20:cM.NATIVE,recipient:t.recipient_address,token:"ERC20"===e.buy[0].type?e.buy[0].contract_address:Ji,identifierOrCriteria:"0"})));return{orderComponents:{conduitKey:ia,consideration:[...r],offer:e.sell.map((e=>{const t=e;return{startAmount:"1",endAmount:"1",itemType:cM.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:uM.FULL_RESTRICTED,zoneHash:ia},tips:i}}(e,e.protocol_data.counter,this.zoneContractAddress)}createSeaportOrder(e,t,n,r,i){return this.getSeaportLib().createOrder({allowPartialFills:!1,offer:[{itemType:cM.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:oM,chainId:t,verifyingContract:this.seaportContractAddress},types:sM,value:e}}getSeaportLib(e){const t=e?.protocol_data?.seaport_address??this.seaportContractAddress,n=oM;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 hM{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)!==cM.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)===cM.NATIVE?"NATIVE":"ERC20",amount:t.consideration[0].startAmount,contract_address:t.consideration[0].token}],fees:r.map((e=>({amount:e.amount,type:ZP.MAKER_ECOSYSTEM,recipient_address:e.recipientAddress}))),end_at:new Date(parseInt(`${t.endTime.toString()}000`,10)).toISOString(),order_hash:e,protocol_data:{order_type:$P.order_type.FULL_RESTRICTED,zone_address:t.zone,seaport_address:this.seaportAddress,seaport_version:oM,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 mM{chainName;seaportAddress;orderbookClient;constructor(e,t,n){this.chainName=t,this.seaportAddress=n,this.orderbookClient=new VP({BASE:e})}create(){return new hM(this.orderbookClient.orders,this.chainName,this.seaportAddress)}}class yM{defaultSeaportContractAddress;provider;constructor(e,t){this.defaultSeaportContractAddress=e,this.provider=t}create(e,t){const n=e??oM,r=t??this.defaultSeaportContractAddress;return new YO.Seaport(this.provider,{seaportVersion:n,balanceAndApprovalChecksOnOrderCreation:!0,overrides:{contractAddress:r}})}}class gM{apiClient;seaport;orderbookConfig;constructor(e){const t={...function(e){switch(e){case mt.SANDBOX:return{seaportContractAddress:"0x7d117aA8BD6D31c4fa91722f246388f38ab1942c",zoneContractAddress:"0x8831867E347AB87FA30199C5B695F0A31604Bb52",apiEndpoint:"https://api.sandbox.immutable.com",chainName:"imtbl-zkevm-testnet",provider:new yp("https://rpc.testnet.immutable.com")};case mt.PRODUCTION:return{seaportContractAddress:"0x6c12aD6F0bD274191075Eb2E78D7dA5ba6453424",zoneContractAddress:"0x00338b92Bec262078B3e49BF12bbEA058916BF91",apiEndpoint:"https://api.immutable.com",chainName:"imtbl-zkevm-mainnet",provider:new yp("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 mM(n,r,this.orderbookConfig.seaportContractAddress).create();const i=new yM(this.orderbookConfig.seaportContractAddress,this.orderbookConfig.provider);this.seaport=new pM(i,this.orderbookConfig.provider,this.orderbookConfig.seaportContractAddress,this.orderbookConfig.zoneContractAddress)}config(){return this.orderbookConfig}async getListing(e){return{result:rM((await this.apiClient.getListing(e)).result)}}async getTrade(e){return{result:iM((await this.apiClient.getTrade(e)).result)}}async listListings(e){const t=await this.apiClient.listListings(e);return{page:aM(t.page),result:t.result.map(rM)}}async listTrades(e){const t=await this.apiClient.listTrades(e);return{page:aM(t.page),result:t.result.map(iM)}}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:rM((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:ZP.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!==QP.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:ZP.TAKER_ECOSYSTEM,recipient_address:e.recipientAddress})))}))));try{return{...await this.seaport.fulfillBulkOrders(n.result.fulfillable_orders,t),fulfillableOrders:n.result.fulfillable_orders.map((e=>rM(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=>rM(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:tM.OFF_CHAIN_CANCELLATION,type:nM.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!==QP.ACTIVE&&e.result.status.name!==QP.INACTIVE&&e.result.status.name!==QP.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 bM=4e5,vM="https://api.sandbox.immutable.com".replace(/\/+$/,"");class TM{basePath;axios;configuration;constructor(e,t=vM,n=$e){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}}class wM extends Error{field;constructor(e,t){super(t),this.field=e,this.name="RequiredError"}}const AM="https://example.com",EM=function(e,t,n){if(null==n)throw new wM(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},_M=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}},IM=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 RM(e,t,n=""){null!=t&&("object"==typeof t?Array.isArray(t)?t.forEach((t=>RM(e,t,n))):Object.keys(t).forEach((r=>RM(e,t[r],`${n}${""!==n?".":""}${r}`))):e.has(n)?e.append(n,t):e.set(n,t))}const CM=function(e,...t){const n=new URLSearchParams(e.search);RM(n,t),e.search=n.toString()},OM=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||""},kM=function(e){return e.pathname+e.search+e.hash},SM=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)}},NM=function(e){return{getActivity:async(t,n,r={})=>{EM("getActivity","chainName",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};CM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:kM(a),options:s}},listActivities:async(t,n,r,i,a,o,s,u,c={})=>{EM("listActivities","chainName",t);const l="/v1/chains/{chain_name}/activities".replace("{chain_name}",encodeURIComponent(String(t))),d=new URL(l,AM);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),CM(d,h);let m=f&&f.headers?f.headers:{};return p.headers={...m,...c.headers},{url:kM(d),options:p}},listActivityHistory:async(t,n,r,i,a,o,s={})=>{EM("listActivityHistory","chainName",t),EM("listActivityHistory","fromUpdatedAt",n);const u="/v1/chains/{chain_name}/activity-history".replace("{chain_name}",encodeURIComponent(String(t))),c=new URL(u,AM);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),CM(c,f);let p=l&&l.headers?l.headers:{};return d.headers={...p,...s.headers},{url:kM(c),options:d}}}},xM=function(e){const t=NM(e);return{async getActivity(n,r,i){const a=await t.getActivity(n,r,i);return SM(a,$e,vM,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 SM(d,$e,vM,e)},async listActivityHistory(n,r,i,a,o,s,u){const c=await t.listActivityHistory(n,r,i,a,o,s,u);return SM(c,$e,vM,e)}}};const PM=function(e){return{listChains:async(t,n,r={})=>{const i=new URL("/v1/chains",AM);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),CM(i,s);let u=a&&a.headers?a.headers:{};return o.headers={...u,...r.headers},{url:kM(i),options:o}}}},MM=function(e){const t=PM(e);return{async listChains(n,r,i){const a=await t.listChains(n,r,i);return SM(a,$e,vM,e)}}};const BM=function(e){return{getCollection:async(t,n,r={})=>{EM("getCollection","contractAddress",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};CM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:kM(a),options:s}},listCollections:async(t,n,r,i,a,o={})=>{EM("listCollections","chainName",t);const s="/v1/chains/{chain_name}/collections".replace("{chain_name}",encodeURIComponent(String(t))),u=new URL(s,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}},listCollectionsByNFTOwner:async(t,n,r,i,a={})=>{EM("listCollectionsByNFTOwner","accountAddress",t),EM("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,AM);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),CM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:kM(s),options:c}},refreshCollectionMetadata:async(t,n,r,i={})=>{EM("refreshCollectionMetadata","contractAddress",t),EM("refreshCollectionMetadata","chainName",n),EM("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,AM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await _M(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",CM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=OM(r,u,e),{url:kM(o),options:u}}}},DM=function(e){const t=BM(e);return{async getCollection(n,r,i){const a=await t.getCollection(n,r,i);return SM(a,$e,vM,e)},async listCollections(n,r,i,a,o,s){const u=await t.listCollections(n,r,i,a,o,s);return SM(u,$e,vM,e)},async listCollectionsByNFTOwner(n,r,i,a,o){const s=await t.listCollectionsByNFTOwner(n,r,i,a,o);return SM(s,$e,vM,e)},async refreshCollectionMetadata(n,r,i,a){const o=await t.refreshCollectionMetadata(n,r,i,a);return SM(o,$e,vM,e)}}};const FM=function(e){return{getMetadata:async(t,n,r,i={})=>{EM("getMetadata","chainName",t),EM("getMetadata","contractAddress",n),EM("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,AM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};CM(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:kM(o),options:u}},listMetadata:async(t,n,r,i,a,o={})=>{EM("listMetadata","chainName",t),EM("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,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}},listMetadataForChain:async(t,n,r,i,a={})=>{EM("listMetadataForChain","chainName",t);const o="/v1/chains/{chain_name}/metadata".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,AM);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),CM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:kM(s),options:c}},refreshMetadataByID:async(t,n,r,i={})=>{EM("refreshMetadataByID","chainName",t),EM("refreshMetadataByID","contractAddress",n),EM("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,AM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await _M(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",CM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=OM(r,u,e),{url:kM(o),options:u}},refreshNFTMetadataByTokenID:async(t,n,r,i={})=>{EM("refreshNFTMetadataByTokenID","contractAddress",t),EM("refreshNFTMetadataByTokenID","chainName",n),EM("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,AM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await _M(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",CM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=OM(r,u,e),{url:kM(o),options:u}}}},LM=function(e){const t=FM(e);return{async getMetadata(n,r,i,a){const o=await t.getMetadata(n,r,i,a);return SM(o,$e,vM,e)},async listMetadata(n,r,i,a,o,s){const u=await t.listMetadata(n,r,i,a,o,s);return SM(u,$e,vM,e)},async listMetadataForChain(n,r,i,a,o){const s=await t.listMetadataForChain(n,r,i,a,o);return SM(s,$e,vM,e)},async refreshMetadataByID(n,r,i,a){const o=await t.refreshMetadataByID(n,r,i,a);return SM(o,$e,vM,e)},async refreshNFTMetadataByTokenID(n,r,i,a){const o=await t.refreshNFTMetadataByTokenID(n,r,i,a);return SM(o,$e,vM,e)}}};const UM=function(e){return{listAllNFTOwners:async(t,n,r,i,a={})=>{EM("listAllNFTOwners","chainName",t);const o="/v1/chains/{chain_name}/nft-owners".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,AM);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),CM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:kM(s),options:c}},listNFTOwners:async(t,n,r,i,a,o={})=>{EM("listNFTOwners","contractAddress",t),EM("listNFTOwners","tokenId",n),EM("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,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}},listOwnersByContractAddress:async(t,n,r,i,a,o={})=>{EM("listOwnersByContractAddress","contractAddress",t),EM("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,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}}}},qM=function(e){const t=UM(e);return{async listAllNFTOwners(n,r,i,a,o){const s=await t.listAllNFTOwners(n,r,i,a,o);return SM(s,$e,vM,e)},async listNFTOwners(n,r,i,a,o,s){const u=await t.listNFTOwners(n,r,i,a,o,s);return SM(u,$e,vM,e)},async listOwnersByContractAddress(n,r,i,a,o,s){const u=await t.listOwnersByContractAddress(n,r,i,a,o,s);return SM(u,$e,vM,e)}}};const jM=function(e){return{getNFT:async(t,n,r,i={})=>{EM("getNFT","contractAddress",t),EM("getNFT","tokenId",n),EM("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,AM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};CM(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:kM(o),options:u}},listAllNFTs:async(t,n,r,i,a={})=>{EM("listAllNFTs","chainName",t);const o="/v1/chains/{chain_name}/nfts".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,AM);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),CM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:kM(s),options:c}},listNFTs:async(t,n,r,i,a,o={})=>{EM("listNFTs","contractAddress",t),EM("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,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}},listNFTsByAccountAddress:async(t,n,r,i,a,o={})=>{EM("listNFTsByAccountAddress","accountAddress",t),EM("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,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}}}},GM=function(e){const t=jM(e);return{async getNFT(n,r,i,a){const o=await t.getNFT(n,r,i,a);return SM(o,$e,vM,e)},async listAllNFTs(n,r,i,a,o){const s=await t.listAllNFTs(n,r,i,a,o);return SM(s,$e,vM,e)},async listNFTs(n,r,i,a,o,s){const u=await t.listNFTs(n,r,i,a,o,s);return SM(u,$e,vM,e)},async listNFTsByAccountAddress(n,r,i,a,o,s){const u=await t.listNFTsByAccountAddress(n,r,i,a,o,s);return SM(u,$e,vM,e)}}};const HM=function(e){return{cancelOrders:async(t,n,r={})=>{EM("cancelOrders","chainName",t),EM("cancelOrders","cancelOrdersRequestBody",n);const i="/v1/chains/{chain_name}/orders/cancel".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,AM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=OM(n,s,e),{url:kM(a),options:s}},createListing:async(t,n,r={})=>{EM("createListing","chainName",t),EM("createListing","createListingRequestBody",n);const i="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,AM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=OM(n,s,e),{url:kM(a),options:s}},fulfillmentData:async(t,n,r={})=>{EM("fulfillmentData","chainName",t),EM("fulfillmentData","fulfillmentDataRequest",n);const i="/v1/chains/{chain_name}/orders/fulfillment-data".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,AM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=OM(n,s,e),{url:kM(a),options:s}},getListing:async(t,n,r={})=>{EM("getListing","chainName",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};CM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:kM(a),options:s}},getTrade:async(t,n,r={})=>{EM("getTrade","chainName",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};CM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:kM(a),options:s}},listListings:async(t,n,r,i,a,o,s,u,c,l,d,f,p={})=>{EM("listListings","chainName",t);const h="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),m=new URL(h,AM);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),CM(m,b);let v=y&&y.headers?y.headers:{};return g.headers={...v,...p.headers},{url:kM(m),options:g}},listTrades:async(t,n,r,i,a,o,s,u={})=>{EM("listTrades","chainName",t);const c="/v1/chains/{chain_name}/trades".replace("{chain_name}",encodeURIComponent(String(t))),l=new URL(c,AM);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),CM(l,p);let h=d&&d.headers?d.headers:{};return f.headers={...h,...u.headers},{url:kM(l),options:f}}}},zM=function(e){const t=HM(e);return{async cancelOrders(n,r,i){const a=await t.cancelOrders(n,r,i);return SM(a,$e,vM,e)},async createListing(n,r,i){const a=await t.createListing(n,r,i);return SM(a,$e,vM,e)},async fulfillmentData(n,r,i){const a=await t.fulfillmentData(n,r,i);return SM(a,$e,vM,e)},async getListing(n,r,i){const a=await t.getListing(n,r,i);return SM(a,$e,vM,e)},async getTrade(n,r,i){const a=await t.getTrade(n,r,i);return SM(a,$e,vM,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 SM(m,$e,vM,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 SM(l,$e,vM,e)}}};const WM=function(e){return{createCounterfactualAddress:async(t,n,r={})=>{EM("createCounterfactualAddress","chainName",t),EM("createCounterfactualAddress","createCounterfactualAddressRequest",n);const i="/v1/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,AM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};await IM(u,e),u["Content-Type"]="application/json",CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=OM(n,s,e),{url:kM(a),options:s}},createCounterfactualAddressDeprecated:async(t,n={})=>{EM("createCounterfactualAddressDeprecated","createCounterfactualAddressRequestDeprecated",t);const r=new URL("/passport-mr/v1/counterfactual-address",AM);let i;e&&(i=e.baseOptions);const a={method:"POST",...i,...n},o={};await IM(o,e),o["Content-Type"]="application/json",CM(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=OM(t,a,e),{url:kM(r),options:a}},createCounterfactualAddressV2:async(t,n,r={})=>{EM("createCounterfactualAddressV2","chainName",t),EM("createCounterfactualAddressV2","createCounterfactualAddressRequest",n);const i="/v2/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,AM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};await IM(u,e),u["Content-Type"]="application/json",CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=OM(n,s,e),{url:kM(a),options:s}},getContractAbi:async(t,n,r,i={})=>{EM("getContractAbi","chainName",t),EM("getContractAbi","contractAddress",n),EM("getContractAbi","methodId",r);const a="/v1/chains/{chain_name}/passport/transaction-metadata".replace("{chain_name}",encodeURIComponent(String(t))),o=new URL(a,AM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i},c={},l={};await IM(c,e),void 0!==n&&(l.contract_address=n),void 0!==r&&(l.method_id=r),CM(o,l);let d=s&&s.headers?s.headers:{};return u.headers={...c,...d,...i.headers},{url:kM(o),options:u}},getLinkedAddresses:async(t,n,r={})=>{EM("getLinkedAddresses","userId",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r},u={};await IM(u,e),CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},{url:kM(a),options:s}},getLinkedAddressesDeprecated:async(t,n={})=>{EM("getLinkedAddressesDeprecated","userId",t);const r="/passport-mr/v1/users/{userId}/linked-addresses".replace("{userId}",encodeURIComponent(String(t))),i=new URL(r,AM);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...n},s={};await IM(s,e),CM(i,{});let u=a&&a.headers?a.headers:{};return o.headers={...s,...u,...n.headers},{url:kM(i),options:o}}}},VM=function(e){const t=WM(e);return{async createCounterfactualAddress(n,r,i){const a=await t.createCounterfactualAddress(n,r,i);return SM(a,$e,vM,e)},async createCounterfactualAddressDeprecated(n,r){const i=await t.createCounterfactualAddressDeprecated(n,r);return SM(i,$e,vM,e)},async createCounterfactualAddressV2(n,r,i){const a=await t.createCounterfactualAddressV2(n,r,i);return SM(a,$e,vM,e)},async getContractAbi(n,r,i,a){const o=await t.getContractAbi(n,r,i,a);return SM(o,$e,vM,e)},async getLinkedAddresses(n,r,i){const a=await t.getLinkedAddresses(n,r,i);return SM(a,$e,vM,e)},async getLinkedAddressesDeprecated(n,r){const i=await t.getLinkedAddressesDeprecated(n,r);return SM(i,$e,vM,e)}}};const KM=function(e){return{getERC20Token:async(t,n,r={})=>{EM("getERC20Token","contractAddress",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};CM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:kM(a),options:s}},listERC20Tokens:async(t,n,r,i,a={})=>{EM("listERC20Tokens","chainName",t);const o="/v1/chains/{chain_name}/tokens".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,AM);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),CM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:kM(s),options:c}}}},XM=function(e){const t=KM(e);return{async getERC20Token(n,r,i){const a=await t.getERC20Token(n,r,i);return SM(a,$e,vM,e)},async listERC20Tokens(n,r,i,a,o){const s=await t.listERC20Tokens(n,r,i,a,o);return SM(s,$e,vM,e)}}};var JM=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 TM{getActivity(e,t){return xM(this.configuration).getActivity(e.chainName,e.activityId,t).then((e=>e(this.axios,this.basePath)))}listActivities(e,t){return xM(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 xM(this.configuration).listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ActivitiesApiAxiosParamCreator:NM,ActivitiesApiFactory:function(e,t,n){const r=xM(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:xM,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 TM{listChains(e={},t){return MM(this.configuration).listChains(e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ChainsApiAxiosParamCreator:PM,ChainsApiFactory:function(e,t,n){const r=MM(e);return{listChains:(e={},i)=>r.listChains(e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ChainsApiFp:MM,CollectionContractType:{Erc721:"ERC721",Erc1155:"ERC1155"},CollectionsApi:class extends TM{getCollection(e,t){return DM(this.configuration).getCollection(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listCollections(e,t){return DM(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 DM(this.configuration).listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshCollectionMetadata(e,t){return DM(this.configuration).refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,t).then((e=>e(this.axios,this.basePath)))}},CollectionsApiAxiosParamCreator:BM,CollectionsApiFactory:function(e,t,n){const r=DM(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:DM,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 TM{getMetadata(e,t){return LM(this.configuration).getMetadata(e.chainName,e.contractAddress,e.metadataId,t).then((e=>e(this.axios,this.basePath)))}listMetadata(e,t){return LM(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 LM(this.configuration).listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshMetadataByID(e,t){return LM(this.configuration).refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,t).then((e=>e(this.axios,this.basePath)))}refreshNFTMetadataByTokenID(e,t){return LM(this.configuration).refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,t).then((e=>e(this.axios,this.basePath)))}},MetadataApiAxiosParamCreator:FM,MetadataApiFactory:function(e,t,n){const r=LM(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:LM,MintRequestStatus:{Pending:"pending",Succeeded:"succeeded",Failed:"failed"},NFTContractType:{Erc721:"ERC721"},NativeItemTypeEnum:{Native:"NATIVE",Erc20:"ERC20",Erc721:"ERC721",Erc1155:"ERC1155"},NftOwnersApi:class extends TM{listAllNFTOwners(e,t){return qM(this.configuration).listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTOwners(e,t){return qM(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 qM(this.configuration).listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftOwnersApiAxiosParamCreator:UM,NftOwnersApiFactory:function(e,t,n){const r=qM(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:qM,NftsApi:class extends TM{getNFT(e,t){return GM(this.configuration).getNFT(e.contractAddress,e.tokenId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listAllNFTs(e,t){return GM(this.configuration).listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTs(e,t){return GM(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 GM(this.configuration).listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftsApiAxiosParamCreator:jM,NftsApiFactory:function(e,t,n){const r=GM(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:GM,OrderStatusName:{Pending:"PENDING",Active:"ACTIVE",Inactive:"INACTIVE",Filled:"FILLED",Expired:"EXPIRED",Cancelled:"CANCELLED"},OrderTypeEnum:{Listing:"LISTING"},OrdersApi:class extends TM{cancelOrders(e,t){return zM(this.configuration).cancelOrders(e.chainName,e.cancelOrdersRequestBody,t).then((e=>e(this.axios,this.basePath)))}createListing(e,t){return zM(this.configuration).createListing(e.chainName,e.createListingRequestBody,t).then((e=>e(this.axios,this.basePath)))}fulfillmentData(e,t){return zM(this.configuration).fulfillmentData(e.chainName,e.fulfillmentDataRequest,t).then((e=>e(this.axios,this.basePath)))}getListing(e,t){return zM(this.configuration).getListing(e.chainName,e.listingId,t).then((e=>e(this.axios,this.basePath)))}getTrade(e,t){return zM(this.configuration).getTrade(e.chainName,e.tradeId,t).then((e=>e(this.axios,this.basePath)))}listListings(e,t){return zM(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 zM(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:HM,OrdersApiFactory:function(e,t,n){const r=zM(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:zM,PassportApi:class extends TM{createCounterfactualAddress(e,t){return VM(this.configuration).createCounterfactualAddress(e.chainName,e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}createCounterfactualAddressDeprecated(e,t){return VM(this.configuration).createCounterfactualAddressDeprecated(e.createCounterfactualAddressRequestDeprecated,t).then((e=>e(this.axios,this.basePath)))}createCounterfactualAddressV2(e,t){return VM(this.configuration).createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}getContractAbi(e,t){return VM(this.configuration).getContractAbi(e.chainName,e.contractAddress,e.methodId,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddresses(e,t){return VM(this.configuration).getLinkedAddresses(e.userId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddressesDeprecated(e,t){return VM(this.configuration).getLinkedAddressesDeprecated(e.userId,t).then((e=>e(this.axios,this.basePath)))}},PassportApiAxiosParamCreator:WM,PassportApiFactory:function(e,t,n){const r=VM(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:VM,PendingOrderStatusNameEnum:{Pending:"PENDING"},ProtocolDataOrderTypeEnum:{FullRestricted:"FULL_RESTRICTED"},SaleFeeTypeEnum:{Royalty:"ROYALTY"},TokenContractType:{Erc20:"ERC20"},TokensApi:class extends TM{getERC20Token(e,t){return XM(this.configuration).getERC20Token(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listERC20Tokens(e,t){return XM(this.configuration).listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},TokensApiAxiosParamCreator:KM,TokensApiFactory:function(e,t,n){const r=XM(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:XM});class YM 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 QM={sdkVersion:"ts-immutable-sdk-multi-rollup-api-client-0.44.3"},$M=({baseConfig:e,basePath:t,headers:n})=>{if(!t.trim())throw Error("basePath can not be empty");const r={...e,basePath:t,baseOptions:{headers:{...n||{},...QM}}};return new JM.Configuration(r)};class ZM{apiConfig;baseConfig;constructor({baseConfig:e,overrides:t}){if(this.baseConfig=e,t)this.apiConfig=$M(t);else switch(e.environment){case mt.SANDBOX:this.apiConfig=$M({basePath:"https://api.sandbox.immutable.com",baseConfig:e});break;case mt.PRODUCTION:this.apiConfig=$M({basePath:"https://api.immutable.com",baseConfig:e});break;default:this.apiConfig=$M({basePath:"https://api.sandbox.immutable.com",baseConfig:e})}}}function eB(e){if($e.isAxiosError(e)&&e.response){const t=e.response.data;return t.code&&t.message?new YM({code:t.code,message:t.message,details:t.details||null,link:t.link||"",trace_id:t.trace_id||""}):new YM({code:e.code??e.response?.status.toString()??"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}return new YM({code:"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}class tB{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;constructor(e){this.config=new ZM(e),this.activities=new JM.ActivitiesApi(this.config.apiConfig),this.chains=new JM.ChainsApi(this.config.apiConfig),this.collections=new JM.CollectionsApi(this.config.apiConfig),this.nfts=new JM.NftsApi(this.config.apiConfig),this.nftOwners=new JM.NftOwnersApi(this.config.apiConfig),this.tokens=new JM.TokensApi(this.config.apiConfig),this.metadata=new JM.MetadataApi(this.config.apiConfig)}async listActivities(e){return await this.activities.listActivities(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listActivityHistory(e){return await this.activities.listActivityHistory(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async getActivity(e){return await this.activities.getActivity(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listChains(e){return await this.chains.listChains(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listCollections(e){return await this.collections.listCollections(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listCollectionsByNFTOwner(e){return await this.collections.listCollectionsByNFTOwner(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async getCollection(e){return await this.collections.getCollection(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async getNFT(e){return await this.nfts.getNFT(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTs(e){return await this.nfts.listNFTs(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTsByAccountAddress(e){return await this.nfts.listNFTsByAccountAddress(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listAllNFTs(e){return await this.nfts.listAllNFTs(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTOwners(e){return await this.nftOwners.listNFTOwners(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTOwnersByContractAddress(e){return await this.nftOwners.listOwnersByContractAddress(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listAllNFTOwners(e){return await this.nftOwners.listAllNFTOwners(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listTokens(e){return await this.tokens.listERC20Tokens(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async getToken(e){return await this.tokens.getERC20Token(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async getMetadata(e){return await this.metadata.getMetadata(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTMetadataByContractAddress(e){return await this.metadata.listMetadata(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTMetadataByChain(e){return await this.metadata.listMetadataForChain(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async refreshCollectionMetadata(e){return await this.collections.refreshCollectionMetadata(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async refreshNFTMetadata(e){return await this.metadata.refreshNFTMetadataByTokenID(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async refreshStackedMetadata(e){return await this.metadata.refreshMetadataByID(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}}function nB(t,n,r,i){const a=r.get(t),o=r.get(n);if(!a)throw new sm(`Chain:${t} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(!o)throw new sm(`Chain:${n} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);let s=BT;i.isDevelopment&&(s=MT),i.isProduction&&(s=DT);const u=new lw({baseConfig:new yt({environment:i.environment}),bridgeInstance:s,rootProvider:a,childProvider:o});return new iw(u)}async function rB(e,t){const n=await t.remote.getConfig("dex");return new XO({chainId:e,baseConfig:new yt({environment:t.environment}),overrides:n?.overrides,secondaryFees:n?.secondaryFees})}function iB(e){return new gM({baseConfig:{environment:e.environment}})}function aB(e){return new tB({baseConfig:{environment:e.environment}})}const oB="0x0000000000000000000000000000000000000001",sB=18;async function uB(t,n){const r=Sm(n),i=Nm(n);if(!t.get(r))throw new Error(`Missing JsonRpcProvider for chain id: ${r}`);try{const a=nB(r,i,t,n),o=await async function(e,t,n,r){const i=t===Sm(r)?YT.DEPOSIT:YT.WITHDRAW;return await e.getFee({action:i,gasMultiplier:1.1,sourceChainId:t.toString(),destinationChainId:n.toString(),token:mm.toUpperCase(),amount:cr.from(0)})}(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:cr.from(0),approvalFee:cr.from(0),bridgeFee:cr.from(0),imtblFee:cr.from(0),totalFees:cr.from(0)},token:n.networkMap.get(r)?.nativeCurrency}}}async function cB(t,n,r){switch(t.gasEstimateType){case e.GasEstimateType.BRIDGE_TO_L2:return await uB(n,r);case e.GasEstimateType.SWAP:return await async function(t){const n=Nm(t),r=await t.remote.getConfig("gasEstimateTokens"),{inAddress:i,outAddress:a}=r[n].swapAddresses;try{const r=await rB(n,t),{swap:o}=await r.getUnsignedSwapTxFromAmountIn(oB,i,a,cr.from(Fh("1",sB)));return o.gasFeeEstimate?{gasEstimateType:e.GasEstimateType.SWAP,fees:{totalFees:o.gasFeeEstimate.value?cr.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??sB}}}:{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}catch{return{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}}(r);default:throw new sm("Invalid type provided for gasEstimateType",e.CheckoutErrorType.INVALID_GAS_ESTIMATE_TYPE)}}const lB=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=cr.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=cr.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),dB=async(t,n,r,i)=>{try{const e=new Cl(r,JSON.stringify(_m),t);return await e.allowance(n,i)}catch(t){throw new sm("Failed to get the allowance for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r,error:t})}},fB=async(t,n,r,i,a)=>{try{const e=new Cl(r,JSON.stringify(_m),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch(t){throw new sm("Failed to get the approval transaction for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r,error:t})}},pB=async(t,n,r,i)=>{try{const e=new Cl(r,JSON.stringify(Im),t);return await e.isApprovedForAll(n,i)}catch(t){throw new sm("Failed to check approval for all ERC721s of collection",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{ownerAddress:n,contractAddress:r,spenderAddress:i,error:t})}},hB=async(t,n,r,i,a)=>{try{const e=new Cl(r,JSON.stringify(Im),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch(t){throw new sm("Failed to get the approval transaction for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:a.toString(),contractAddress:r,spenderAddress:i,ownerAddress:n,error:t})}},mB=async(t,n,r)=>{try{const e=new Cl(n,JSON.stringify(Im),t);return await e.getApproved(r)}catch(t){throw new sm("Failed to get approved address for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:r.toString(),contractAddress:n,error:t})}},yB=(t,n)=>{const r=parseInt(t,10);if(Number.isNaN(r))throw new sm("Invalid ERC721 ID",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:t,contractAddress:n});return r},gB=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,pB(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=yB(i,r);o.set(d,n),s.set(d,mB(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=yB(p,l);u.set(m,{type:e.ItemType.ERC721,sufficient:!1,itemRequirement:s,approvalTransaction:void 0}),c.set(m,hB(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()))}},bB=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=cr.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=cr.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),vB=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:mm};case e.ItemType.ERC721:default:return{address:t.contractAddress}}})))(i).forEach((e=>{e.address&&a.set(e.address.toLocaleLowerCase(),e)}));const{balances:o}=await zm(t,n,r,Nm(t));return o.filter((e=>a.get((e.token.address||mm).toLocaleLowerCase())))}catch(t){throw new sm("Failed to get balances",e.CheckoutErrorType.GET_BALANCE_ERROR,{error:t})}},TB=async(t,n,r,i)=>{const a=bB(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 sm("Unsupported item requirement balance check",e.CheckoutErrorType.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR);const u=[];o.length>0&&u.push(vB(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 Cl(n.contractAddress,JSON.stringify(Im),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&&Pm(n,t)&&(u=1),i.push({type:e.ItemType.ERC721,balance:cr.from(u),formattedBalance:u.toString(),contractAddress:s.contractAddress,id:s.id})}))}catch(t){throw new sm("Failed to get ERC721 balances",e.CheckoutErrorType.GET_ERC721_BALANCE_ERROR,{error:t})}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=>Pm(e.token?.address,t.tokenAddress))):t.type===e.ItemType.NATIVE&&(r=n.find((e=>Bm(e.token?.address))));const i=t.amount,a=i.isNegative()||i.isZero()||(r?.balance.gte(i)??!1),o=i.sub(r?.balance??cr.from(0));let s="",u="",c=hm;r&&(c=r.token?.decimals??hm,s=r.token.name,u=r.token.symbol);let l=r;return t.type===e.ItemType.NATIVE?(l||(l={type:e.ItemType.NATIVE,balance:cr.from(0),formattedBalance:"0",token:ym}),{sufficient:a,type:e.ItemType.NATIVE,delta:{balance:o,formattedBalance:Dh(o,c)},current:{...l,type:e.ItemType.NATIVE},required:{...l,type:e.ItemType.NATIVE,balance:cr.from(t.amount),formattedBalance:Dh(t.amount,c)}}):(l||(l={type:t.type,balance:cr.from(0),formattedBalance:"0",token:{name:s,symbol:u,address:t.tokenAddress,decimals:c}}),{sufficient:a,type:e.ItemType.ERC20,delta:{balance:o,formattedBalance:Dh(o,c)},current:l,required:{...l,balance:cr.from(t.amount),formattedBalance:Dh(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=cr.from(1),i=n.find((e=>{const n=e;return Pm(n.contractAddress,t.contractAddress)&&n.id===t.id})),a=r.isNegative()||r.isZero()||(i?.balance.gte(r)??!1),o=r.sub(i?.balance??cr.from(0));let s=i;return s||(s={type:e.ItemType.ERC721,balance:cr.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:cr.from(1),formattedBalance:"1"}}})(n,t))}))}return{sufficient:void 0===l.find((e=>!1===e.sufficient)),balanceRequirements:l}},wB=async(t,n)=>{try{return await t.estimateGas(n)}catch(t){throw new sm("Failed to estimate gas for transaction",e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT,{error:t})}},AB=async(t,n,r)=>{const i=[];let a=cr.from(0);for(const e of n)void 0!==e.approvalTransaction&&i.push(wB(t,e.approvalTransaction));if(r.type===e.TransactionOrGasType.TRANSACTION)i.push(wB(t,r.transaction));else{const e=(e=>(e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas)(e)?cr.from(e.maxFeePerGas).add(cr.from(e.maxPriorityFeePerGas)):e.gasPrice?cr.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)},EB=(t,n)=>({checkDexAvailability:async()=>{let r;try{r=await $e.post(`${t?gm[pm]:n?gm[mt.PRODUCTION]:gm[mt.SANDBOX]}/v1/availability/checkout/swap`)}catch(t){if(r=t.response,403===r.status)return!1;throw new sm(`Error fetching from api: ${r.status} ${r.statusText}`,e.CheckoutErrorType.API_ERROR,{error:t})}return!0}}),_B=async()=>!0,IB=async e=>{const t=EB(e.isDevelopment,e.isProduction);try{return await t.checkDexAvailability()}catch{return!1}};async function RB(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 lm(t,{type:e.NetworkFilterTypes.ALL})).networks.forEach((e=>{const n=t.networkMap.get(e.chainId)?.rpcUrls[0],i=new yp(n);r.set(e.chainId,i)})),r}const CB=async(e,t,n,r,i)=>{const a=new Map;try{const o=await rB(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 qm(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}},OB=(t,n,r)=>{let i,a=cr.from(0),o="0";t&&(a=t.value,o=Dh(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=cr.from(0),c="0";n&&(u=n.value,c=Dh(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:Dh(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}},kB=(t,n,r,i)=>{const a=r.token.address;let o=e.ItemType.ERC20;return Bm(a)&&(o=e.ItemType.NATIVE),{type:e.FundingStepType.SWAP,chainId:t,fundingItem:{type:o,fundsRequired:{amount:n,formattedAmount:Dh(n,r.token.decimals)},userBalance:{balance:r.balance,formattedBalance:r.formattedBalance},token:r.token},fees:i}},SB=(e,t)=>{if(!t)return{sufficient:!0,approvalGasFee:cr.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=>Bm(e.token.address)&&Bm(r)||Pm(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}},NB=(e,t,n,r,i)=>{const a=new Map;if(t.approvalGasFee.gt(cr.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===cr.from(0))continue;const r=e.find((e=>Bm(e.token.address)&&Bm(t)||Pm(e.token.address,t)));if(!r)return!1;if(r.balance.lt(n))return!1}return!0},xB=(t,n,r,i,a,o)=>{let s=cr.from(0),u="",c=!1;if(n.balanceRequirements.forEach((n=>{n.type!==e.ItemType.NATIVE&&n.type!==e.ItemType.ERC20||n.required.token.address&&Pm(n.required.token.address,r)&&(u=n.required.token.address,c=!0,s=t.sub(n.required.balance))})),!c)return!0;Pm(a.approvalGasTokenAddress,u)&&(s=s.sub(a.approvalGasFee));for(const e of o)Pm(e.amount.token.address,u)&&(s=s.sub(e.amount.value));return s.gte(i)},PB=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&&Bm(t.required.token.address))(i))return u;const c=(t=>{let n="",r=cr.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=Nm(t),d=a.get(l);if(!d)return u;const f=d.balances;if(0===f.length)return u;const p=await CB(t,Nm(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=>Pm(t.token.address,e)));if(!n)continue;const r=t.quote.amount;if(n.balance.lt(r.value))continue;const i=SB(f,t.approval);if(!i.sufficient)continue;if(!NB(f,i,t.swap,t.quote.fees,{amount:r.value,address:e}))continue;if(!xB(n.balance,s,e,r.value,i,t.quote.fees))continue;const a=OB(t.approval,t.swap,t.quote.fees);u.push(kB(l,r.value,n,a))}return u},MB=(e,t)=>t&&t.success?e.filter((e=>"address"in e?t.balances.find((t=>Pm(t.token.address,e.address)&&t.balance.gt(0))):t.balances.find((e=>!("address"in e.token)&&e.balance.gt(0))))):[],BB=async(t,n)=>{if(n.onRamp){return(await Mm(t,{type:e.TokenFilterTypes.ONRAMP})).tokens}return[]},DB=async(t,n,r)=>{if(r.bridge){const r=Sm(t),i=(await Mm(t,{type:e.TokenFilterTypes.BRIDGE,chainId:r})).tokens,a=n.get(r);return MB(i,a)}return[]},FB=async(t,n,r)=>{const i={};return i.swap=await(async(t,n,r)=>{if(r.swap){const r=(await Mm(t,{type:e.TokenFilterTypes.SWAP})).tokens,i=n.get(Nm(t));return MB(r,i)}return[]})(t,n,r),i.bridge=await DB(t,n,r),i.onRamp=await BB(t,r),i},LB="0x0000000000000000000000000000000000000eee",UB=async(e,t)=>(await t.remote.getConfig("imxAddressMapping"))[e]??"",qB=async(t,n)=>{if(Bm(n))return{l1address:await UB(Sm(t),t),l2address:mm};const r=(i=Nm(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=aB(t),o=(await a.getToken({chainName:r,contractAddress:n})).result.root_contract_address;return Pm(o??"",LB)?{l1address:"native",l2address:n}:null!==o?{l1address:o,l2address:n}:void 0},jB=(e,t)=>(e=>{for(const t of e.balances)if(Bm(t.token.address))return t.balance;return cr.from(0)})(e).gte(t),GB=(t,n,r,i,a)=>{const o=a?.decimals??hm,s=[];return n.gt(0)&&s.push({type:e.FeeType.BRIDGE_FEE,amount:n,formattedAmount:Dh(n,o),token:a}),r.gt(0)&&s.push({type:e.FeeType.IMMUTABLE_FEE,amount:r,formattedAmount:Dh(r,o),token:a}),{approvalGasFee:{type:e.FeeType.GAS,amount:i,formattedAmount:Dh(i,hm),token:a},bridgeGasFee:{type:e.FeeType.GAS,amount:t,formattedAmount:Dh(t,hm),token:a},bridgeFees:s}},HB=(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}),zB=async(t,n,r,i,a)=>{if(!r.bridge)return;const o=Sm(t),s=Nm(t),u=t.networkMap.get(o)?.nativeCurrency,c=a.get(o);if(!n.get(o))throw new sm("No L1 provider available",e.CheckoutErrorType.PROVIDER_ERROR,{chainId:o.toString()});if(void 0===c||!1===c.success)return;const l=await DB(t,a,r);if(0===l.length)return;const d=await qB(t,i.l2address);if(!d)return;const{l1address:f}=d;if(Bm(f)){if(!l.find((e=>Bm(e.address))))return}else if(!l.find((e=>Pm(e.address,f))))return;const p=await(async(t,n,r,i)=>{const a=nB(r,i,n,t);try{return{...await a.getFee({action:YT.DEPOSIT,gasMultiplier:1.1,sourceChainId:r.toString(),destinationChainId:i.toString()}),approvalGas:cr.from(0)}}catch(t){throw new sm("Error estimating gas for bridge",e.CheckoutErrorType.BRIDGE_GAS_ESTIMATE_ERROR,{error:t})}})(t,n,o,s),{sourceChainGas:h,approvalGas:m,bridgeFee:y,imtblFee:g,totalFees:b}=p;if(!jB(c,b))return;if(Bm(f)){const t=c.balances.find((e=>Bm(e.token.address)));if(t&&t.balance.gte(i.amount.add(b))){const n=GB(h,y,g,m,u);return HB(o,t,i,e.ItemType.NATIVE,n)}return}const v=c.balances.find((e=>Pm(e.token.address,f)));if(v&&v.balance.gte(i.amount)){const t=GB(h,y,g,m,u);return HB(o,v,i,e.ItemType.ERC20,t)}},WB=(e,t)=>{let n=cr.from(0);return e.quote.fees.forEach((e=>{Pm(e.amount.token.address,t)&&(n=n.add(e.amount.value))})),e.approval&&Pm(e.approval.token.address,t)&&(n=n.add(e.approval.value)),n},VB=(t,n)=>{for(const r of t.balanceRequirements)if((r.type===e.ItemType.NATIVE||r.type===e.ItemType.ERC20)&&Pm(r.required.token.address,n))return r.required.balance;return cr.from(0)},KB=(e,t,n)=>{const r=n?.balance??cr.from(0);if(r.gte(e.add(t)))return cr.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)},XB=async(e,t,n,r,i,a,o,s,u)=>{const{l1balances:c,l2balances:l}=((e,t)=>{const n={l1balances:[],l2balances:[]},r=t.get(Sm(e)),i=t.get(Nm(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=>qB(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(Pm(a.l2address,e))continue;const r=n.find((e=>Pm(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 CB(e,Nm(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=>Pm(e.token.address,o))),u=r.find((e=>Pm(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||!Pm(c,LB))||Pm(e.token.address,c)));if(!d)continue;const f=s.quote.amountWithMaxSlippage.value,p=WB(s,o),h=f.add(p),m=VB(i,o),y=KB(h,m,e);y.lte(0)||y.gte(d.balance)||a.push({amount:y,formattedAmount:Dh(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,zB(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=cr.from(0);const a=o.get(n);a&&(r=a.balance);const s=r.add(t),u=i.find((e=>Pm(e.address,n)));o.set(n,{balance:s,formattedBalance:Dh(s,u.decimals),token:u})}const s=Array.from(o.values());return a.set(Nm(e),{success:!0,balances:s}),a})(e,a,l,b,s),E=await PB(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=cr.from(0),u="0";const c=o.balances.find((e=>Pm(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?Pm(e.l1address,LB)&&e.l2address:Pm(e.l1address,i.fundingItem.token.address)&&e.l2address));if(!e)continue;const a=t.find((t=>Pm(t.fundingItem.token.address,e.l2address)));a&&r.push({bridgeFundingStep:i,swapFundingStep:a})}return r})(v,_,f)},JB=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 BB(t,n)).forEach((e=>{e.address&&i.token&&(Bm(i.token.address)||Pm(e.address,i.token.address))&&(s=!0)})),s?{type:e.FundingStepType.ONRAMP,chainId:Nm(t),fundingItem:{type:Bm(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},YB=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 RB(t)}catch(t){throw new sm("Error occurred while creating read only providers",e.CheckoutErrorType.PROVIDER_ERROR,{error:t})}const o=await qm(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 sm("No L1 or L2 provider available",e.CheckoutErrorType.PROVIDER_ERROR),balances:[]};return a.set(Sm(t),n),a.set(Nm(t),n),a}if(i.bridge){const i=Sm(t);n.has(i)?o.set(i,zm(t,n.get(i),r,i)):a.set(Sm(t),{success:!1,error:new sm(`No L1 provider available for ${i}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]})}const s=Nm(t);if(n.has(s)?o.set(s,zm(t,n.get(s),r,s)):a.set(Nm(t),{success:!1,error:new sm(`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 sm(`Error getting ${s} balances`,e.CheckoutErrorType.GET_BALANCE_ERROR),balances:[]})}))}return a})(t,a,n,i)),s=await qm(t,"Time to get routing allowlist",FB(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 zB(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(Nm(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 PB(e,t,r,n,i,c,o)})(t,i,u,n,o,s.swap,r)),c.push(JB(t,i,u)),c.push((async(t,n,r,i,a,o,s,u)=>{if(!i)return[];const c=o.get(Sm(t)),l=o.get(Nm(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?LB:e.address)),f=s?.swap??[];return i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20?[]:await XB(t,n,r,i,a,o,d,f,u)})(t,a,i,u,n,o,s,r));const l=await qm(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},QB=async(t,n,r,i)=>{const a=await n.getSigner().getAddress();let o=lB(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,dB(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,fB(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=gB(n,a,o),c=await qm(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 qm(t,"Time to run gas calculator",AB(n,l,i));null!==d&&(o.push(d),o=lB(o));const f=await qm(t,"Time to run balance checks",TB(t,n,a,o)),{sufficient:p}=f,h=f.balanceRequirements;if(p)return{sufficient:p,transactionRequirements:h};const m=await qm(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:_B()}),n.swap&&r.push({id:"swap",promise:IB(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 qm(t,"Total time to run the routing calculator",YB(t,a,f,m))}}};var $B;!function(e){e.SUCCESS="SUCCESS",e.FAILED="FAILED"}($B||($B={}));const ZB=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>Ym(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new sm("An error occurred while executing the approval transaction",e.CheckoutErrorType.EXECUTE_APPROVAL_TRANSACTION_ERROR,{error:t})}for(const e of r)if(0===e.status)return{type:$B.FAILED,transactionHash:e.transactionHash,reason:"Approval transaction failed and was reverted"};return{type:$B.SUCCESS}},eD=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>Ym(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new sm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{error:t})}for(const e of r)if(0===e.status)return{type:$B.FAILED,transactionHash:e.transactionHash,reason:"Fulfillment transaction failed and was reverted"};return{type:$B.SUCCESS}},tD=async e=>{let t=[];const n=[];for(const t of e)t.type===nM.TRANSACTION&&t.purpose===eM.FULFILL_ORDER&&n.push(t.buildTransaction());return t=await Promise.all(n),t},nD=(e,t)=>{const n=e.amount,r=Math.round(n.percentageDecimal*10**6);return t.mul(cr.from(r)).div(10**6)},rD=(e,t)=>Fh(e.amount.token,t),iD=(t,n,r=18)=>{let i=cr.from(0);const a=cr.from(n),o=a.mul(1e6).div(10**6),s=[];for(const n of t){let t=cr.from(0);if(Object.hasOwn(n.amount,"percentageDecimal"))t=nD(n,a),i=i.add(t);else{if(!Object.hasOwn(n.amount,"token"))throw new sm("Unknown fee type parsed, must be percentageDecimal or token",e.CheckoutErrorType.ORDER_FEE_ERROR);t=rD(n,r),i=i.add(t)}if(i.gt(o))throw new sm("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},aD=(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}}},oD=async(t,n,r,i={waitFulfillmentSettlements:!0})=>{if(0===r.length)throw new sm("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR);let a,o="",s=18;const u=bM,c=iB(t),l=aB(t),d=await qm(t,"Time to get the address from the provider",n.getSigner().getAddress());Hm.clear(),zm(t,n,d,Sm(t)),zm(t,n,d,Nm(t));const{id:f,takerFees:p}=r[0];let h;try{a=await qm(t,"Time to fetch the listing from the orderbook",c.getListing(f));const{seaportContractAddress:e,chainName:n}=c.config();h=n,o=e}catch(t){throw new sm("An error occurred while getting the order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{error:t,orderId:f})}if(0===a.result.buy.length)throw new sm("An error occurred with the get order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{orderId:f,message:"No buy side tokens found on order"});const m=a.result.buy[0];if("ERC20"===m.type){const e=await qm(t,"Time to get decimals of token contract for the buy token",l.getToken({contractAddress:m.contractAddress,chainName:h}));e.result.decimals&&(s=e.result.decimals)}let y=[];p&&p.length>0&&(y=iD(p,m.amount,s));let g=[],b=[],v=[];const T=performance.now();try{const{actions:e}=await qm(t,"Time to call fulfillOrder from the orderbook",c.fulfillOrder(f,d,y));v=e,g=await qm(t,"Time to construct the unsigned approval transactions",(async e=>{let t=[];const n=[];for(const t of e)t.type===nM.TRANSACTION&&t.purpose===eM.APPROVAL&&n.push(t.buildTransaction());return t=await Promise.all(n),t})(e))}catch(n){const r=(performance.now()-T)/1e3;if(Um(t,"Time to call fulfillOrder from the orderbook",r),n.message.includes(QP.EXPIRED))throw new sm("Order is expired",e.CheckoutErrorType.ORDER_EXPIRED_ERROR,{orderId:f});if(!n.message.includes("The fulfiller does not have the balances needed to fulfill"))throw new sm("Error occurred while trying to fulfill the order",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{orderId:f,error:n})}try{b=await qm(t,"Time to construct the unsigned fulfillment transactions",tD(v))}catch{}let w=cr.from("0"),A=e.ItemType.NATIVE,E="";const _=a.result.buy;if(_.length>0)switch(_[0].type){case"NATIVE":A=e.ItemType.NATIVE;break;case"ERC20":A=e.ItemType.ERC20,E=_[0].contractAddress;break;default:throw new sm("Purchasing token type is unsupported",e.CheckoutErrorType.UNSUPPORTED_TOKEN_TYPE_ERROR,{orderId:f})}_.forEach((t=>{t.type!==e.ItemType.ERC721&&(w=w.add(cr.from(t.amount)))}));a.result.fees.forEach((e=>{w=w.add(cr.from(e.amount))}));const I=[aD(A,E,w,o)],R=await qm(t,"Total time running smart checkout",QB(t,n,I,((t,n)=>n.length>0?{type:e.TransactionOrGasType.TRANSACTION,transaction:n[0]}:{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:cr.from(t)}})(u,b)));if(R.sufficient){const t=await ZB(n,g);if(t.type===$B.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason,smartCheckoutResult:R};try{0===b.length&&(b=await tD(v))}catch(t){throw new sm("Error fetching fulfillment transaction",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{error:t})}if(i.waitFulfillmentSettlements){const t=await eD(n,b);return t.type===$B.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason,smartCheckoutResult:R}:{status:e.CheckoutStatus.SUCCESS,smartCheckoutResult:R}}let r;try{r=(await Promise.all(b.map((e=>Ym(n,e))))).map((e=>e.transactionResponse))}catch(t){throw new sm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:t.message})}return{status:e.CheckoutStatus.FULFILLMENTS_UNSETTLED,smartCheckoutResult:R,transactions:r}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:R}},sD=(t,n,r)=>({type:e.ItemType.ERC721,id:t,contractAddress:n,spenderAddress:r}),uD=async(t,n,r)=>{let i,a,o="";if(0===r.length)throw new sm("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,orderExpiry:l}=r[0];let d=18;if(s.type===e.ItemType.ERC20){const e=new Cl(s.tokenAddress,JSON.stringify(_m),n);d=await qm(t,"Time to get decimals of token contract for the buy token",e.decimals())}const f=((t,n=18)=>{const r=Fh(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,d);try{const r=await qm(t,"Time to get the address from the provider",n.getSigner().getAddress());i=iB(t);const{seaportContractAddress:s}=i.config();o=s,a=await qm(t,"Time to prepare the listing from the orderbook",i.prepareListing({makerAddress:r,buy:f,sell:{type:e.ItemType.ERC721,contractAddress:u.collectionAddress,tokenId:u.id},orderExpiry:l}))}catch(t){throw new sm("An error occurred while preparing the listing",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR,{error:t,id:u.id,collectionAddress:u.collectionAddress})}const p=[sD(u.id,u.collectionAddress,o)],h=await qm(t,"Total time running smart checkout",QB(t,n,p,{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:cr.from(bM)}}));if(h.sufficient){const t=await(async e=>{let t=[],n=[];const r=[],i=[];for(const t of e)t.type===nM.TRANSACTION&&(t.purpose===eM.APPROVAL&&r.push(t.buildTransaction()),t.purpose===eM.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 ZB(n,t.approvalTransactions);if(r.type===$B.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:r.transactionHash,reason:r.reason,smartCheckoutResult:h};const o=((e,t,n)=>{let r;for(const e of n)e.type===nM.SIGNABLE&&e.purpose===tM.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 sm("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 sm("An error occurred while signing the message",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{error:t})}})(n,o);let l="";const p={orderComponents:s.orderComponents,orderHash:s.orderHash,orderSignature:s.signedMessage,makerFees:[]};if(void 0!==c){const t=iD(c,f.amount,d);if(t.length!==c.length)throw new sm("One of the fees is too small, must be greater than 0.000001",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR);p.makerFees=t}try{l=(await i.createListing(p)).result.id}catch(t){throw new sm("An error occurred while creating the listing",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR,{error:t,collectionId:u.id,collectionAddress:u.collectionAddress})}return{status:e.CheckoutStatus.SUCCESS,orderIds:[l],smartCheckoutResult:h}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:h}};class cD{config;constructor(e){this.config=e}async feeEstimate(){const e=await this.config.remote.getConfig("onramp");return e[Kh.TRANSAK]?.fees}async createWidgetUrl(e){return await this.getTransakWidgetUrl(e)}async getTransakWidgetUrl(e){let t=`${vm[this.config.environment]}?`;if(t+=`${`apiKey=${(await this.config.remote.getConfig("onramp"))[Kh.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 lD(t,n){const r=[];n.forEach((n=>{if(n.type===e.ItemType.ERC20){const{tokenAddress:e}=n;r.push((i=e,a=_m,o=t,new Cl(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:Fh(t.amount,18)}:t.type===e.ItemType.ERC20?{...t,amount:Fh(t.amount,i[n])}:t));return a}function dD(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=Cm();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 fD=["https://checkout-api.dev.immutable.com","https://checkout-api.sandbox.immutable.com","https://checkout-api.immutable.com"];class pD{config;axiosInstance;constructor(e){this.config=e,this.axiosInstance=$e.create(),this.setupInterceptors()}shouldAddPublishableKey(e){return fD.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 hD={baseConfig:{environment:mt.SANDBOX},passport:void 0};e.BlockExplorerService=class{static getTransactionLink(e,t){const n=Em?.[e]?.url;if(n&&t)return`${n}/tx/${t}`}},e.Checkout=class{readOnlyProviders;httpClient;config;fiatRampService;availability;passport;constructor(e=hD){this.httpClient=new pD(e),this.config=new xm(e,this.httpClient),this.fiatRampService=new cD(this.config),this.readOnlyProviders=new Map,this.availability=EB(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{dD(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 sm("Failed to load widgets script",e.CheckoutErrorType.WIDGETS_SCRIPT_LOAD_ERROR,{error:t}))}}));return r}async createProvider(e){return await Km(e.walletProviderName,this.passport)}async checkIsWalletConnected(t){return async function(t){if(!t?.provider?.request)throw new sm("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{rpcMethod:Yh.CHECK_CONNECTION});let n=[];try{n=await t.provider.request({method:Yh.CHECK_CONNECTION,params:[]})}catch(t){throw new sm("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{error:t,rpcMethod:Yh.CHECK_CONNECTION})}return{isConnected:n&&n.length>0,walletAddress:n[0]??""}}(await Jm(this.config,t.provider,{allowUnsupportedProvider:!0}))}async connect(t){const n=await Jm(this.config,t.provider,{allowUnsupportedProvider:!0});return await async function(t){if(!t||!t.provider?.request)throw new sm("Incompatible provider",e.CheckoutErrorType.PROVIDER_REQUEST_MISSING_ERROR,{details:"Attempting to connect with an incompatible provider"});return await um((async()=>{t.provider.request&&await t.provider.request({method:Yh.CONNECT,params:[]})}),{type:e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR}),t}(n),{provider:n}}async switchNetwork(e){const t=await Jm(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await fm(this.config,t,e.chainId)}async getTokenInfo(e){return await Dm(e.provider,e.tokenAddress)}async getBalance(e){const t=await Jm(this.config,e.provider);return e.tokenAddress&&""!==e.tokenAddress?await Gm(t,e.walletAddress,e.tokenAddress):await jm(this.config,t,e.walletAddress)}async getAllBalances(e){return zm(this.config,e.provider,e.walletAddress,e.chainId)}async getNetworkAllowList(e){return await lm(this.config,e)}async getTokenAllowList(e){return await Mm(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 Jm(this.config,e.provider);return await Ym(t,e.transaction)}async getNetworkInfo(e){const t=await Jm(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await dm(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 Jm(this.config,e.provider);return await oD(this.config,t,e.orders,e.overrides)}async sell(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await Jm(this.config,e.provider);return await uD(this.config,t,e.orders)}async cancel(t){console.warn("This endpoint currently only processes the first order in the array.");const n=await Jm(this.config,t.provider);return await(async(t,n,r)=>{let i;if(0===r.length)throw new sm("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 qm(t,"Time to get the address from the provider",n.getSigner().getAddress()),r=iB(t),o=await qm(t,"Time to get the cancel order from the orderbook",r.cancelOrdersOnChain([a],e));i=await o.cancellationAction.buildTransaction()}catch(t){throw new sm("An error occurred while cancelling the order listing",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR,{orderId:a,error:t})}const o=await eD(n,[i]);return o.type===$B.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 Jm(this.config,t.provider);let r=[];try{r=await lD(n,t.itemRequirements)}catch(t){throw new sm("Failed to map item requirements",e.CheckoutErrorType.ITEM_REQUIREMENTS_ERROR,{error:t})}return await QB(this.config,n,r,t.transactionOrGasAmount)}static isWeb3Provider(e){return Xm(e)}async gasEstimate(e){return this.readOnlyProviders=await RB(this.config,this.readOnlyProviders),await cB(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 Mm(this.config,{type:e.TokenFilterTypes.ONRAMP}),u=s.tokens?.find((e=>Pm(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=xm,e.IMMUTABLE_API_BASE_URL=gm}));
|
|
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)}(fN)),mN(),yN||(yN=1,function(e,t){var n;e.exports=(n=OS(),mN(),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)}(gN)),TN(),EN(),RN(),kN(),xN(),BN(),DN||(DN=1,function(e,t){var n,r;e.exports=(r=OS(),EN(),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)}(FN)),LN||(LN=1,function(e,t){var n;e.exports=(n=OS(),EN(),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)}(UN)),qN||(qN=1,function(e,t){var n;e.exports=(n=OS(),EN(),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)}(jN)),GN||(GN=1,function(e,t){var n;e.exports=(n=OS(),EN(),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)}(HN)),zN||(zN=1,function(e,t){var n;e.exports=(n=OS(),EN(),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)}(WN)),VN||(VN=1,function(e,t){var n;e.exports=(n=OS(),EN(),n.pad.NoPadding={pad:function(){},unpad:function(){}},n.pad.NoPadding)}(KN)),XN||(XN=1,function(e,t){var n,r,i,a;e.exports=(a=OS(),EN(),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)}(JN)),YN||(YN=1,function(e,t){var n;e.exports=(n=OS(),WS(),QS(),TN(),EN(),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)}(QN)),ex(),tx||(tx=1,function(e,t){var n;e.exports=(n=OS(),WS(),QS(),TN(),EN(),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)}(nx)),rx||(rx=1,function(e,t){var n;e.exports=(n=OS(),WS(),QS(),TN(),EN(),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)}(ix)),ax||(ax=1,function(e,t){var n;e.exports=(n=OS(),WS(),QS(),TN(),EN(),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)}(ox)),cx(),n)}(MS);var lx=MS.exports,dx=gt&>.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(PS,"__esModule",{value:!0}),PS.Base=void 0;const fx=An,px=dx(lx);class hx{print(){hx.print(this)}bufferIndexOf(e,t,n=!1){if(n)return this.binarySearch(e,t,fx.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 hx.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 hx.linearSearch(e,t,n)}static bufferify(e){if(!fx.Buffer.isBuffer(e)){if("object"==typeof e&&e.words)return fx.Buffer.from(e.toString(px.default.enc.Hex),"hex");if(hx.isHexString(e))return fx.Buffer.from(e.replace(/^0x/,""),"hex");if("string"==typeof e)return fx.Buffer.from(e);if("bigint"==typeof e)return fx.Buffer.from(e.toString(16),"hex");if(e instanceof Uint8Array)return fx.Buffer.from(e.buffer);if("number"==typeof e){let t=e.toString();return t.length%2&&(t=`0${t}`),fx.Buffer.from(t,"hex")}if(ArrayBuffer.isView(e))return fx.Buffer.from(e.buffer,e.byteOffset,e.byteLength)}return e}bigNumberify(e){return hx.bigNumberify(e)}static bigNumberify(e){if("bigint"==typeof e)return e;if("string"==typeof e)return e.startsWith("0x")&&hx.isHexString(e)?BigInt("0x"+e.replace("0x","").toString()):BigInt(e);if(fx.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 hx.bufferToHex(e,t)}static bufferToHex(e,t=!0){return`${t?"0x":""}${(e||fx.Buffer.alloc(0)).toString("hex")}`}bufferify(e){return hx.bufferify(e)}bufferifyFn(e){return t=>{const n=e(t);return fx.Buffer.isBuffer(n)?n:this.isHexString(n)?fx.Buffer.from(n.replace("0x",""),"hex"):"string"==typeof n?fx.Buffer.from(n):"bigint"==typeof n?fx.Buffer.from(t.toString(16),"hex"):ArrayBuffer.isView(n)?fx.Buffer.from(n.buffer,n.byteOffset,n.byteLength):fx.Buffer.from(e(px.default.enc.Hex.parse(t.toString("hex"))).toString(px.default.enc.Hex),"hex")}}isHexString(e){return hx.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")}}PS.Base=hx,PS.default=hx;var mx=gt&>.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ES,"__esModule",{value:!0}),ES.MerkleTree=void 0;const yx=An,gx=mx((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})),bx=mx(kS),vx=mx(xS),Tx=mx(PS);let wx=class e extends Tx.default{constructor(e,t=bx.default,n={}){if(super(),this.duplicateOdd=!1,this.concatenator=yx.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(!yx.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(yx.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([gx.default(n),gx.default(n)])),i=gx.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?[gx.default(i),gx.default(a)]:[i,a],this.sortPairs&&o.sort(yx.Buffer.compare);let s=this.hashFn(this.concatenator(o));this.isBitcoinTree&&(s=gx.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(yx.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?yx.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(yx.Buffer.from([0])),e}getHexLayersFlat(){return this.getLayersFlat().map((e=>this.bufferToHex(e)))}getLayerCount(){return this.getLayers().length}getRoot(){return 0===this.layers.length?yx.Buffer.from([]):this.layers[this.layers.length-1][0]||yx.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===yx.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:yx.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=bx.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(yx.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(yx.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(gx.default(r)),o[a?"unshift":"push"](gx.default(i)),r=this.hashFn(this.concatenator(o)),r=gx.default(this.hashFn(r))):this.sortPairs?-1===yx.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===yx.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(yx.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(yx.Buffer.compare);o[e]=this.hashFn(this.concatenator(a))}return 0===yx.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=bx.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 vx.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]}};ES.MerkleTree=wx,"undefined"!=typeof window&&(window.MerkleTree=wx),ES.default=wx;var Ax={},Ex=gt&>.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ax,"__esModule",{value:!0}),Ax.MerkleMountainRange=void 0;const _x=An,Ix=Ex(kS),Rx=Ex(PS);class Cx extends Rx.default{constructor(e=Ix.default,t=[],n,r,i){super(),this.root=_x.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(_x.Buffer.concat([this.bufferify(e),t]))}hashBranch(e,t,n){return this.hashBranchFn?this.bufferify(this.hashBranchFn(e,t,n)):this.hashFn(_x.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(_x.Buffer.concat([this.bufferify(n),...t.map(this.bufferify)])):_x.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]}}Ax.MerkleMountainRange=Cx,"undefined"!=typeof window&&(window.MerkleMountainRange=Cx),Ax.default=Cx;var Ox={},kx=gt&>.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ox,"__esModule",{value:!0}),Ox.IncrementalMerkleTree=void 0;const Sx=kx(PS),Nx=kx(xS);class xx extends Sx.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 Nx.default.asTree(e,!0)}}Ox.IncrementalMerkleTree=xx,"undefined"!=typeof window&&(window.IncrementalMerkleTree=xx),Ox.default=xx;var Px={};Object.defineProperty(Px,"__esModule",{value:!0}),Px.MerkleSumTree=Px.ProofStep=Px.Leaf=Px.Bucket=void 0;const Mx=PS;class Bx{constructor(e,t){this.size=BigInt(e),this.hashed=t,this.parent=null,this.left=null,this.right=null}}Px.Bucket=Bx;Px.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 Bx(BigInt(this.rng[1])-BigInt(this.rng[0]),e)}};class Dx{constructor(e,t){this.bucket=e,this.right=t}}Px.ProofStep=Dx;class Fx extends Mx.Base{constructor(e,t){super(),this.leaves=e,this.hashFn=t,Fx.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 Bx(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 Dx(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 Bx(BigInt(a.size)+BigInt(e.bucket.size),i);return a.size===e.size&&a.hashed.toString("hex")===e.hashed.toString("hex")}}Px.MerkleSumTree=Fx,"undefined"!=typeof window&&(window.MerkleSumTree=Fx),Px.default=Fx,function(e){var t=gt&>.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.MerkleTree=void 0;const n=t(ES);e.MerkleTree=n.default;var r=Ax;Object.defineProperty(e,"MerkleMountainRange",{enumerable:!0,get:function(){return r.MerkleMountainRange}});var i=Ox;Object.defineProperty(e,"IncrementalMerkleTree",{enumerable:!0,get:function(){return i.IncrementalMerkleTree}});var a=Px;Object.defineProperty(e,"MerkleSumTree",{enumerable:!0,get:function(){return a.MerkleSumTree}}),e.default=n.default}(AS);var Lx={};Object.defineProperty(Lx,"__esModule",{value:!0}),Lx.DefaultGetter=void 0;const Ux=Ek,qx=new xk.Logger("defaults"),jx={integer:0,address:(0,Ux.hexZeroPad)("0x",20),bool:!1,bytes:"0x",string:""},Gx=e=>void 0!==e&&(null!=e&&(["string","number"].includes(typeof e)&&BigInt(e)===BigInt(0)||Array.isArray(e)&&e.every(Gx)||"object"==typeof e&&Object.values(e).every(Gx)||"boolean"==typeof e&&!1===e));class Hx{constructor(e){this.types=e,this.defaultValues={};for(const t in e){const e=this.getDefaultValue(t);this.defaultValues[t]=e,Gx(e)||qx.throwError(`Got non-empty value for type ${t} in default generator: ${e}`)}}static from(e,t){const{defaultValues:n}=new Hx(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,Ux.hexZeroPad)("0x",parseInt(n)):(e.match(/^(u?)int(\d*)$/)&&(e="integer"),jx[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)})),{}):qx.throwArgumentError(`unknown type: ${e}`,"type",e)}}Lx.DefaultGetter=Hx;var zx={};!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=Ek;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)}(zx),Object.defineProperty(wS,"__esModule",{value:!0}),wS.Eip712MerkleTree=void 0;const Wx=Ok,Vx=Ek,Kx=AS,Xx=Lx,Jx=zx;wS.Eip712MerkleTree=class{get completedSize(){return Math.pow(2,this.depth)}getCompleteElements(){const e=this.elements;return(0,Jx.fillArray)([...e],this.completedSize,this.defaultNode)}getCompleteLeaves(){const e=this.elements.map(this.leafHasher);return(0,Jx.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,Vx.hexConcat)([n,`0x${e.toString(16).padStart(6,"0")}`,Vx.defaultAbiCoder.encode([`uint256[${t.length}]`],[t])]))(e,n,t)}getDataToSign(){let e=this.getCompleteElements();for(;e.length>2;)e=(0,Jx.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(Jx.hexToBuffer),n=(0,Jx.bufferToHex)((0,Jx.getRoot)(t,!1)),r=(0,Vx.keccak256)((0,Vx.toUtf8Bytes)(this.encoder._types.BulkOrder));if((0,Vx.keccak256)((0,Vx.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=Wx._TypedDataEncoder.from(e);var o,s;this.encoder=a,this.leafHasher=e=>a.hashStruct(n,e),this.defaultNode=Xx.DefaultGetter.from(e,n),this.defaultLeaf=this.leafHasher(this.defaultNode),this.tree=(o=this.getCompleteLeaves(),s=this.defaultLeaf,new Kx.MerkleTree(o.map(Jx.hexToBuffer),Jx.bufferKeccak,{complete:!0,sort:!1,hashLeaves:!1,fillDefaultHash:(0,Jx.hexToBuffer)(s)}))}},Object.defineProperty(TS,"__esModule",{value:!0}),TS.getBulkOrderTypeHashes=TS.getBulkOrderTypeHash=TS.getBulkOrderTree=TS.getBulkOrderTreeHeight=void 0;const Yx=Ek,Qx=wS,$x=Lx,Zx=zx,eP=Wk;function tP(e){const t=Object.assign({},eP.EIP_712_BULK_ORDER_TYPE);return t.BulkOrder=[{name:"tree",type:`OrderComponents${"[2]".repeat(e)}`}],t}function nP(e){return Math.max(Math.ceil(Math.log2(e)),1)}function rP(e){const t=tP(e),n=Yx._TypedDataEncoder.from(t),r=(0,Yx.toUtf8Bytes)(n._types.BulkOrder);return(0,Yx.keccak256)(r)}TS.getBulkOrderTreeHeight=nP,TS.getBulkOrderTree=function(e,t=0,n=nP(e.length+t)){const r=tP(n),i=$x.DefaultGetter.from(r,"OrderComponents");let a=[...e];return t>0&&(a=[...(0,Zx.fillArray)([],t,i),...e]),new Qx.Eip712MerkleTree(r,"BulkOrder","OrderComponents",a,n)},TS.getBulkOrderTypeHash=rP,TS.getBulkOrderTypeHashes=function(e){const t=[];for(let n=0;n<e;n++)t.push(rP(n+1));return t};var iP={},aP={},oP={};Object.defineProperty(oP,"__esModule",{value:!0}),oP.MerkleTree=void 0;const sP=Ak,uP=Ek,cP=AS,lP=e=>(0,uP.keccak256)(Buffer.from(sP.BigNumber.from(e).toHexString().slice(2).padStart(64,"0"),"hex"));oP.MerkleTree=class{constructor(e){this.tree=new cP.default(e.map(lP),uP.keccak256,{sort:!0})}getProof(e){return this.tree.getHexProof(lP(e))}getRoot(){return this.tree.getRoot().toString("hex")?this.tree.getHexRoot():"0"}},Object.defineProperty(aP,"__esModule",{value:!0}),aP.shouldUseMatchForFulfill=aP.generateRandomSalt=aP.mapOrderAmountsFromUnitsToFill=aP.mapOrderAmountsFromFilledStatus=aP.totalItemsAmount=aP.areAllCurrenciesSame=aP.mapInputItemToOfferItem=aP.deductFees=aP.feeToConsiderationItem=void 0;const dP=Ak,fP=Ek,pP=Wk,hP=tS(),mP=oP,yP=(e,t)=>dP.BigNumber.from(e).mul(dP.BigNumber.from(t)).div(pP.ONE_HUNDRED_PERCENT_BP);aP.feeToConsiderationItem=({fee:e,token:t,baseAmount:n,baseEndAmount:r=n})=>({itemType:t===dP.ethers.constants.AddressZero?pP.ItemType.NATIVE:pP.ItemType.ERC20,token:t,identifierOrCriteria:"0",startAmount:yP(n,e.basisPoints).toString(),endAmount:yP(r,e.basisPoints).toString(),recipient:e.recipient});aP.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,hP.isCurrencyItem)(e)?dP.BigNumber.from(e.startAmount).sub(yP(e.startAmount,n)).toString():e.startAmount,endAmount:(0,hP.isCurrencyItem)(e)?dP.BigNumber.from(e.endAmount).sub(yP(e.endAmount,n)).toString():e.endAmount})))};aP.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 mP.MerkleTree(e.identifiers).getRoot();return{itemType:e.itemType===pP.ItemType.ERC721?pP.ItemType.ERC721_WITH_CRITERIA:pP.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!==dP.ethers.constants.AddressZero?pP.ItemType.ERC20:pP.ItemType.NATIVE,token:null!==(s=e.token)&&void 0!==s?s:dP.ethers.constants.AddressZero,identifierOrCriteria:"0",startAmount:e.amount,endAmount:null!==(u=e.endAmount)&&void 0!==u?u:e.amount}};aP.areAllCurrenciesSame=({offer:e,consideration:t})=>{const n=[...e,...t].filter(hP.isCurrencyItem);return n.every((({itemType:e,token:t})=>e===n[0].itemType&&t.toLowerCase()===n[0].token.toLowerCase()))};aP.totalItemsAmount=e=>(dP.BigNumber.from(0),dP.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:dP.BigNumber.from(0),endAmount:dP.BigNumber.from(0)}));aP.mapOrderAmountsFromFilledStatus=(e,{totalFilled:t,totalSize:n})=>{if(t.eq(0)||n.eq(0))return e;const r=n.sub(t).mul(pP.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:yP(e.startAmount,r).toString(),endAmount:yP(e.endAmount,r).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:yP(e.startAmount,r).toString(),endAmount:yP(e.endAmount,r).toString()})))}),signature:e.signature}};const gP=(e,t,n)=>dP.BigNumber.from(e).mul(dP.BigNumber.from(t)).div(n);aP.mapOrderAmountsFromUnitsToFill=(e,{unitsToFill:t,totalSize:n})=>{const r=dP.BigNumber.from(t);if(r.lte(0))throw new Error("Units to fill must be greater than 1");const i=(0,hP.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:gP(e.startAmount,r,n).toString(),endAmount:gP(e.endAmount,r,n).toString()}))),consideration:e.parameters.consideration.map((e=>Object.assign(Object.assign({},e),{startAmount:gP(e.startAmount,r,n).toString(),endAmount:gP(e.endAmount,r,n).toString()})))}),signature:e.signature}};aP.generateRandomSalt=e=>e?`0x${Buffer.from((0,fP.concat)([(0,fP.keccak256)((0,fP.toUtf8Bytes)(e)).slice(0,10),Uint8Array.from(Array(20).fill(0)),(0,fP.randomBytes)(8)])).toString("hex")}`:`0x${Buffer.from((0,fP.randomBytes)(8)).toString("hex").padStart(64,"0")}`;aP.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=Ak,n=Wk,r=Vk,i=lS,a=$k(),o=eS,s=tS(),u=aP,c=nS;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)}}}(iP);var bP=gt&>.__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(QO,"__esModule",{value:!0}),QO.Seaport=void 0;const vP=wk,TP=Ak,wP=Ek,AP=Hk,EP=zk,_P=Wk,IP=Vk,RP=lS,CP=TS,OP=iP,kP=tS(),SP=aP,NP=nS;QO.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=_P.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=TP.ethers.utils.keccak256(TP.ethers.utils.toUtf8Bytes(t)),a=TP.ethers.utils.keccak256(TP.ethers.utils.toUtf8Bytes(n)),o=TP.ethers.utils.keccak256(TP.ethers.utils.toUtf8Bytes(r)),s=TP.ethers.utils.keccak256("0x"+e.offer.map((e=>TP.ethers.utils.keccak256("0x"+[i.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0")].join("")).slice(2))).join("")),u=TP.ethers.utils.keccak256("0x"+e.consideration.map((e=>TP.ethers.utils.keccak256("0x"+[a.slice(2),e.itemType.toString().padStart(64,"0"),e.token.slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.identifierOrCriteria).toHexString().slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.startAmount).toHexString().slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.endAmount).toHexString().slice(2).padStart(64,"0"),e.recipient.slice(2).padStart(64,"0")].join("")).slice(2))).join(""));return TP.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"),TP.ethers.BigNumber.from(e.startTime).toHexString().slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.endTime).toHexString().slice(2).padStart(64,"0"),e.zoneHash.slice(2),TP.BigNumber.from(e.salt).toHexString().slice(2).padStart(64,"0"),e.conduitKey.slice(2).padStart(64,"0"),TP.ethers.BigNumber.from(e.counter).toHexString().slice(2).padStart(64,"0")].join(""))};const c=e instanceof TP.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 vP.providers.MulticallProvider(this.provider),this.contract=new TP.Contract(null!==(o=null==t?void 0:t.contractAddress)&&void 0!==o?o:"1.5"===a?_P.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS:_P.CROSS_CHAIN_SEAPORT_V1_4_ADDRESS,EP.SeaportABIv14,this.multicallProvider),this.domainRegistry=new TP.Contract(null!==(s=null==t?void 0:t.domainRegistryAddress)&&void 0!==s?s:_P.DOMAIN_REGISTRY_ADDRESS,AP.DomainRegistryABI,this.multicallProvider),this.config={ascendingAmountFulfillmentBuffer:n,balanceAndApprovalChecksOnOrderCreation:r,conduitKeyToConduit:Object.assign(Object.assign(Object.assign({},_P.KNOWN_CONDUIT_KEYS_TO_CONDUIT),{[_P.NO_CONDUIT]:this.contract.address}),i),seaportVersion:a},this.defaultConduitKey=null!==(u=null==t?void 0:t.defaultConduitKey)&&void 0!==u?u:_P.NO_CONDUIT}createOrder(e,t,n){return bP(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:()=>bP(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,NP.executeAllActions)(u)}}))}createBulkOrders(e,t,n){var r;return bP(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:()=>bP(this,void 0,void 0,(function*(){return yield this.signBulkOrder(u,a)}))},l=[...s,c];return{actions:l,executeAllActions:()=>(0,NP.executeAllActions)(l)}}))}_formatOrder(e,t,n,{conduitKey:r=this.defaultConduitKey,zone:i=TP.ethers.constants.AddressZero,zoneHash:a=TP.ethers.constants.HashZero,startTime:o=Math.floor(Date.now()/1e3).toString(),endTime:s=_P.MAX_INT.toString(),offer:u,consideration:c,counter:l,allowPartialFills:d,restrictedByZone:f,fees:p,domain:h,salt:m}){var y;return bP(this,void 0,void 0,(function*(){const g=u.map(SP.mapInputItemToOfferItem),b=[...c.map((e=>{var n;return Object.assign(Object.assign({},(0,SP.mapInputItemToOfferItem)(e)),{recipient:null!==(n=e.recipient)&&void 0!==n?n:t})}))];if((null==p?void 0:p.length)&&!(0,SP.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(kP.isCurrencyItem),T=(0,SP.totalItemsAmount)(v),w=this.config.conduitKeyToConduit[r],A=this._getOrderTypeFromOrderOptions({allowPartialFills:d,restrictedByZone:f}),E=[...(0,SP.deductFees)(b,p),...v.length&&null!==(y=null==p?void 0:p.map((e=>(0,SP.feeToConsiderationItem)({fee:e,token:v[0].token,baseAmount:T.startAmount,baseEndAmount:T.endAmount}))))&&void 0!==y?y:[]],_=void 0!==m?`0x${TP.BigNumber.from(m).toHexString().slice(2).padStart(64,"0")}`:(0,SP.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,RP.getBalancesAndApprovals)({owner:t,items:g,criterias:[],multicallProvider:this.multicallProvider,operator:w}),i=(0,RP.validateOfferBalancesAndApprovals)({offer:g,criterias:[],balancesAndApprovals:r,throwOnInsufficientBalances:!0,operator:w}),a=(0,IP.getApprovalActions)(i,n,e);R.push(...a)}return{orderComponents:I,approvalActions:R}}))}_getSigner(e){if(this.signer)return this.signer;if(!(this.provider instanceof TP.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?_P.OrderType.PARTIAL_RESTRICTED:_P.OrderType.PARTIAL_OPEN:t?_P.OrderType.FULL_RESTRICTED:_P.OrderType.FULL_OPEN}_getDomainData(){return bP(this,void 0,void 0,(function*(){const{chainId:e}=yield this.provider.getNetwork();return{name:_P.SEAPORT_CONTRACT_NAME,version:"1.5"===this.config.seaportVersion?_P.SEAPORT_CONTRACT_VERSION_V1_5:_P.SEAPORT_CONTRACT_VERSION_V1_4,chainId:e,verifyingContract:this.contract.address}}))}_getMessageToSign(e){return bP(this,void 0,void 0,(function*(){const t=yield this._getDomainData();return JSON.stringify(wP._TypedDataEncoder.getPayload(t,_P.EIP_712_ORDER_TYPE,e))}))}_getBulkMessageToSign(e){return bP(this,void 0,void 0,(function*(){const t=yield this._getDomainData(),n=(0,CP.getBulkOrderTree)(e),r=n.types,i=n.getDataToSign();return JSON.stringify(wP._TypedDataEncoder.getPayload(t,r,{tree:i}))}))}signOrder(e,t){return bP(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData();let i=yield n._signTypedData(r,_P.EIP_712_ORDER_TYPE,e);return 132===i.length&&(i=TP.ethers.utils.splitSignature(i).compact),i}))}signBulkOrder(e,t){return bP(this,void 0,void 0,(function*(){const n=this._getSigner(t),r=yield this._getDomainData(),i=(0,CP.getBulkOrderTree)(e),a=i.types,o={tree:i.getDataToSign()};let s=yield n._signTypedData(r,a,o);132===s.length&&(s=TP.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,NP.getTransactionMethods)(this.contract.connect(r),"cancel",[e],n)}bulkCancelOrders(e,t){const n=this._getSigner(e);return(0,NP.getTransactionMethods)(this.contract.connect(n),"incrementCounter",[],t)}validate(e,t,n){const r=this._getSigner(t);return(0,NP.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=TP.ethers.constants.AddressZero,domain:c,exactApproval:l=!1}){return bP(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,RP.getBalancesAndApprovals)({owner:f,items:p,criterias:n,multicallProvider:this.multicallProvider,operator:g}),(0,RP.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,OP.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,SP.mapInputItemToOfferItem)(e)),{recipient:e.recipient}))),k=u===TP.ethers.constants.AddressZero;return!t&&k&&(0,OP.shouldUseBasicFulfill)(R.parameters,_)?(0,OP.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,OP.fulfillStandardOrder)({order:R,unitsToFill:t,totalFilled:_,totalSize:I.eq(0)?(0,kP.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=TP.ethers.constants.AddressZero,domain:i,exactApproval:a=!1}){return bP(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,RP.getBalancesAndApprovals)({owner:e.parameters.offerer,items:e.parameters.offer,criterias:t,operator:u[n],multicallProvider:this.multicallProvider})))),(0,RP.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,SP.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,OP.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,NP.getTransactionMethods)(this.contract.connect(a),"matchOrders",[e,t,n],i)}setDomain(e,t){const n=this._getSigner(t);return(0,NP.getTransactionMethods)(this.domainRegistry.connect(n),"setDomain",[e])}getNumberOfDomains(e){return bP(this,void 0,void 0,(function*(){return this.domainRegistry.getNumberOfDomains(e)}))}getDomain(e,t){return this.domainRegistry.getDomain(e,t)}getDomains(e,t){return bP(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=QO;Object.defineProperty(e,"Seaport",{enumerable:!0,get:function(){return t.Seaport}})}(YO);class xP{config;constructor(e){this.config=e}}class PP 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 MP extends Error{constructor(e){super(e),this.name="CancelError"}get isCancelled(){return!0}}class BP{[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 MP("Request aborted"))}}get isCancelled(){return this._isCancelled}}const DP=e=>null!=e,FP=e=>"string"==typeof e,LP=e=>FP(e)&&""!==e,UP=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]),qP=e=>{const t=[],n=(e,r)=>{DP(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("&")}`:""},jP=async(e,t)=>"function"==typeof t?t(e):t,GP=async(e,t,n)=>{const r=await jP(t,e.TOKEN),i=await jP(t,e.USERNAME),a=await jP(t,e.PASSWORD),o=await jP(t,e.HEADERS),s="function"==typeof n?.getHeaders&&n?.getHeaders()||{},u=Object.entries({Accept:"application/json",...o,...t.headers,...s}).filter((([e,t])=>DP(t))).reduce(((e,[t,n])=>({...e,[t]:String(n)})),{});if(LP(r)&&(u.Authorization=`Bearer ${r}`),LP(i)&&LP(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:UP(t.body)?u["Content-Type"]=t.body.type||"application/octet-stream":FP(t.body)?u["Content-Type"]="text/plain":t.body instanceof JO||(u["Content-Type"]="application/json")),u},HP=(e,t)=>new BP((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}${qP(t.query)}`:i})(e,t),o=(e=>{if(e.formData){const t=new JO,n=(e,n)=>{FP(n)||UP(n)?t.append(e,n):t.append(e,JSON.stringify(n))};return Object.entries(e.formData).filter((([e,t])=>DP(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 GP(e,t,o);if(!i.isCancelled){const c=await(async(e,t,n,r,i,a,o)=>{const s=$e.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 $e.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(FP(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 PP(e,t,n);if(!t.ok)throw new PP(e,t,"Generic Error")})(t,f),n(f.body)}}catch(e){r(e)}var a}));class zP extends xP{constructor(e){super(e)}request(e){return HP(this.config,e)}}class WP{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 VP{orders;request;constructor(e,t=zP){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 WP(this.request)}}var KP,XP,JP,YP,QP,$P,ZP,eM,tM,nM;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,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 iM(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 aM(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"}(KP||(KP={})),function(e){(e.reason_code||(e.reason_code={})).FILLED="FILLED"}(XP||(XP={})),function(e){var t;(t=e.type||(e.type={})).ROYALTY="ROYALTY",t.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",t.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",t.PROTOCOL="PROTOCOL"}(JP||(JP={})),function(e){(e.type||(e.type={})).LISTING="LISTING"}(YP||(YP={})),function(e){e.PENDING="PENDING",e.ACTIVE="ACTIVE",e.INACTIVE="INACTIVE",e.FILLED="FILLED",e.EXPIRED="EXPIRED",e.CANCELLED="CANCELLED"}(QP||(QP={})),function(e){(e.order_type||(e.order_type={})).FULL_RESTRICTED="FULL_RESTRICTED"}($P||($P={})),function(e){e.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",e.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",e.PROTOCOL="PROTOCOL",e.ROYALTY="ROYALTY"}(ZP||(ZP={})),function(e){e.APPROVAL="APPROVAL",e.FULFILL_ORDER="FULFILL_ORDER",e.CANCEL="CANCEL"}(eM||(eM={})),function(e){e.CREATE_LISTING="CREATE_LISTING",e.OFF_CHAIN_CANCELLATION="OFF_CHAIN_CANCELLATION"}(tM||(tM={})),function(e){e.TRANSACTION="TRANSACTION",e.SIGNABLE="SIGNABLE"}(nM||(nM={}));const oM="1.5",sM={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 uM,cM,lM,dM;function fM(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"}(uM||(uM={})),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"}(cM||(cM={})),function(e){e[e.OFFER=0]="OFFER",e[e.CONSIDERATION=1]="CONSIDERATION"}(lM||(lM={})),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"}(dM||(dM={}));class pM{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:nM.TRANSACTION,purpose:eM.APPROVAL,buildTransaction:fM(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=cr.from(t.salt).toHexString(),t}(await u.getMessageToSign());return o.push({type:nM.SIGNABLE,purpose:tM.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:nM.TRANSACTION,buildTransaction:fM(u.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:eM.APPROVAL});const c=o.find((e=>"exchange"===e.type));if(!c)throw new Error("No exchange action found");return s.push({type:nM.TRANSACTION,buildTransaction:fM(c.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:eM.FULFILL_ORDER}),{actions:s,expiration:pM.getExpirationISOTimeFromExtraData(n),order:rM(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:nM.TRANSACTION,buildTransaction:fM(a.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:eM.APPROVAL});const o=r.find((e=>"exchange"===e.type));if(!o)throw new Error("No exchange action found");return i.push({type:nM.TRANSACTION,buildTransaction:fM(o.transactionMethods,(await this.provider.getNetwork()).chainId),purpose:eM.FULFILL_ORDER}),{actions:i,expiration:n.map((e=>pM.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:nM.TRANSACTION,buildTransaction:fM(i,(await this.provider.getNetwork()).chainId),purpose:eM.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:cM.NATIVE,recipient:e.account_address,token:Ji,identifierOrCriteria:"0"};case"ERC20":return{startAmount:t.amount,endAmount:t.amount,itemType:cM.ERC20,recipient:e.account_address,token:t.contract_address||Ji,identifierOrCriteria:"0"};default:return{startAmount:"1",endAmount:"1",itemType:cM.ERC721,recipient:e.account_address,token:t.contract_address||Ji,identifierOrCriteria:"0"}}})),i=e.fees.map((t=>({amount:t.amount,itemType:"ERC20"===e.buy[0].type?cM.ERC20:cM.NATIVE,recipient:t.recipient_address,token:"ERC20"===e.buy[0].type?e.buy[0].contract_address:Ji,identifierOrCriteria:"0"})));return{orderComponents:{conduitKey:ia,consideration:[...r],offer:e.sell.map((e=>{const t=e;return{startAmount:"1",endAmount:"1",itemType:cM.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:uM.FULL_RESTRICTED,zoneHash:ia},tips:i}}(e,e.protocol_data.counter,this.zoneContractAddress)}createSeaportOrder(e,t,n,r,i){return this.getSeaportLib().createOrder({allowPartialFills:!1,offer:[{itemType:cM.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:oM,chainId:t,verifyingContract:this.seaportContractAddress},types:sM,value:e}}getSeaportLib(e){const t=e?.protocol_data?.seaport_address??this.seaportContractAddress,n=oM;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 hM{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)!==cM.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)===cM.NATIVE?"NATIVE":"ERC20",amount:t.consideration[0].startAmount,contract_address:t.consideration[0].token}],fees:r.map((e=>({amount:e.amount,type:ZP.MAKER_ECOSYSTEM,recipient_address:e.recipientAddress}))),end_at:new Date(parseInt(`${t.endTime.toString()}000`,10)).toISOString(),order_hash:e,protocol_data:{order_type:$P.order_type.FULL_RESTRICTED,zone_address:t.zone,seaport_address:this.seaportAddress,seaport_version:oM,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 mM{chainName;seaportAddress;orderbookClient;constructor(e,t,n){this.chainName=t,this.seaportAddress=n,this.orderbookClient=new VP({BASE:e})}create(){return new hM(this.orderbookClient.orders,this.chainName,this.seaportAddress)}}class yM{defaultSeaportContractAddress;provider;constructor(e,t){this.defaultSeaportContractAddress=e,this.provider=t}create(e,t){const n=e??oM,r=t??this.defaultSeaportContractAddress;return new YO.Seaport(this.provider,{seaportVersion:n,balanceAndApprovalChecksOnOrderCreation:!0,overrides:{contractAddress:r}})}}class gM{apiClient;seaport;orderbookConfig;constructor(e){const t={...function(e){switch(e){case mt.SANDBOX:return{seaportContractAddress:"0x7d117aA8BD6D31c4fa91722f246388f38ab1942c",zoneContractAddress:"0x8831867E347AB87FA30199C5B695F0A31604Bb52",apiEndpoint:"https://api.sandbox.immutable.com",chainName:"imtbl-zkevm-testnet",provider:new yp("https://rpc.testnet.immutable.com")};case mt.PRODUCTION:return{seaportContractAddress:"0x6c12aD6F0bD274191075Eb2E78D7dA5ba6453424",zoneContractAddress:"0x00338b92Bec262078B3e49BF12bbEA058916BF91",apiEndpoint:"https://api.immutable.com",chainName:"imtbl-zkevm-mainnet",provider:new yp("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 mM(n,r,this.orderbookConfig.seaportContractAddress).create();const i=new yM(this.orderbookConfig.seaportContractAddress,this.orderbookConfig.provider);this.seaport=new pM(i,this.orderbookConfig.provider,this.orderbookConfig.seaportContractAddress,this.orderbookConfig.zoneContractAddress)}config(){return this.orderbookConfig}async getListing(e){return{result:rM((await this.apiClient.getListing(e)).result)}}async getTrade(e){return{result:iM((await this.apiClient.getTrade(e)).result)}}async listListings(e){const t=await this.apiClient.listListings(e);return{page:aM(t.page),result:t.result.map(rM)}}async listTrades(e){const t=await this.apiClient.listTrades(e);return{page:aM(t.page),result:t.result.map(iM)}}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:rM((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:ZP.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!==QP.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:ZP.TAKER_ECOSYSTEM,recipient_address:e.recipientAddress})))}))));try{return{...await this.seaport.fulfillBulkOrders(n.result.fulfillable_orders,t),fulfillableOrders:n.result.fulfillable_orders.map((e=>rM(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=>rM(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:tM.OFF_CHAIN_CANCELLATION,type:nM.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!==QP.ACTIVE&&e.result.status.name!==QP.INACTIVE&&e.result.status.name!==QP.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 bM=4e5,vM="https://api.sandbox.immutable.com".replace(/\/+$/,"");class TM{basePath;axios;configuration;constructor(e,t=vM,n=$e){this.basePath=t,this.axios=n,e&&(this.configuration=e,this.basePath=e.basePath||this.basePath)}}class wM extends Error{field;constructor(e,t){super(t),this.field=e,this.name="RequiredError"}}const AM="https://example.com",EM=function(e,t,n){if(null==n)throw new wM(t,`Required parameter ${t} was null or undefined when calling ${e}.`)},_M=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}},IM=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 RM(e,t,n=""){null!=t&&("object"==typeof t?Array.isArray(t)?t.forEach((t=>RM(e,t,n))):Object.keys(t).forEach((r=>RM(e,t[r],`${n}${""!==n?".":""}${r}`))):e.has(n)?e.append(n,t):e.set(n,t))}const CM=function(e,...t){const n=new URLSearchParams(e.search);RM(n,t),e.search=n.toString()},OM=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||""},kM=function(e){return e.pathname+e.search+e.hash},SM=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)}},NM=function(e){return{getActivity:async(t,n,r={})=>{EM("getActivity","chainName",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};CM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:kM(a),options:s}},listActivities:async(t,n,r,i,a,o,s,u,c={})=>{EM("listActivities","chainName",t);const l="/v1/chains/{chain_name}/activities".replace("{chain_name}",encodeURIComponent(String(t))),d=new URL(l,AM);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),CM(d,h);let m=f&&f.headers?f.headers:{};return p.headers={...m,...c.headers},{url:kM(d),options:p}},listActivityHistory:async(t,n,r,i,a,o,s={})=>{EM("listActivityHistory","chainName",t),EM("listActivityHistory","fromUpdatedAt",n);const u="/v1/chains/{chain_name}/activity-history".replace("{chain_name}",encodeURIComponent(String(t))),c=new URL(u,AM);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),CM(c,f);let p=l&&l.headers?l.headers:{};return d.headers={...p,...s.headers},{url:kM(c),options:d}}}},xM=function(e){const t=NM(e);return{async getActivity(n,r,i){const a=await t.getActivity(n,r,i);return SM(a,$e,vM,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 SM(d,$e,vM,e)},async listActivityHistory(n,r,i,a,o,s,u){const c=await t.listActivityHistory(n,r,i,a,o,s,u);return SM(c,$e,vM,e)}}};const PM=function(e){return{listChains:async(t,n,r={})=>{const i=new URL("/v1/chains",AM);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),CM(i,s);let u=a&&a.headers?a.headers:{};return o.headers={...u,...r.headers},{url:kM(i),options:o}}}},MM=function(e){const t=PM(e);return{async listChains(n,r,i){const a=await t.listChains(n,r,i);return SM(a,$e,vM,e)}}};const BM=function(e){return{getCollection:async(t,n,r={})=>{EM("getCollection","contractAddress",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};CM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:kM(a),options:s}},listCollections:async(t,n,r,i,a,o={})=>{EM("listCollections","chainName",t);const s="/v1/chains/{chain_name}/collections".replace("{chain_name}",encodeURIComponent(String(t))),u=new URL(s,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}},listCollectionsByNFTOwner:async(t,n,r,i,a={})=>{EM("listCollectionsByNFTOwner","accountAddress",t),EM("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,AM);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),CM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:kM(s),options:c}},refreshCollectionMetadata:async(t,n,r,i={})=>{EM("refreshCollectionMetadata","contractAddress",t),EM("refreshCollectionMetadata","chainName",n),EM("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,AM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await _M(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",CM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=OM(r,u,e),{url:kM(o),options:u}}}},DM=function(e){const t=BM(e);return{async getCollection(n,r,i){const a=await t.getCollection(n,r,i);return SM(a,$e,vM,e)},async listCollections(n,r,i,a,o,s){const u=await t.listCollections(n,r,i,a,o,s);return SM(u,$e,vM,e)},async listCollectionsByNFTOwner(n,r,i,a,o){const s=await t.listCollectionsByNFTOwner(n,r,i,a,o);return SM(s,$e,vM,e)},async refreshCollectionMetadata(n,r,i,a){const o=await t.refreshCollectionMetadata(n,r,i,a);return SM(o,$e,vM,e)}}};const FM=function(e){return{getMetadata:async(t,n,r,i={})=>{EM("getMetadata","chainName",t),EM("getMetadata","contractAddress",n),EM("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,AM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};CM(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:kM(o),options:u}},listMetadata:async(t,n,r,i,a,o={})=>{EM("listMetadata","chainName",t),EM("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,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}},listMetadataForChain:async(t,n,r,i,a={})=>{EM("listMetadataForChain","chainName",t);const o="/v1/chains/{chain_name}/metadata".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,AM);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),CM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:kM(s),options:c}},refreshMetadataByID:async(t,n,r,i={})=>{EM("refreshMetadataByID","chainName",t),EM("refreshMetadataByID","contractAddress",n),EM("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,AM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await _M(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",CM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=OM(r,u,e),{url:kM(o),options:u}},refreshNFTMetadataByTokenID:async(t,n,r,i={})=>{EM("refreshNFTMetadataByTokenID","contractAddress",t),EM("refreshNFTMetadataByTokenID","chainName",n),EM("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,AM);let s;e&&(s=e.baseOptions);const u={method:"POST",...s,...i},c={};await _M(c,"x-immutable-api-key",e),c["Content-Type"]="application/json",CM(o,{});let l=s&&s.headers?s.headers:{};return u.headers={...c,...l,...i.headers},u.data=OM(r,u,e),{url:kM(o),options:u}}}},LM=function(e){const t=FM(e);return{async getMetadata(n,r,i,a){const o=await t.getMetadata(n,r,i,a);return SM(o,$e,vM,e)},async listMetadata(n,r,i,a,o,s){const u=await t.listMetadata(n,r,i,a,o,s);return SM(u,$e,vM,e)},async listMetadataForChain(n,r,i,a,o){const s=await t.listMetadataForChain(n,r,i,a,o);return SM(s,$e,vM,e)},async refreshMetadataByID(n,r,i,a){const o=await t.refreshMetadataByID(n,r,i,a);return SM(o,$e,vM,e)},async refreshNFTMetadataByTokenID(n,r,i,a){const o=await t.refreshNFTMetadataByTokenID(n,r,i,a);return SM(o,$e,vM,e)}}};const UM=function(e){return{listAllNFTOwners:async(t,n,r,i,a={})=>{EM("listAllNFTOwners","chainName",t);const o="/v1/chains/{chain_name}/nft-owners".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,AM);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),CM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:kM(s),options:c}},listNFTOwners:async(t,n,r,i,a,o={})=>{EM("listNFTOwners","contractAddress",t),EM("listNFTOwners","tokenId",n),EM("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,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}},listOwnersByContractAddress:async(t,n,r,i,a,o={})=>{EM("listOwnersByContractAddress","contractAddress",t),EM("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,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}}}},qM=function(e){const t=UM(e);return{async listAllNFTOwners(n,r,i,a,o){const s=await t.listAllNFTOwners(n,r,i,a,o);return SM(s,$e,vM,e)},async listNFTOwners(n,r,i,a,o,s){const u=await t.listNFTOwners(n,r,i,a,o,s);return SM(u,$e,vM,e)},async listOwnersByContractAddress(n,r,i,a,o,s){const u=await t.listOwnersByContractAddress(n,r,i,a,o,s);return SM(u,$e,vM,e)}}};const jM=function(e){return{getNFT:async(t,n,r,i={})=>{EM("getNFT","contractAddress",t),EM("getNFT","tokenId",n),EM("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,AM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i};CM(o,{});let c=s&&s.headers?s.headers:{};return u.headers={...c,...i.headers},{url:kM(o),options:u}},listAllNFTs:async(t,n,r,i,a={})=>{EM("listAllNFTs","chainName",t);const o="/v1/chains/{chain_name}/nfts".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,AM);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),CM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:kM(s),options:c}},listNFTs:async(t,n,r,i,a,o={})=>{EM("listNFTs","contractAddress",t),EM("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,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}},listNFTsByAccountAddress:async(t,n,r,i,a,o={})=>{EM("listNFTsByAccountAddress","accountAddress",t),EM("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,AM);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),CM(u,d);let f=c&&c.headers?c.headers:{};return l.headers={...f,...o.headers},{url:kM(u),options:l}}}},GM=function(e){const t=jM(e);return{async getNFT(n,r,i,a){const o=await t.getNFT(n,r,i,a);return SM(o,$e,vM,e)},async listAllNFTs(n,r,i,a,o){const s=await t.listAllNFTs(n,r,i,a,o);return SM(s,$e,vM,e)},async listNFTs(n,r,i,a,o,s){const u=await t.listNFTs(n,r,i,a,o,s);return SM(u,$e,vM,e)},async listNFTsByAccountAddress(n,r,i,a,o,s){const u=await t.listNFTsByAccountAddress(n,r,i,a,o,s);return SM(u,$e,vM,e)}}};const HM=function(e){return{cancelOrders:async(t,n,r={})=>{EM("cancelOrders","chainName",t),EM("cancelOrders","cancelOrdersRequestBody",n);const i="/v1/chains/{chain_name}/orders/cancel".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,AM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=OM(n,s,e),{url:kM(a),options:s}},createListing:async(t,n,r={})=>{EM("createListing","chainName",t),EM("createListing","createListingRequestBody",n);const i="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,AM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=OM(n,s,e),{url:kM(a),options:s}},fulfillmentData:async(t,n,r={})=>{EM("fulfillmentData","chainName",t),EM("fulfillmentData","fulfillmentDataRequest",n);const i="/v1/chains/{chain_name}/orders/fulfillment-data".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,AM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};u["Content-Type"]="application/json",CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=OM(n,s,e),{url:kM(a),options:s}},getListing:async(t,n,r={})=>{EM("getListing","chainName",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};CM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:kM(a),options:s}},getTrade:async(t,n,r={})=>{EM("getTrade","chainName",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};CM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:kM(a),options:s}},listListings:async(t,n,r,i,a,o,s,u,c,l,d,f,p={})=>{EM("listListings","chainName",t);const h="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(t))),m=new URL(h,AM);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),CM(m,b);let v=y&&y.headers?y.headers:{};return g.headers={...v,...p.headers},{url:kM(m),options:g}},listTrades:async(t,n,r,i,a,o,s,u={})=>{EM("listTrades","chainName",t);const c="/v1/chains/{chain_name}/trades".replace("{chain_name}",encodeURIComponent(String(t))),l=new URL(c,AM);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),CM(l,p);let h=d&&d.headers?d.headers:{};return f.headers={...h,...u.headers},{url:kM(l),options:f}}}},zM=function(e){const t=HM(e);return{async cancelOrders(n,r,i){const a=await t.cancelOrders(n,r,i);return SM(a,$e,vM,e)},async createListing(n,r,i){const a=await t.createListing(n,r,i);return SM(a,$e,vM,e)},async fulfillmentData(n,r,i){const a=await t.fulfillmentData(n,r,i);return SM(a,$e,vM,e)},async getListing(n,r,i){const a=await t.getListing(n,r,i);return SM(a,$e,vM,e)},async getTrade(n,r,i){const a=await t.getTrade(n,r,i);return SM(a,$e,vM,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 SM(m,$e,vM,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 SM(l,$e,vM,e)}}};const WM=function(e){return{createCounterfactualAddress:async(t,n,r={})=>{EM("createCounterfactualAddress","chainName",t),EM("createCounterfactualAddress","createCounterfactualAddressRequest",n);const i="/v1/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,AM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};await IM(u,e),u["Content-Type"]="application/json",CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=OM(n,s,e),{url:kM(a),options:s}},createCounterfactualAddressDeprecated:async(t,n={})=>{EM("createCounterfactualAddressDeprecated","createCounterfactualAddressRequestDeprecated",t);const r=new URL("/passport-mr/v1/counterfactual-address",AM);let i;e&&(i=e.baseOptions);const a={method:"POST",...i,...n},o={};await IM(o,e),o["Content-Type"]="application/json",CM(r,{});let s=i&&i.headers?i.headers:{};return a.headers={...o,...s,...n.headers},a.data=OM(t,a,e),{url:kM(r),options:a}},createCounterfactualAddressV2:async(t,n,r={})=>{EM("createCounterfactualAddressV2","chainName",t),EM("createCounterfactualAddressV2","createCounterfactualAddressRequest",n);const i="/v2/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(t))),a=new URL(i,AM);let o;e&&(o=e.baseOptions);const s={method:"POST",...o,...r},u={};await IM(u,e),u["Content-Type"]="application/json",CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},s.data=OM(n,s,e),{url:kM(a),options:s}},getContractAbi:async(t,n,r,i={})=>{EM("getContractAbi","chainName",t),EM("getContractAbi","contractAddress",n),EM("getContractAbi","methodId",r);const a="/v1/chains/{chain_name}/passport/transaction-metadata".replace("{chain_name}",encodeURIComponent(String(t))),o=new URL(a,AM);let s;e&&(s=e.baseOptions);const u={method:"GET",...s,...i},c={},l={};await IM(c,e),void 0!==n&&(l.contract_address=n),void 0!==r&&(l.method_id=r),CM(o,l);let d=s&&s.headers?s.headers:{};return u.headers={...c,...d,...i.headers},{url:kM(o),options:u}},getLinkedAddresses:async(t,n,r={})=>{EM("getLinkedAddresses","userId",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r},u={};await IM(u,e),CM(a,{});let c=o&&o.headers?o.headers:{};return s.headers={...u,...c,...r.headers},{url:kM(a),options:s}},getLinkedAddressesDeprecated:async(t,n={})=>{EM("getLinkedAddressesDeprecated","userId",t);const r="/passport-mr/v1/users/{userId}/linked-addresses".replace("{userId}",encodeURIComponent(String(t))),i=new URL(r,AM);let a;e&&(a=e.baseOptions);const o={method:"GET",...a,...n},s={};await IM(s,e),CM(i,{});let u=a&&a.headers?a.headers:{};return o.headers={...s,...u,...n.headers},{url:kM(i),options:o}}}},VM=function(e){const t=WM(e);return{async createCounterfactualAddress(n,r,i){const a=await t.createCounterfactualAddress(n,r,i);return SM(a,$e,vM,e)},async createCounterfactualAddressDeprecated(n,r){const i=await t.createCounterfactualAddressDeprecated(n,r);return SM(i,$e,vM,e)},async createCounterfactualAddressV2(n,r,i){const a=await t.createCounterfactualAddressV2(n,r,i);return SM(a,$e,vM,e)},async getContractAbi(n,r,i,a){const o=await t.getContractAbi(n,r,i,a);return SM(o,$e,vM,e)},async getLinkedAddresses(n,r,i){const a=await t.getLinkedAddresses(n,r,i);return SM(a,$e,vM,e)},async getLinkedAddressesDeprecated(n,r){const i=await t.getLinkedAddressesDeprecated(n,r);return SM(i,$e,vM,e)}}};const KM=function(e){return{getERC20Token:async(t,n,r={})=>{EM("getERC20Token","contractAddress",t),EM("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,AM);let o;e&&(o=e.baseOptions);const s={method:"GET",...o,...r};CM(a,{});let u=o&&o.headers?o.headers:{};return s.headers={...u,...r.headers},{url:kM(a),options:s}},listERC20Tokens:async(t,n,r,i,a={})=>{EM("listERC20Tokens","chainName",t);const o="/v1/chains/{chain_name}/tokens".replace("{chain_name}",encodeURIComponent(String(t))),s=new URL(o,AM);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),CM(s,l);let d=u&&u.headers?u.headers:{};return c.headers={...d,...a.headers},{url:kM(s),options:c}}}},XM=function(e){const t=KM(e);return{async getERC20Token(n,r,i){const a=await t.getERC20Token(n,r,i);return SM(a,$e,vM,e)},async listERC20Tokens(n,r,i,a,o){const s=await t.listERC20Tokens(n,r,i,a,o);return SM(s,$e,vM,e)}}};var JM=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 TM{getActivity(e,t){return xM(this.configuration).getActivity(e.chainName,e.activityId,t).then((e=>e(this.axios,this.basePath)))}listActivities(e,t){return xM(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 xM(this.configuration).listActivityHistory(e.chainName,e.fromUpdatedAt,e.toUpdatedAt,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ActivitiesApiAxiosParamCreator:NM,ActivitiesApiFactory:function(e,t,n){const r=xM(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:xM,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 TM{listChains(e={},t){return MM(this.configuration).listChains(e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},ChainsApiAxiosParamCreator:PM,ChainsApiFactory:function(e,t,n){const r=MM(e);return{listChains:(e={},i)=>r.listChains(e.pageCursor,e.pageSize,i).then((e=>e(n,t)))}},ChainsApiFp:MM,CollectionContractType:{Erc721:"ERC721",Erc1155:"ERC1155"},CollectionsApi:class extends TM{getCollection(e,t){return DM(this.configuration).getCollection(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listCollections(e,t){return DM(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 DM(this.configuration).listCollectionsByNFTOwner(e.accountAddress,e.chainName,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshCollectionMetadata(e,t){return DM(this.configuration).refreshCollectionMetadata(e.contractAddress,e.chainName,e.refreshCollectionMetadataRequest,t).then((e=>e(this.axios,this.basePath)))}},CollectionsApiAxiosParamCreator:BM,CollectionsApiFactory:function(e,t,n){const r=DM(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:DM,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 TM{getMetadata(e,t){return LM(this.configuration).getMetadata(e.chainName,e.contractAddress,e.metadataId,t).then((e=>e(this.axios,this.basePath)))}listMetadata(e,t){return LM(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 LM(this.configuration).listMetadataForChain(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}refreshMetadataByID(e,t){return LM(this.configuration).refreshMetadataByID(e.chainName,e.contractAddress,e.refreshMetadataByIDRequest,t).then((e=>e(this.axios,this.basePath)))}refreshNFTMetadataByTokenID(e,t){return LM(this.configuration).refreshNFTMetadataByTokenID(e.contractAddress,e.chainName,e.refreshNFTMetadataByTokenIDRequest,t).then((e=>e(this.axios,this.basePath)))}},MetadataApiAxiosParamCreator:FM,MetadataApiFactory:function(e,t,n){const r=LM(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:LM,MintRequestStatus:{Pending:"pending",Succeeded:"succeeded",Failed:"failed"},NFTContractType:{Erc721:"ERC721"},NativeItemTypeEnum:{Native:"NATIVE",Erc20:"ERC20",Erc721:"ERC721",Erc1155:"ERC1155"},NftOwnersApi:class extends TM{listAllNFTOwners(e,t){return qM(this.configuration).listAllNFTOwners(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTOwners(e,t){return qM(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 qM(this.configuration).listOwnersByContractAddress(e.contractAddress,e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftOwnersApiAxiosParamCreator:UM,NftOwnersApiFactory:function(e,t,n){const r=qM(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:qM,NftsApi:class extends TM{getNFT(e,t){return GM(this.configuration).getNFT(e.contractAddress,e.tokenId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listAllNFTs(e,t){return GM(this.configuration).listAllNFTs(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}listNFTs(e,t){return GM(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 GM(this.configuration).listNFTsByAccountAddress(e.accountAddress,e.chainName,e.contractAddress,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},NftsApiAxiosParamCreator:jM,NftsApiFactory:function(e,t,n){const r=GM(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:GM,OrderStatusName:{Pending:"PENDING",Active:"ACTIVE",Inactive:"INACTIVE",Filled:"FILLED",Expired:"EXPIRED",Cancelled:"CANCELLED"},OrderTypeEnum:{Listing:"LISTING"},OrdersApi:class extends TM{cancelOrders(e,t){return zM(this.configuration).cancelOrders(e.chainName,e.cancelOrdersRequestBody,t).then((e=>e(this.axios,this.basePath)))}createListing(e,t){return zM(this.configuration).createListing(e.chainName,e.createListingRequestBody,t).then((e=>e(this.axios,this.basePath)))}fulfillmentData(e,t){return zM(this.configuration).fulfillmentData(e.chainName,e.fulfillmentDataRequest,t).then((e=>e(this.axios,this.basePath)))}getListing(e,t){return zM(this.configuration).getListing(e.chainName,e.listingId,t).then((e=>e(this.axios,this.basePath)))}getTrade(e,t){return zM(this.configuration).getTrade(e.chainName,e.tradeId,t).then((e=>e(this.axios,this.basePath)))}listListings(e,t){return zM(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 zM(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:HM,OrdersApiFactory:function(e,t,n){const r=zM(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:zM,PassportApi:class extends TM{createCounterfactualAddress(e,t){return VM(this.configuration).createCounterfactualAddress(e.chainName,e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}createCounterfactualAddressDeprecated(e,t){return VM(this.configuration).createCounterfactualAddressDeprecated(e.createCounterfactualAddressRequestDeprecated,t).then((e=>e(this.axios,this.basePath)))}createCounterfactualAddressV2(e,t){return VM(this.configuration).createCounterfactualAddressV2(e.chainName,e.createCounterfactualAddressRequest,t).then((e=>e(this.axios,this.basePath)))}getContractAbi(e,t){return VM(this.configuration).getContractAbi(e.chainName,e.contractAddress,e.methodId,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddresses(e,t){return VM(this.configuration).getLinkedAddresses(e.userId,e.chainName,t).then((e=>e(this.axios,this.basePath)))}getLinkedAddressesDeprecated(e,t){return VM(this.configuration).getLinkedAddressesDeprecated(e.userId,t).then((e=>e(this.axios,this.basePath)))}},PassportApiAxiosParamCreator:WM,PassportApiFactory:function(e,t,n){const r=VM(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:VM,PendingOrderStatusNameEnum:{Pending:"PENDING"},ProtocolDataOrderTypeEnum:{FullRestricted:"FULL_RESTRICTED"},SaleFeeTypeEnum:{Royalty:"ROYALTY"},TokenContractType:{Erc20:"ERC20"},TokensApi:class extends TM{getERC20Token(e,t){return XM(this.configuration).getERC20Token(e.contractAddress,e.chainName,t).then((e=>e(this.axios,this.basePath)))}listERC20Tokens(e,t){return XM(this.configuration).listERC20Tokens(e.chainName,e.fromUpdatedAt,e.pageCursor,e.pageSize,t).then((e=>e(this.axios,this.basePath)))}},TokensApiAxiosParamCreator:KM,TokensApiFactory:function(e,t,n){const r=XM(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:XM});class YM 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 QM={sdkVersion:"ts-immutable-sdk-multi-rollup-api-client-0.44.4"},$M=({baseConfig:e,basePath:t,headers:n})=>{if(!t.trim())throw Error("basePath can not be empty");const r={...e,basePath:t,baseOptions:{headers:{...n||{},...QM}}};return new JM.Configuration(r)};class ZM{apiConfig;baseConfig;constructor({baseConfig:e,overrides:t}){if(this.baseConfig=e,t)this.apiConfig=$M(t);else switch(e.environment){case mt.SANDBOX:this.apiConfig=$M({basePath:"https://api.sandbox.immutable.com",baseConfig:e});break;case mt.PRODUCTION:this.apiConfig=$M({basePath:"https://api.immutable.com",baseConfig:e});break;default:this.apiConfig=$M({basePath:"https://api.sandbox.immutable.com",baseConfig:e})}}}function eB(e){if($e.isAxiosError(e)&&e.response){const t=e.response.data;return t.code&&t.message?new YM({code:t.code,message:t.message,details:t.details||null,link:t.link||"",trace_id:t.trace_id||""}):new YM({code:e.code??e.response?.status.toString()??"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}return new YM({code:"unknown_error_code",message:String(e),details:null,link:"",trace_id:""})}class tB{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;constructor(e){this.config=new ZM(e),this.activities=new JM.ActivitiesApi(this.config.apiConfig),this.chains=new JM.ChainsApi(this.config.apiConfig),this.collections=new JM.CollectionsApi(this.config.apiConfig),this.nfts=new JM.NftsApi(this.config.apiConfig),this.nftOwners=new JM.NftOwnersApi(this.config.apiConfig),this.tokens=new JM.TokensApi(this.config.apiConfig),this.metadata=new JM.MetadataApi(this.config.apiConfig)}async listActivities(e){return await this.activities.listActivities(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listActivityHistory(e){return await this.activities.listActivityHistory(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async getActivity(e){return await this.activities.getActivity(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listChains(e){return await this.chains.listChains(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listCollections(e){return await this.collections.listCollections(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listCollectionsByNFTOwner(e){return await this.collections.listCollectionsByNFTOwner(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async getCollection(e){return await this.collections.getCollection(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async getNFT(e){return await this.nfts.getNFT(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTs(e){return await this.nfts.listNFTs(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTsByAccountAddress(e){return await this.nfts.listNFTsByAccountAddress(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listAllNFTs(e){return await this.nfts.listAllNFTs(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTOwners(e){return await this.nftOwners.listNFTOwners(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTOwnersByContractAddress(e){return await this.nftOwners.listOwnersByContractAddress(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listAllNFTOwners(e){return await this.nftOwners.listAllNFTOwners(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listTokens(e){return await this.tokens.listERC20Tokens(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async getToken(e){return await this.tokens.getERC20Token(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async getMetadata(e){return await this.metadata.getMetadata(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTMetadataByContractAddress(e){return await this.metadata.listMetadata(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async listNFTMetadataByChain(e){return await this.metadata.listMetadataForChain(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async refreshCollectionMetadata(e){return await this.collections.refreshCollectionMetadata(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async refreshNFTMetadata(e){return await this.metadata.refreshNFTMetadataByTokenID(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}async refreshStackedMetadata(e){return await this.metadata.refreshMetadataByID(e).then((e=>e.data)).catch((e=>{throw eB(e)}))}}function nB(t,n,r,i){const a=r.get(t),o=r.get(n);if(!a)throw new sm(`Chain:${t} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);if(!o)throw new sm(`Chain:${n} is not a supported chain`,e.CheckoutErrorType.CHAIN_NOT_SUPPORTED_ERROR);let s=BT;i.isDevelopment&&(s=MT),i.isProduction&&(s=DT);const u=new lw({baseConfig:new yt({environment:i.environment}),bridgeInstance:s,rootProvider:a,childProvider:o});return new iw(u)}async function rB(e,t){const n=await t.remote.getConfig("dex");return new XO({chainId:e,baseConfig:new yt({environment:t.environment}),overrides:n?.overrides,secondaryFees:n?.secondaryFees})}function iB(e){return new gM({baseConfig:{environment:e.environment}})}function aB(e){return new tB({baseConfig:{environment:e.environment}})}const oB="0x0000000000000000000000000000000000000001",sB=18;async function uB(t,n){const r=Sm(n),i=Nm(n);if(!t.get(r))throw new Error(`Missing JsonRpcProvider for chain id: ${r}`);try{const a=nB(r,i,t,n),o=await async function(e,t,n,r){const i=t===Sm(r)?YT.DEPOSIT:YT.WITHDRAW;return await e.getFee({action:i,gasMultiplier:1.1,sourceChainId:t.toString(),destinationChainId:n.toString(),token:mm.toUpperCase(),amount:cr.from(0)})}(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:cr.from(0),approvalFee:cr.from(0),bridgeFee:cr.from(0),imtblFee:cr.from(0),totalFees:cr.from(0)},token:n.networkMap.get(r)?.nativeCurrency}}}async function cB(t,n,r){switch(t.gasEstimateType){case e.GasEstimateType.BRIDGE_TO_L2:return await uB(n,r);case e.GasEstimateType.SWAP:return await async function(t){const n=Nm(t),r=await t.remote.getConfig("gasEstimateTokens"),{inAddress:i,outAddress:a}=r[n].swapAddresses;try{const r=await rB(n,t),{swap:o}=await r.getUnsignedSwapTxFromAmountIn(oB,i,a,cr.from(Fh("1",sB)));return o.gasFeeEstimate?{gasEstimateType:e.GasEstimateType.SWAP,fees:{totalFees:o.gasFeeEstimate.value?cr.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??sB}}}:{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}catch{return{gasEstimateType:e.GasEstimateType.SWAP,fees:{}}}}(r);default:throw new sm("Invalid type provided for gasEstimateType",e.CheckoutErrorType.INVALID_GAS_ESTIMATE_TYPE)}}const lB=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=cr.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=cr.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),dB=async(t,n,r,i)=>{try{const e=new Cl(r,JSON.stringify(_m),t);return await e.allowance(n,i)}catch(t){throw new sm("Failed to get the allowance for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r,error:t})}},fB=async(t,n,r,i,a)=>{try{const e=new Cl(r,JSON.stringify(_m),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch(t){throw new sm("Failed to get the approval transaction for ERC20",e.CheckoutErrorType.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:r,error:t})}},pB=async(t,n,r,i)=>{try{const e=new Cl(r,JSON.stringify(Im),t);return await e.isApprovedForAll(n,i)}catch(t){throw new sm("Failed to check approval for all ERC721s of collection",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{ownerAddress:n,contractAddress:r,spenderAddress:i,error:t})}},hB=async(t,n,r,i,a)=>{try{const e=new Cl(r,JSON.stringify(Im),t),o=await e.populateTransaction.approve(i,a);return o&&(o.from=n),o}catch(t){throw new sm("Failed to get the approval transaction for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:a.toString(),contractAddress:r,spenderAddress:i,ownerAddress:n,error:t})}},mB=async(t,n,r)=>{try{const e=new Cl(n,JSON.stringify(Im),t);return await e.getApproved(r)}catch(t){throw new sm("Failed to get approved address for ERC721",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:r.toString(),contractAddress:n,error:t})}},yB=(t,n)=>{const r=parseInt(t,10);if(Number.isNaN(r))throw new sm("Invalid ERC721 ID",e.CheckoutErrorType.GET_ERC721_ALLOWANCE_ERROR,{id:t,contractAddress:n});return r},gB=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,pB(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=yB(i,r);o.set(d,n),s.set(d,mB(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=yB(p,l);u.set(m,{type:e.ItemType.ERC721,sufficient:!1,itemRequirement:s,approvalTransaction:void 0}),c.set(m,hB(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()))}},bB=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=cr.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=cr.from(o.amount).add(a):n.set(i,{...t})})),r.concat(Array.from(n.values()))})(t))),vB=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:mm};case e.ItemType.ERC721:default:return{address:t.contractAddress}}})))(i).forEach((e=>{e.address&&a.set(e.address.toLocaleLowerCase(),e)}));const{balances:o}=await zm(t,n,r,Nm(t));return o.filter((e=>a.get((e.token.address||mm).toLocaleLowerCase())))}catch(t){throw new sm("Failed to get balances",e.CheckoutErrorType.GET_BALANCE_ERROR,{error:t})}},TB=async(t,n,r,i)=>{const a=bB(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 sm("Unsupported item requirement balance check",e.CheckoutErrorType.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR);const u=[];o.length>0&&u.push(vB(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 Cl(n.contractAddress,JSON.stringify(Im),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&&Pm(n,t)&&(u=1),i.push({type:e.ItemType.ERC721,balance:cr.from(u),formattedBalance:u.toString(),contractAddress:s.contractAddress,id:s.id})}))}catch(t){throw new sm("Failed to get ERC721 balances",e.CheckoutErrorType.GET_ERC721_BALANCE_ERROR,{error:t})}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=>Pm(e.token?.address,t.tokenAddress))):t.type===e.ItemType.NATIVE&&(r=n.find((e=>Bm(e.token?.address))));const i=t.amount,a=i.isNegative()||i.isZero()||(r?.balance.gte(i)??!1),o=i.sub(r?.balance??cr.from(0));let s="",u="",c=hm;r&&(c=r.token?.decimals??hm,s=r.token.name,u=r.token.symbol);let l=r;return t.type===e.ItemType.NATIVE?(l||(l={type:e.ItemType.NATIVE,balance:cr.from(0),formattedBalance:"0",token:ym}),{sufficient:a,type:e.ItemType.NATIVE,delta:{balance:o,formattedBalance:Dh(o,c)},current:{...l,type:e.ItemType.NATIVE},required:{...l,type:e.ItemType.NATIVE,balance:cr.from(t.amount),formattedBalance:Dh(t.amount,c)}}):(l||(l={type:t.type,balance:cr.from(0),formattedBalance:"0",token:{name:s,symbol:u,address:t.tokenAddress,decimals:c}}),{sufficient:a,type:e.ItemType.ERC20,delta:{balance:o,formattedBalance:Dh(o,c)},current:l,required:{...l,balance:cr.from(t.amount),formattedBalance:Dh(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=cr.from(1),i=n.find((e=>{const n=e;return Pm(n.contractAddress,t.contractAddress)&&n.id===t.id})),a=r.isNegative()||r.isZero()||(i?.balance.gte(r)??!1),o=r.sub(i?.balance??cr.from(0));let s=i;return s||(s={type:e.ItemType.ERC721,balance:cr.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:cr.from(1),formattedBalance:"1"}}})(n,t))}))}return{sufficient:void 0===l.find((e=>!1===e.sufficient)),balanceRequirements:l}},wB=async(t,n)=>{try{return await t.estimateGas(n)}catch(t){throw new sm("Failed to estimate gas for transaction",e.CheckoutErrorType.UNPREDICTABLE_GAS_LIMIT,{error:t})}},AB=async(t,n,r)=>{const i=[];let a=cr.from(0);for(const e of n)void 0!==e.approvalTransaction&&i.push(wB(t,e.approvalTransaction));if(r.type===e.TransactionOrGasType.TRANSACTION)i.push(wB(t,r.transaction));else{const e=(e=>(e=>!!e.maxFeePerGas&&!!e.maxPriorityFeePerGas)(e)?cr.from(e.maxFeePerGas).add(cr.from(e.maxPriorityFeePerGas)):e.gasPrice?cr.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)},EB=(t,n)=>({checkDexAvailability:async()=>{let r;try{r=await $e.post(`${t?gm[pm]:n?gm[mt.PRODUCTION]:gm[mt.SANDBOX]}/v1/availability/checkout/swap`)}catch(t){if(r=t.response,403===r.status)return!1;throw new sm(`Error fetching from api: ${r.status} ${r.statusText}`,e.CheckoutErrorType.API_ERROR,{error:t})}return!0}}),_B=async()=>!0,IB=async e=>{const t=EB(e.isDevelopment,e.isProduction);try{return await t.checkDexAvailability()}catch{return!1}};async function RB(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 lm(t,{type:e.NetworkFilterTypes.ALL})).networks.forEach((e=>{const n=t.networkMap.get(e.chainId)?.rpcUrls[0],i=new yp(n);r.set(e.chainId,i)})),r}const CB=async(e,t,n,r,i)=>{const a=new Map;try{const o=await rB(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 qm(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}},OB=(t,n,r)=>{let i,a=cr.from(0),o="0";t&&(a=t.value,o=Dh(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=cr.from(0),c="0";n&&(u=n.value,c=Dh(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:Dh(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}},kB=(t,n,r,i)=>{const a=r.token.address;let o=e.ItemType.ERC20;return Bm(a)&&(o=e.ItemType.NATIVE),{type:e.FundingStepType.SWAP,chainId:t,fundingItem:{type:o,fundsRequired:{amount:n,formattedAmount:Dh(n,r.token.decimals)},userBalance:{balance:r.balance,formattedBalance:r.formattedBalance},token:r.token},fees:i}},SB=(e,t)=>{if(!t)return{sufficient:!0,approvalGasFee:cr.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=>Bm(e.token.address)&&Bm(r)||Pm(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}},NB=(e,t,n,r,i)=>{const a=new Map;if(t.approvalGasFee.gt(cr.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===cr.from(0))continue;const r=e.find((e=>Bm(e.token.address)&&Bm(t)||Pm(e.token.address,t)));if(!r)return!1;if(r.balance.lt(n))return!1}return!0},xB=(t,n,r,i,a,o)=>{let s=cr.from(0),u="",c=!1;if(n.balanceRequirements.forEach((n=>{n.type!==e.ItemType.NATIVE&&n.type!==e.ItemType.ERC20||n.required.token.address&&Pm(n.required.token.address,r)&&(u=n.required.token.address,c=!0,s=t.sub(n.required.balance))})),!c)return!0;Pm(a.approvalGasTokenAddress,u)&&(s=s.sub(a.approvalGasFee));for(const e of o)Pm(e.amount.token.address,u)&&(s=s.sub(e.amount.value));return s.gte(i)},PB=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&&Bm(t.required.token.address))(i))return u;const c=(t=>{let n="",r=cr.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=Nm(t),d=a.get(l);if(!d)return u;const f=d.balances;if(0===f.length)return u;const p=await CB(t,Nm(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=>Pm(t.token.address,e)));if(!n)continue;const r=t.quote.amount;if(n.balance.lt(r.value))continue;const i=SB(f,t.approval);if(!i.sufficient)continue;if(!NB(f,i,t.swap,t.quote.fees,{amount:r.value,address:e}))continue;if(!xB(n.balance,s,e,r.value,i,t.quote.fees))continue;const a=OB(t.approval,t.swap,t.quote.fees);u.push(kB(l,r.value,n,a))}return u},MB=(e,t)=>t&&t.success?e.filter((e=>"address"in e?t.balances.find((t=>Pm(t.token.address,e.address)&&t.balance.gt(0))):t.balances.find((e=>!("address"in e.token)&&e.balance.gt(0))))):[],BB=async(t,n)=>{if(n.onRamp){return(await Mm(t,{type:e.TokenFilterTypes.ONRAMP})).tokens}return[]},DB=async(t,n,r)=>{if(r.bridge){const r=Sm(t),i=(await Mm(t,{type:e.TokenFilterTypes.BRIDGE,chainId:r})).tokens,a=n.get(r);return MB(i,a)}return[]},FB=async(t,n,r)=>{const i={};return i.swap=await(async(t,n,r)=>{if(r.swap){const r=(await Mm(t,{type:e.TokenFilterTypes.SWAP})).tokens,i=n.get(Nm(t));return MB(r,i)}return[]})(t,n,r),i.bridge=await DB(t,n,r),i.onRamp=await BB(t,r),i},LB="0x0000000000000000000000000000000000000eee",UB=async(e,t)=>(await t.remote.getConfig("imxAddressMapping"))[e]??"",qB=async(t,n)=>{if(Bm(n))return{l1address:await UB(Sm(t),t),l2address:mm};const r=(i=Nm(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=aB(t),o=(await a.getToken({chainName:r,contractAddress:n})).result.root_contract_address;return Pm(o??"",LB)?{l1address:"native",l2address:n}:null!==o?{l1address:o,l2address:n}:void 0},jB=(e,t)=>(e=>{for(const t of e.balances)if(Bm(t.token.address))return t.balance;return cr.from(0)})(e).gte(t),GB=(t,n,r,i,a)=>{const o=a?.decimals??hm,s=[];return n.gt(0)&&s.push({type:e.FeeType.BRIDGE_FEE,amount:n,formattedAmount:Dh(n,o),token:a}),r.gt(0)&&s.push({type:e.FeeType.IMMUTABLE_FEE,amount:r,formattedAmount:Dh(r,o),token:a}),{approvalGasFee:{type:e.FeeType.GAS,amount:i,formattedAmount:Dh(i,hm),token:a},bridgeGasFee:{type:e.FeeType.GAS,amount:t,formattedAmount:Dh(t,hm),token:a},bridgeFees:s}},HB=(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}),zB=async(t,n,r,i,a)=>{if(!r.bridge)return;const o=Sm(t),s=Nm(t),u=t.networkMap.get(o)?.nativeCurrency,c=a.get(o);if(!n.get(o))throw new sm("No L1 provider available",e.CheckoutErrorType.PROVIDER_ERROR,{chainId:o.toString()});if(void 0===c||!1===c.success)return;const l=await DB(t,a,r);if(0===l.length)return;const d=await qB(t,i.l2address);if(!d)return;const{l1address:f}=d;if(Bm(f)){if(!l.find((e=>Bm(e.address))))return}else if(!l.find((e=>Pm(e.address,f))))return;const p=await(async(t,n,r,i)=>{const a=nB(r,i,n,t);try{return{...await a.getFee({action:YT.DEPOSIT,gasMultiplier:1.1,sourceChainId:r.toString(),destinationChainId:i.toString()}),approvalGas:cr.from(0)}}catch(t){throw new sm("Error estimating gas for bridge",e.CheckoutErrorType.BRIDGE_GAS_ESTIMATE_ERROR,{error:t})}})(t,n,o,s),{sourceChainGas:h,approvalGas:m,bridgeFee:y,imtblFee:g,totalFees:b}=p;if(!jB(c,b))return;if(Bm(f)){const t=c.balances.find((e=>Bm(e.token.address)));if(t&&t.balance.gte(i.amount.add(b))){const n=GB(h,y,g,m,u);return HB(o,t,i,e.ItemType.NATIVE,n)}return}const v=c.balances.find((e=>Pm(e.token.address,f)));if(v&&v.balance.gte(i.amount)){const t=GB(h,y,g,m,u);return HB(o,v,i,e.ItemType.ERC20,t)}},WB=(e,t)=>{let n=cr.from(0);return e.quote.fees.forEach((e=>{Pm(e.amount.token.address,t)&&(n=n.add(e.amount.value))})),e.approval&&Pm(e.approval.token.address,t)&&(n=n.add(e.approval.value)),n},VB=(t,n)=>{for(const r of t.balanceRequirements)if((r.type===e.ItemType.NATIVE||r.type===e.ItemType.ERC20)&&Pm(r.required.token.address,n))return r.required.balance;return cr.from(0)},KB=(e,t,n)=>{const r=n?.balance??cr.from(0);if(r.gte(e.add(t)))return cr.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)},XB=async(e,t,n,r,i,a,o,s,u)=>{const{l1balances:c,l2balances:l}=((e,t)=>{const n={l1balances:[],l2balances:[]},r=t.get(Sm(e)),i=t.get(Nm(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=>qB(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(Pm(a.l2address,e))continue;const r=n.find((e=>Pm(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 CB(e,Nm(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=>Pm(e.token.address,o))),u=r.find((e=>Pm(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||!Pm(c,LB))||Pm(e.token.address,c)));if(!d)continue;const f=s.quote.amountWithMaxSlippage.value,p=WB(s,o),h=f.add(p),m=VB(i,o),y=KB(h,m,e);y.lte(0)||y.gte(d.balance)||a.push({amount:y,formattedAmount:Dh(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,zB(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=cr.from(0);const a=o.get(n);a&&(r=a.balance);const s=r.add(t),u=i.find((e=>Pm(e.address,n)));o.set(n,{balance:s,formattedBalance:Dh(s,u.decimals),token:u})}const s=Array.from(o.values());return a.set(Nm(e),{success:!0,balances:s}),a})(e,a,l,b,s),E=await PB(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=cr.from(0),u="0";const c=o.balances.find((e=>Pm(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?Pm(e.l1address,LB)&&e.l2address:Pm(e.l1address,i.fundingItem.token.address)&&e.l2address));if(!e)continue;const a=t.find((t=>Pm(t.fundingItem.token.address,e.l2address)));a&&r.push({bridgeFundingStep:i,swapFundingStep:a})}return r})(v,_,f)},JB=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 BB(t,n)).forEach((e=>{e.address&&i.token&&(Bm(i.token.address)||Pm(e.address,i.token.address))&&(s=!0)})),s?{type:e.FundingStepType.ONRAMP,chainId:Nm(t),fundingItem:{type:Bm(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},YB=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 RB(t)}catch(t){throw new sm("Error occurred while creating read only providers",e.CheckoutErrorType.PROVIDER_ERROR,{error:t})}const o=await qm(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 sm("No L1 or L2 provider available",e.CheckoutErrorType.PROVIDER_ERROR),balances:[]};return a.set(Sm(t),n),a.set(Nm(t),n),a}if(i.bridge){const i=Sm(t);n.has(i)?o.set(i,zm(t,n.get(i),r,i)):a.set(Sm(t),{success:!1,error:new sm(`No L1 provider available for ${i}`,e.CheckoutErrorType.PROVIDER_ERROR),balances:[]})}const s=Nm(t);if(n.has(s)?o.set(s,zm(t,n.get(s),r,s)):a.set(Nm(t),{success:!1,error:new sm(`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 sm(`Error getting ${s} balances`,e.CheckoutErrorType.GET_BALANCE_ERROR),balances:[]})}))}return a})(t,a,n,i)),s=await qm(t,"Time to get routing allowlist",FB(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 zB(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(Nm(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 PB(e,t,r,n,i,c,o)})(t,i,u,n,o,s.swap,r)),c.push(JB(t,i,u)),c.push((async(t,n,r,i,a,o,s,u)=>{if(!i)return[];const c=o.get(Sm(t)),l=o.get(Nm(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?LB:e.address)),f=s?.swap??[];return i.type!==e.ItemType.NATIVE&&i.type!==e.ItemType.ERC20?[]:await XB(t,n,r,i,a,o,d,f,u)})(t,a,i,u,n,o,s,r));const l=await qm(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},QB=async(t,n,r,i)=>{const a=await n.getSigner().getAddress();let o=lB(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,dB(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,fB(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=gB(n,a,o),c=await qm(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 qm(t,"Time to run gas calculator",AB(n,l,i));null!==d&&(o.push(d),o=lB(o));const f=await qm(t,"Time to run balance checks",TB(t,n,a,o)),{sufficient:p}=f,h=f.balanceRequirements;if(p)return{sufficient:p,transactionRequirements:h};const m=await qm(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:_B()}),n.swap&&r.push({id:"swap",promise:IB(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 qm(t,"Total time to run the routing calculator",YB(t,a,f,m))}}};var $B;!function(e){e.SUCCESS="SUCCESS",e.FAILED="FAILED"}($B||($B={}));const ZB=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>Ym(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new sm("An error occurred while executing the approval transaction",e.CheckoutErrorType.EXECUTE_APPROVAL_TRANSACTION_ERROR,{error:t})}for(const e of r)if(0===e.status)return{type:$B.FAILED,transactionHash:e.transactionHash,reason:"Approval transaction failed and was reverted"};return{type:$B.SUCCESS}},eD=async(t,n)=>{let r=[];try{const e=await Promise.all(n.map((e=>Ym(t,e))));r=await Promise.all(e.map((e=>e.transactionResponse.wait())))}catch(t){throw new sm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{error:t})}for(const e of r)if(0===e.status)return{type:$B.FAILED,transactionHash:e.transactionHash,reason:"Fulfillment transaction failed and was reverted"};return{type:$B.SUCCESS}},tD=async e=>{let t=[];const n=[];for(const t of e)t.type===nM.TRANSACTION&&t.purpose===eM.FULFILL_ORDER&&n.push(t.buildTransaction());return t=await Promise.all(n),t},nD=(e,t)=>{const n=e.amount,r=Math.round(n.percentageDecimal*10**6);return t.mul(cr.from(r)).div(10**6)},rD=(e,t)=>Fh(e.amount.token,t),iD=(t,n,r=18)=>{let i=cr.from(0);const a=cr.from(n),o=a.mul(1e6).div(10**6),s=[];for(const n of t){let t=cr.from(0);if(Object.hasOwn(n.amount,"percentageDecimal"))t=nD(n,a),i=i.add(t);else{if(!Object.hasOwn(n.amount,"token"))throw new sm("Unknown fee type parsed, must be percentageDecimal or token",e.CheckoutErrorType.ORDER_FEE_ERROR);t=rD(n,r),i=i.add(t)}if(i.gt(o))throw new sm("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},aD=(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}}},oD=async(t,n,r,i={waitFulfillmentSettlements:!0})=>{if(0===r.length)throw new sm("No orders were provided to the orders array. Please provide at least one order.",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR);let a,o="",s=18;const u=bM,c=iB(t),l=aB(t),d=await qm(t,"Time to get the address from the provider",n.getSigner().getAddress());Hm.clear(),zm(t,n,d,Sm(t)),zm(t,n,d,Nm(t));const{id:f,takerFees:p}=r[0];let h;try{a=await qm(t,"Time to fetch the listing from the orderbook",c.getListing(f));const{seaportContractAddress:e,chainName:n}=c.config();h=n,o=e}catch(t){throw new sm("An error occurred while getting the order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{error:t,orderId:f})}if(0===a.result.buy.length)throw new sm("An error occurred with the get order listing",e.CheckoutErrorType.GET_ORDER_LISTING_ERROR,{orderId:f,message:"No buy side tokens found on order"});const m=a.result.buy[0];if("ERC20"===m.type){const e=await qm(t,"Time to get decimals of token contract for the buy token",l.getToken({contractAddress:m.contractAddress,chainName:h}));e.result.decimals&&(s=e.result.decimals)}let y=[];p&&p.length>0&&(y=iD(p,m.amount,s));let g=[],b=[],v=[];const T=performance.now();try{const{actions:e}=await qm(t,"Time to call fulfillOrder from the orderbook",c.fulfillOrder(f,d,y));v=e,g=await qm(t,"Time to construct the unsigned approval transactions",(async e=>{let t=[];const n=[];for(const t of e)t.type===nM.TRANSACTION&&t.purpose===eM.APPROVAL&&n.push(t.buildTransaction());return t=await Promise.all(n),t})(e))}catch(n){const r=(performance.now()-T)/1e3;if(Um(t,"Time to call fulfillOrder from the orderbook",r),n.message.includes(QP.EXPIRED))throw new sm("Order is expired",e.CheckoutErrorType.ORDER_EXPIRED_ERROR,{orderId:f});if(!n.message.includes("The fulfiller does not have the balances needed to fulfill"))throw new sm("Error occurred while trying to fulfill the order",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{orderId:f,error:n})}try{b=await qm(t,"Time to construct the unsigned fulfillment transactions",tD(v))}catch{}let w=cr.from("0"),A=e.ItemType.NATIVE,E="";const _=a.result.buy;if(_.length>0)switch(_[0].type){case"NATIVE":A=e.ItemType.NATIVE;break;case"ERC20":A=e.ItemType.ERC20,E=_[0].contractAddress;break;default:throw new sm("Purchasing token type is unsupported",e.CheckoutErrorType.UNSUPPORTED_TOKEN_TYPE_ERROR,{orderId:f})}_.forEach((t=>{t.type!==e.ItemType.ERC721&&(w=w.add(cr.from(t.amount)))}));a.result.fees.forEach((e=>{w=w.add(cr.from(e.amount))}));const I=[aD(A,E,w,o)],R=await qm(t,"Total time running smart checkout",QB(t,n,I,((t,n)=>n.length>0?{type:e.TransactionOrGasType.TRANSACTION,transaction:n[0]}:{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:cr.from(t)}})(u,b)));if(R.sufficient){const t=await ZB(n,g);if(t.type===$B.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason,smartCheckoutResult:R};try{0===b.length&&(b=await tD(v))}catch(t){throw new sm("Error fetching fulfillment transaction",e.CheckoutErrorType.FULFILL_ORDER_LISTING_ERROR,{error:t})}if(i.waitFulfillmentSettlements){const t=await eD(n,b);return t.type===$B.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason,smartCheckoutResult:R}:{status:e.CheckoutStatus.SUCCESS,smartCheckoutResult:R}}let r;try{r=(await Promise.all(b.map((e=>Ym(n,e))))).map((e=>e.transactionResponse))}catch(t){throw new sm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:t.message})}return{status:e.CheckoutStatus.FULFILLMENTS_UNSETTLED,smartCheckoutResult:R,transactions:r}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:R}},sD=(t,n,r)=>({type:e.ItemType.ERC721,id:t,contractAddress:n,spenderAddress:r}),uD=async(t,n,r)=>{let i,a,o="";if(0===r.length)throw new sm("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,orderExpiry:l}=r[0];let d=18;if(s.type===e.ItemType.ERC20){const e=new Cl(s.tokenAddress,JSON.stringify(_m),n);d=await qm(t,"Time to get decimals of token contract for the buy token",e.decimals())}const f=((t,n=18)=>{const r=Fh(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,d);try{const r=await qm(t,"Time to get the address from the provider",n.getSigner().getAddress());i=iB(t);const{seaportContractAddress:s}=i.config();o=s,a=await qm(t,"Time to prepare the listing from the orderbook",i.prepareListing({makerAddress:r,buy:f,sell:{type:e.ItemType.ERC721,contractAddress:u.collectionAddress,tokenId:u.id},orderExpiry:l}))}catch(t){throw new sm("An error occurred while preparing the listing",e.CheckoutErrorType.PREPARE_ORDER_LISTING_ERROR,{error:t,id:u.id,collectionAddress:u.collectionAddress})}const p=[sD(u.id,u.collectionAddress,o)],h=await qm(t,"Total time running smart checkout",QB(t,n,p,{type:e.TransactionOrGasType.GAS,gasToken:{type:e.GasTokenType.NATIVE,limit:cr.from(bM)}}));if(h.sufficient){const t=await(async e=>{let t=[],n=[];const r=[],i=[];for(const t of e)t.type===nM.TRANSACTION&&(t.purpose===eM.APPROVAL&&r.push(t.buildTransaction()),t.purpose===eM.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 ZB(n,t.approvalTransactions);if(r.type===$B.FAILED)return{status:e.CheckoutStatus.FAILED,transactionHash:r.transactionHash,reason:r.reason,smartCheckoutResult:h};const o=((e,t,n)=>{let r;for(const e of n)e.type===nM.SIGNABLE&&e.purpose===tM.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 sm("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 sm("An error occurred while signing the message",e.CheckoutErrorType.SIGN_MESSAGE_ERROR,{error:t})}})(n,o);let l="";const p={orderComponents:s.orderComponents,orderHash:s.orderHash,orderSignature:s.signedMessage,makerFees:[]};if(void 0!==c){const t=iD(c,f.amount,d);if(t.length!==c.length)throw new sm("One of the fees is too small, must be greater than 0.000001",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR);p.makerFees=t}try{l=(await i.createListing(p)).result.id}catch(t){throw new sm("An error occurred while creating the listing",e.CheckoutErrorType.CREATE_ORDER_LISTING_ERROR,{error:t,collectionId:u.id,collectionAddress:u.collectionAddress})}return{status:e.CheckoutStatus.SUCCESS,orderIds:[l],smartCheckoutResult:h}}return{status:e.CheckoutStatus.INSUFFICIENT_FUNDS,smartCheckoutResult:h}};class cD{config;constructor(e){this.config=e}async feeEstimate(){const e=await this.config.remote.getConfig("onramp");return e[Kh.TRANSAK]?.fees}async createWidgetUrl(e){return await this.getTransakWidgetUrl(e)}async getTransakWidgetUrl(e){let t=`${vm[this.config.environment]}?`;if(t+=`${`apiKey=${(await this.config.remote.getConfig("onramp"))[Kh.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 lD(t,n){const r=[];n.forEach((n=>{if(n.type===e.ItemType.ERC20){const{tokenAddress:e}=n;r.push((i=e,a=_m,o=t,new Cl(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:Fh(t.amount,18)}:t.type===e.ItemType.ERC20?{...t,amount:Fh(t.amount,i[n])}:t));return a}function dD(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=Cm();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 fD=["https://checkout-api.dev.immutable.com","https://checkout-api.sandbox.immutable.com","https://checkout-api.immutable.com"];class pD{config;axiosInstance;constructor(e){this.config=e,this.axiosInstance=$e.create(),this.setupInterceptors()}shouldAddPublishableKey(e){return fD.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 hD={baseConfig:{environment:mt.SANDBOX},passport:void 0};e.BlockExplorerService=class{static getTransactionLink(e,t){const n=Em?.[e]?.url;if(n&&t)return`${n}/tx/${t}`}},e.Checkout=class{readOnlyProviders;httpClient;config;fiatRampService;availability;passport;constructor(e=hD){this.httpClient=new pD(e),this.config=new xm(e,this.httpClient),this.fiatRampService=new cD(this.config),this.readOnlyProviders=new Map,this.availability=EB(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{dD(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 sm("Failed to load widgets script",e.CheckoutErrorType.WIDGETS_SCRIPT_LOAD_ERROR,{error:t}))}}));return r}async createProvider(e){return await Km(e.walletProviderName,this.passport)}async checkIsWalletConnected(t){return async function(t){if(!t?.provider?.request)throw new sm("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{rpcMethod:Yh.CHECK_CONNECTION});let n=[];try{n=await t.provider.request({method:Yh.CHECK_CONNECTION,params:[]})}catch(t){throw new sm("Check wallet connection request failed",e.CheckoutErrorType.PROVIDER_REQUEST_FAILED_ERROR,{error:t,rpcMethod:Yh.CHECK_CONNECTION})}return{isConnected:n&&n.length>0,walletAddress:n[0]??""}}(await Jm(this.config,t.provider,{allowUnsupportedProvider:!0}))}async connect(t){const n=await Jm(this.config,t.provider,{allowUnsupportedProvider:!0});return await async function(t){if(!t||!t.provider?.request)throw new sm("Incompatible provider",e.CheckoutErrorType.PROVIDER_REQUEST_MISSING_ERROR,{details:"Attempting to connect with an incompatible provider"});return await um((async()=>{t.provider.request&&await t.provider.request({method:Yh.CONNECT,params:[]})}),{type:e.CheckoutErrorType.USER_REJECTED_REQUEST_ERROR}),t}(n),{provider:n}}async switchNetwork(e){const t=await Jm(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await fm(this.config,t,e.chainId)}async getTokenInfo(e){return await Dm(e.provider,e.tokenAddress)}async getBalance(e){const t=await Jm(this.config,e.provider);return e.tokenAddress&&""!==e.tokenAddress?await Gm(t,e.walletAddress,e.tokenAddress):await jm(this.config,t,e.walletAddress)}async getAllBalances(e){return zm(this.config,e.provider,e.walletAddress,e.chainId)}async getNetworkAllowList(e){return await lm(this.config,e)}async getTokenAllowList(e){return await Mm(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 Jm(this.config,e.provider);return await Ym(t,e.transaction)}async getNetworkInfo(e){const t=await Jm(this.config,e.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await dm(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 Jm(this.config,e.provider);return await oD(this.config,t,e.orders,e.overrides)}async sell(e){e.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const t=await Jm(this.config,e.provider);return await uD(this.config,t,e.orders)}async cancel(t){console.warn("This endpoint currently only processes the first order in the array.");const n=await Jm(this.config,t.provider);return await(async(t,n,r,i={waitFulfillmentSettlements:!0})=>{let a;if(0===r.length)throw new sm("No orderIds were provided to the orderIds array. Please provide at least one orderId.",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR);const o=r[0];try{const e=await qm(t,"Time to get the address from the provider",n.getSigner().getAddress()),r=iB(t),i=await qm(t,"Time to get the cancel order from the orderbook",r.cancelOrdersOnChain([o],e));a=await i.cancellationAction.buildTransaction()}catch(t){throw new sm("An error occurred while cancelling the order listing",e.CheckoutErrorType.CANCEL_ORDER_LISTING_ERROR,{orderId:o,error:t})}if(i.waitFulfillmentSettlements){const t=await eD(n,[a]);return t.type===$B.FAILED?{status:e.CheckoutStatus.FAILED,transactionHash:t.transactionHash,reason:t.reason}:{status:e.CheckoutStatus.SUCCESS}}let s;try{s=(await Promise.all([a].map((e=>Ym(n,e))))).map((e=>e.transactionResponse))}catch(t){throw new sm("An error occurred while executing the fulfillment transaction",e.CheckoutErrorType.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:t.message})}return{status:e.CheckoutStatus.FULFILLMENTS_UNSETTLED,transactions:s}})(this.config,n,t.orderIds,t.overrides)}async smartCheckout(t){const n=await Jm(this.config,t.provider);let r=[];try{r=await lD(n,t.itemRequirements)}catch(t){throw new sm("Failed to map item requirements",e.CheckoutErrorType.ITEM_REQUIREMENTS_ERROR,{error:t})}return await QB(this.config,n,r,t.transactionOrGasAmount)}static isWeb3Provider(e){return Xm(e)}async gasEstimate(e){return this.readOnlyProviders=await RB(this.config,this.readOnlyProviders),await cB(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 Mm(this.config,{type:e.TokenFilterTypes.ONRAMP}),u=s.tokens?.find((e=>Pm(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=xm,e.IMMUTABLE_API_BASE_URL=gm}));
|